1660 Commits

Author SHA1 Message Date
Thomas Brierley
e8ace81449 Use 'in' on root prototype checks
Because on NodeJS <= v0.10 hasOwnProperty returns false for __proto__ on
Object.prototype. Function.prototype and Object.prototype are roots so
it should be safe to use 'in' instead.
2017-07-04 19:43:01 +01:00
Thomas Brierley
cc8b7a2f6d Remove redundant conditions and comments 2017-06-29 15:07:38 +01:00
Thomas Brierley
7951ae221e Use isSafeProperty in set/getSafeProperty 2017-06-29 15:00:40 +01:00
Thomas Brierley
955c72bebf Update isSafeProperty interface 2017-06-29 14:56:47 +01:00
Thomas Brierley
c4951c2143 Refactor isSafe checks to restore inheritance
To safely restore inherited properties and methods on plain objects e.g
with Object.create, some overly broad conditions need to be removed and
others added to more explicitly exclude unsafe properties.

isSafeMethod() has been modified as bellow, roughly the same conditions
are also now used in isSafeProperty() for get/setSafeProperty() which
previously restricted all inherited properties.

- Require __proto__ to have own-method
	Intended to prevent ghosting of class methods, but also prevents
	access to properties from further up the chain.

+ Require any own-method to not be in __proto__
	Explicitly prevents ghosting but not inheritance. Possible to
	defeat only if proto chaining through Object.create is allowed.

- Require object to not be function
	Intended to prevent unsafe function methods like 'bind', but
	also restricts function own-properties.

+ Require method not be in Function.prototype
	Explicitly prevents unsafe function methods like 'bind',
	without restricting function own properties.

Other conditions should be equivalent. The overall affect should be
that inherited properties and methods that are safe and not ghosted
should be allowed.
2017-06-29 14:53:46 +01:00
jos
4e1142a126 Released v3.13.3 2017-05-27 20:56:16 +02:00
jos
bc3febca89 Merge branch 'security' into develop 2017-05-27 20:52:24 +02:00
Jos de Jong
b1afd923b7 Merge pull request #862 from viclai/patch-1
Fixed Bug in Equation For Intersection of Line and Plane
2017-05-27 20:13:18 +02:00
jos
ed5f2cebaf Security fixes in isSafeMethod and some others 2017-05-27 19:51:12 +02:00
jos
5fbc8edce6 Released v3.13.2 2017-05-26 20:28:59 +02:00
jos
627bb2a79d Disabled function chain 2017-05-26 17:11:52 +02:00
jos
959b010242 Simplified isSafeMethod 2017-05-26 16:43:03 +02:00
jos
64498eddd6 Fixed #861: physical constants not available in the expression parser 2017-05-25 16:13:42 +02:00
Victor
1313abe4ce Fixed Bug in Equation For Intersection of Line and Plane
The equation to find the value of ’t' for the intersection of a line and a plane does not appear to be entirely correct.  Please double-check.
2017-05-23 20:40:47 -07:00
jos
f61bb6cf94 Fixed #856: function subset not returning non-primitive scalars from Arrays correctly 2017-05-16 21:41:03 +02:00
jos
e105f60ab7 Released v3.13.1 2017-05-12 20:52:02 +02:00
jos
04ceed6c75 Merge branch 'security' into develop 2017-05-12 20:47:54 +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
51507e2f10 Released v3.13.0 2017-05-12 09:18:46 +02:00
jos
11eda850da Fixed security vulnerabilities 2017-05-12 09:01:31 +02:00
Jos de Jong
b36d45af0b Merge pull request #850 from tetslee/absderivative
Added derivative of abs
2017-05-11 19:59:22 +02:00
Jos de Jong
3f890c9a1a Merge pull request #848 from tetslee/simplifyTerminate
Fix terminate condition of simplify to avoid endless loops
2017-05-11 19:56:28 +02:00
Timothy Lee
8c92deb1c3 Added derivative of abs 2017-05-10 17:24:15 +09:30
Timothy Lee
4762493861 Typo 2017-05-10 10:24:47 +09:30
jos
de10818546 Merge branch 'redundantwildcard' of https://github.com/tetslee/mathjs into tetslee-redundantwildcard
# Conflicts:
#	lib/function/algebra/simplify.js
2017-05-09 20:24:04 +02:00
Jos de Jong
71221b75df Merge pull request #840 from tetslee/fix838
Fixed simplify to recognize named constants
2017-05-09 20:12:28 +02:00
Jos de Jong
3ea3eb7273 Merge pull request #841 from tetslee/fix813
Stop simplify converting numbers to inexact Fractions
2017-05-09 20:07:57 +02:00
Timothy Lee
aaeb2ebc28 Fix terminate condition of simplify to avoid endless loops 2017-05-09 17:59:58 +09:30
Timothy Lee
89c32b84bf Remove redundant rule wildcard variable 'C' from simplify 2017-05-09 16:01:28 +09:30
Timothy Lee
02f01adf3c Added support for BigNumbers to simplify 2017-05-09 13:20:32 +09:30
Jos de Jong
dc37aa3c49 Merge pull request #845 from tetslee/docsimplify
Added some more documentation for simplify rules
2017-05-08 20:01:47 +02:00
jos
41b0f5138b Expose BASE_DIMENSIONS on Unit 2017-05-08 20:00:43 +02:00
Timothy Lee
6f2b5efaac Disallow implicitly converting a number to a fraction that is not an exact representation 2017-05-08 15:58:06 +09:30
Timothy Lee
82095ebc19 Revert "Changed multiply to only output Fractions when both arguments can be exactly represented as Fractions"
This reverts commit f3cb41864582b2dc8b07c07d4c22d6c313bcc114.
2017-05-08 15:57:19 +09:30
Timothy Lee
6792ab5974 Added some more documentation for simplify rules 2017-05-08 13:32:53 +09:30
Timothy Lee
158adc1861 Added support for more constants in simplify 2017-05-08 12:56:56 +09:30
jos
150e5bd42a Released v3.12.3 2017-05-05 21:09:59 +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
Timothy Lee
f3cb418645 Changed multiply to only output Fractions when both arguments can be exactly represented as Fractions 2017-05-05 16:30:37 +09:30
Timothy Lee
c47dee1d01 Stopped simplify from explicitly converting numbers to Fractions when they can't be expressed exactly.
It still will implicitly convert to inexact Fractions because of the conversions to Fractions in the typed-functions of binary operators.
2017-05-05 14:54:04 +09:30
Timothy Lee
9e2491e96f Fixed simplify to recognize named constants 2017-05-05 13:44:21 +09:30
jos
088c612cd6 Released v3.12.2 2017-04-30 14:02:25 +02:00
jos
f1e2c2e391 Released v3.12.1 2017-04-24 21:45:53 +02:00
jos
933f1bbb5d Released v3.12.1 2017-04-24 21:41:09 +02:00
jos
b90305992f Merge remote-tracking branch 'origin/develop' into develop 2017-04-24 21:38:12 +02:00
jos
4f9fd81fbd Merge branch 'develop' into security 2017-04-24 21:36:05 +02:00
jos
19faeac16c Escape function names and properties 2017-04-24 21:36:00 +02:00