295 Commits

Author SHA1 Message Date
jos
99ab11b234 Dropped constant uninitialized 2018-02-04 13:09:09 +01:00
jos
a11dfa9bcc Merge branch 'v4' into v4_binary_operator_node 2018-01-31 14:23:34 +01:00
jos
ece963bcdd Merge branch 'develop' into v4
# Conflicts:
#	lib/expression/node/ConstantNode.js
2018-01-31 11:28:14 +01:00
jos
82b41e696a - Implemented OperatorNode.isUnary and OperatorNode.isBinary.
- Explicit checks for number of arguments everywhere working with `OperatorNode` and `FunctionNode`.
- Fixed #1014: derivative silently ignoring additional arguments.
2018-01-31 11:00:39 +01:00
Max Bruckner
9126130794 toTex: Escape special characters in strings 2018-01-31 02:54:24 +01:00
jos
0b6c0c13f7 Merge branch 'v4' into v4_constant_node
# Conflicts:
#	HISTORY.md
2018-01-27 16:58:17 +01:00
jos
5efbb25da8 Merge branch 'develop' into v4
# Conflicts:
#	HISTORY.md
2018-01-27 16:57:24 +01:00
Harry Sarson
afbbb0ea8a
fixes mapping of implicit multiplication 2018-01-27 15:07:31 +00:00
Max Bruckner
4a7e956242 ConstantNode: Add Fraction specific latex output. 2018-01-25 20:14:06 +01:00
jos
f112348eec Fixed using the wrong typeof function which was not aware of mathjs types like BigNumber (see #1023) 2018-01-25 20:07:07 +01: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
924299c42b Changed ConstantNode(valueStr, valueType) to ConstantNode(value) (breaking change) 2018-01-23 12:08:29 +01:00
jos
53e02a87e3 Cleanup unused imports and functions 2018-01-23 09:27:24 +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
a60f3c8d9d Fixed a security issue where forbidden properties like constructor could be replaced by using unicode characters when creating an object 2017-11-18 20:11:48 +01:00
Max Bruckner
b2857392bd OperatorNode: Fix implicit multiplication
Fixes implicit multiplication when parenthesis is 'auto' and operands
are ConstantNodes.

This is handled by detecting that case and printing parentheses for
ParenthesisNodes even though they normally wouldn't with parenthesis
set to 'auto'.
2017-08-13 20:57:41 +02:00
Max Bruckner
1f4909c625 OperatorNode: switch-case in calculate..Parentheses 2017-08-13 19:26:37 +02:00
jos
967e65cceb Refactored usage of properties .isNode, .isSymbolNode, etc. into using functions like type.isNode(x) for security 2017-08-12 14:38:03 +02:00
jos
949261f92b Refactored usage of properties .isRange, .isIndex, .isResultSet, and .isHelp for their (safe) function equivalents 2017-08-12 13:31:09 +02:00
jos
e10dd5bce5 Refactored x && x.isBigNumber === true into type.isBigNumber(x) 2017-08-12 11:54:53 +02:00
jos
26e70a4acd Refactored x.isComplex === true into type.isComplex(x) 2017-08-12 11:32:40 +02:00
jos
a18f2068f3 Fixed toString of a parsed expression tree containing an immediately invoked function assignment not being wrapped in parenthesis 2017-08-12 11:03:19 +02:00
Jos de Jong
69f3e882d7 Merge pull request #888 from ThomasBrierley/prototyped-scopes
Prototyped Scopes
2017-07-05 22:01:29 +02:00
Thomas Brierley
955c72bebf Update isSafeProperty interface 2017-06-29 14:56:47 +01:00
jos
08695ef1c7 Use strict unequal in xor 2017-06-24 20:38:25 +02:00
jos
3545d9000e Fixed undefined Unit in SymbolNode 2017-06-24 15:14:01 +02:00
jos
af58fd2294 Decouple SymbolNode from Unit 2017-06-24 14:55:12 +02:00
jos
16b0d620a1 Removed redundant dependency on math 2017-06-24 13:43:21 +02:00
Nekomajin42
9678d1a067 Change escape-goat to native escape function 2017-06-06 12:06:58 +02:00
Nekomajin42
e7aa5b4ec9 fix the escaping errors 2017-06-01 16:02:20 +02:00
Nekomajin42
e18cca6153 Revert "Revert "Use escape goat""
This reverts commit f83c88237f02edf7595e375606c1a0eaaa6ce50c.
2017-06-01 08:36:04 +02:00
Nekomajin42
f83c88237f Revert "Use escape goat"
This reverts commit 51e1b601b64d0bb782590e95c7a74bbb7fb179ff.
2017-06-01 08:35:47 +02:00
Nekomajin42
51e1b601b6 Use escape goat 2017-06-01 08:19:16 +02:00
Nekomajin42
7301b6fcf9 Implement toHTML() to Nodes
toHTML() method to each Node, and update in the docs
2017-05-21 15:47:43 +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
27660d8c00 Some more security measures 2017-05-05 21:08:23 +02:00
jos
85ac1a0aa4 Some more security measures 2017-05-05 20:53:20 +02:00
jos
aef6203049 Use safe function arguments internally 2017-05-05 17:25:21 +02:00
jos
73b774a51b Use safe map, forEach, join 2017-05-05 12:32:21 +02:00
jos
19faeac16c Escape function names and properties 2017-04-24 21:36:00 +02:00
jos
c259c936ec Refactored compile into a factory function 2017-04-22 17:12:38 +02:00
jos
a7bd4cd833 Register _compile as separate functions 2017-04-22 16:49:22 +02:00
jos
b9c3b334e1 Refactored customs.js into a regular js file instead of factory 2017-04-22 13:04:29 +02:00
jos
fa06a452b9 Only return undefined in case of plain objects 2017-04-08 16:44:21 +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
25db18caec Fixed a security vulnerability 2017-04-03 20:43:52 +02:00
jos
1092489440 Some refactoring 2017-04-03 01:32:15 +02:00
jos
5c4b105c7e Fixed a security vulnerability in the expression parser 2017-04-03 01:29:13 +02:00
jos
fbe6e62faf Fixed more security vulnerabilities 2017-04-02 19:51:11 +02:00