29 lines
573 B
JavaScript
29 lines
573 B
JavaScript
|
importScripts('../../../lib/browser/math.js')
|
||
|
|
||
|
// create a parser
|
||
|
const parser = self.math.parser()
|
||
|
|
||
|
self.addEventListener('message', function (event) {
|
||
|
const request = JSON.parse(event.data)
|
||
|
let result = null
|
||
|
let err = null
|
||
|
|
||
|
try {
|
||
|
// evaluate the expression
|
||
|
result = parser.evaluate(request.expr)
|
||
|
} catch (e) {
|
||
|
// return the error
|
||
|
err = e
|
||
|
}
|
||
|
|
||
|
// build a response
|
||
|
const response = {
|
||
|
id: request.id,
|
||
|
result: self.math.format(result),
|
||
|
err: err
|
||
|
}
|
||
|
|
||
|
// send the response back
|
||
|
self.postMessage(JSON.stringify(response))
|
||
|
}, false)
|