150 Commits

Author SHA1 Message Date
Gold Holk
2032a9d126 Fix object literal enable multiple lines (#1328) (#1349)
* Allow object literal expression be multiple lines

* Add test for multiple lines object literal
2018-12-06 19:37:57 +01:00
Eric Mansfield
d23d8c71a4 Chained conditionals (#1267)
* Minimally working

* Added tests, toString

* Added tests for evaluation

* Minor changes

* Added a line in the docs about chained conditionals

* Documentation, replacing var and let with const
2018-10-04 20:26:39 +02:00
greenkeeper[bot]
c5971b371a Update standard to the latest version 🚀 (#1226)
* chore(package): update standard to version 12.0.0

* update to new lint version with --fix

I believe this mainly adds whitespace to `{}`'s.

* Replace assert.equal with assert.strictEqual

This breaks a lot of tests which I will endevour to fix in the next
commits.

* Fix most errors due to assert.strictEquals

Some instances of `strictEquals` are replaced by `deepEquals`.
`toString` has been used to make some string comparisions explicit.
Tests will still fail untill #1236 and #1237 are fixed.

* Fix assertion erros due to -0

With node 10, assert.strictEqual no longer considers `0 === -0`.
I missed these first time round as I was using node 8.

* Put toString correct side of bracket

I was converting the constructor to a string rather
than the result of the computation. Oops.

* Fixed #1236: quantileSeq has inconsistant return

* Update package-lock

* Fixed #1237: norm sometimes returning a complex number instead of number

* Fix cli tests

* More changes for standardjs, and fixes in unit tests
2018-09-08 16:33:58 +02:00
jean-emmanuel
710ed1e58f Add support for single quotes strings 2018-08-04 10:27:10 +02:00
jos
0583771e4e Cleanup unused variables and imports 2018-06-13 17:25:51 +02:00
jos
b6b36bfd9b Use strict equality checks everywhere (=== and !==) 2018-06-13 15:02:21 +02:00
jos
17f07ec098 Fixed incompatibility with v4 (index.js file) 2018-06-13 14:02:50 +02:00
jos
b3b96749bf Refactored var into const/let, and removed a lot of semicolons 2018-06-13 12:21:14 +02:00
jos
024b2a9e26 Fix most lint errors using npx standard --fix 2018-06-10 20:28:27 +02:00
jos
635cd0b574 Revert using /lib/ in tests, use /src/ again. Fixed coverage testing. WIP 2018-06-06 22:11:52 +02:00
jos
79071b5e4f Fixed npm run test:browser not working (WIP) 2018-06-06 21:30:41 +02:00
jos
0c084b8e20 npm test working now 2018-06-06 15:36:36 +02:00
jos
99ab11b234 Dropped constant uninitialized 2018-02-04 13:09:09 +01:00
Jos de Jong
e631771df0
Merge branch 'v4' into v4_fn_implicit_multiplication 2018-02-04 11:58:15 +01:00
Jos de Jong
cdda817d9f
Merge pull request #1036 from ericman314/implicit-multiplication
Implicit multiplication
2018-02-04 11:55:15 +01:00
jos
11b4c03460 Remove support for calling a function returned by a function, parse as implicit multiplication instead. See #1035 2018-02-03 21:52:18 +01:00
Eric Mansfield
090f4c920f Added 'number/number (', and tests 2018-02-03 09:44:30 -07:00
Eric Mansfield
17a4e33ae2 Added tests 2018-02-02 21:14:33 -07:00
jos
3f3d50f7a0 Fixed #833: the constants true, false, null, undefined, NaN, Infinity, and uninitialized are now parsed as ConstantNodes instead of SymbolNodes in the expression parser 2018-01-23 13:55:57 +01:00
jos
8b5396baad Removed the old expression compiler (which uses eval) 2018-01-23 09:19:11 +01:00
jos
1192bb6bbc Implemented compile without eval (see #1019) 2018-01-21 18:13:27 +01:00
jos
8d2d48d81b Fixed a security issue in typed-function allowing arbitrary code execution 2017-11-18 19:39:30 +01:00
jos
601f1942c2 Replace ES6 functionality with ES5 2017-08-06 11:54:59 +02:00
jos
9666c16378 Fixed #846: Issues in the functions map, forEach, and filter when used in the expression parser 2017-07-29 14:05:27 +02:00
jos
469e6bf3cf Fixed #895: added support for the dollar character $ in symbol names 2017-07-10 20:29:30 +02:00
jos
ed5f2cebaf Security fixes in isSafeMethod and some others 2017-05-27 19:51:12 +02:00
jos
64498eddd6 Fixed #861: physical constants not available in the expression parser 2017-05-25 16:13:42 +02:00
jos
f61bb6cf94 Fixed #856: function subset not returning non-primitive scalars from Arrays correctly 2017-05-16 21:41:03 +02:00
jos
5991c24620 Fixed broken unit tests 2017-05-12 13:36:03 +02:00
jos
29d632f1d9 Fixed creating units with an alias not working within the expression parser 2017-05-12 13:28:13 +02:00
jos
8e8e02bec9 Don't clone config itself, only it's childs 2017-04-22 20:14:52 +02:00
jos
ee6efa3768 Only allow accessing/assigning properties on plain objects. Only allow calling known methods. 2017-04-08 15:32:10 +02:00
jos
37613aca0c Moved security related tests into a separate file 2017-04-02 13:18:55 +02:00
jos
3c3517daa6 More security fixes + unit tests 2017-03-31 13:41:37 +02:00
jos
43c4fe9c46 Added a few more unit tests 2017-03-31 10:51:11 +02:00
jos
b7a065b538 Removed a redundant console.log in the tests 2017-03-31 10:47:04 +02:00
jos
2f45600905 Fixed a security vulnerability in the expression parser allowing execution of arbitrary JavaScript 2017-03-31 10:18:14 +02:00
jos
bd52740e61 Fixed #795: Parse error in case of a multi-line expression with just comments 2017-02-15 22:05:38 +01:00
jos
572ec25665 Added another unit test (see #762) 2016-12-20 19:47:53 +01:00
jos
a5df5e4c47 Fixed #762: expression parser failing to invoke a function returned by a function 2016-12-10 11:41:38 +01:00
jos
7152142661 Fixed #732: Allow letter-like unicode characters like Ohm \u2126 2016-11-18 19:19:17 +01:00
jos
064eb31381 Fixed #715: Parser now exposes test functions like isAlpha which can be replaced in order to adjust the allowed characters in variables names 2016-10-21 16:33:38 +02:00
jos
80c55add2a Parser not throwing an error for invalid implicit multiplications like -2 2 and 2^3 4 2016-10-21 15:23:20 +02:00
jos
7742b36c5c Some more fixes regarding numbers ending with a decimal mark (like 2.). See #711. 2016-09-20 21:35:19 +02:00
jos
9199ae58ae Fixed #711: parser accepts numbers ending with a decimal mark again like 2.. 2016-09-20 21:02:28 +02:00
jos
92918ed9b2 Fixed #707: The expression parser no longer accepts numbers ending with a dot like 2. 2016-09-07 21:10:20 +02:00
jos
23d1786cb2 Comments of expressions are are now stored in the parsed nodes, see #690 2016-08-23 21:12:39 +02:00
jos
cb4a1a98cb Fixed #641: Bug in expression parser parsing implicit multiplication with wrong precedence in specific cases 2016-04-16 09:43:24 +02:00
jos
5b682d6040 Fixed #625: Unit in (inch) not always working due to ambiguity with
the operator `a in b` (alias of `a to b`)
2016-04-03 14:06:43 +02:00
jos
8b39e1b336 Fixed #629: expression parser throws an error when passing a number with decimal exponent instead of parsing them as implicit multiplication 2016-04-03 12:46:58 +02:00