josdejong/mathjs

null/undefined treated as valid only for left side of comparison operators

Open

#1,391 opened on Jan 31, 2019

View on GitHub
 (11 comments) (0 reactions) (0 assignees)JavaScript (13,832 stars) (1,298 forks)batch import
bughelp wanted

Description

Using mathjs@5.4.1

When the null value is on the right side, the correct error is thrown (actual: null):

> require('mathjs').eval('1 > null')
TypeError: Unexpected type of argument in function larger (expected: number or Array or DenseMatrix or SparseMatrix or string or boolean or Matrix or BigNumber or Complex or Fraction, actual: null, index: 1)

However, when the null value is on the left side, the error mistakenly identifies the right side as the source of the problem (actual: number):

> require('mathjs').eval('null > 1')
TypeError: Unexpected type of argument in function larger (expected: Array or DenseMatrix or SparseMatrix or Matrix, actual: number, index: 1)

Contributor guide