Add copyright, lisence, and include original modifications [SCI-9314]

This commit is contained in:
wandji20 2023-10-03 14:57:41 +01:00
parent 8684e2d361
commit 8b589185b5
3 changed files with 75 additions and 7 deletions

View file

@ -1,3 +1,6 @@
// Copyright (c) 2014 Sutoiku, Inc.
// The MIT License (MIT)
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();

View file

@ -1,4 +1,6 @@
/* parser generated by jison 0.4.15 */
// The MIT License (MIT)
// Copyright (c) 2012-2014 Marcin Warpechowski <hello@handsontable.com>
/*
Returns a Parser object of the following structure:
@ -958,4 +960,4 @@ var Parser = (function(){
}
Parser.prototype = parser;parser.Parser = Parser;
return new Parser;
})();
})();

View file

@ -1,3 +1,6 @@
// * Licensed under the MIT license
// * Copyright (c) 2012-2014 Marcin Warpechowski <hello@handsontable.com>
var ruleJS = (function (root) {
'use strict';
@ -914,7 +917,7 @@ var ruleJS = (function (root) {
'ODD', 'OR',
'PI', 'POWER',
'ROUND', 'ROUNDDOWN', 'ROUNDUP',
'SIN', 'SINH', 'SPLIT', 'SQRT', 'SQRTPI', 'SUM', 'SUMIF', 'SUMIFS', 'SUMPRODUCT', 'SUMSQ', 'SUMX2MY2', 'SUMX2PY2', 'SUMXMY2',
'SIN', 'SINH', 'SLOPE', 'SPLIT', 'STDEVP', 'STDEVS', 'SQRT', 'SQRTPI', 'SUM', 'SUMIF', 'SUMIFS', 'SUMPRODUCT', 'SUMSQ', 'SUMX2MY2', 'SUMX2PY2', 'SUMXMY2', 'VARP', 'VARS',
'TAN', 'TANH', 'TRUE', 'TRUNC',
'XOR'
],
@ -1040,13 +1043,44 @@ var ruleJS = (function (root) {
switch (type) {
case '+':
result = number1 + number2;
//(sci-2587) MODIFICATION TO AVOID JAVASCRIPT IEEE MANTISSA&EXPONENT FLOATS INNACURACY
try{
var number1_big = new Big(number1);
var result_big = number1_big.plus(number2);
result = parseFloat(result_big);
} catch(e) {
result = number1 + number2;
}
//MODIFICATION END
//ORIGINAL: result = number1 + number2;
break;
case '-':
result = number1 - number2;
//(sci-2587) MODIFICATION TO AVOID JAVASCRIPT IEEE MANTISSA&EXPONENT FLOATS INNACURACY
try{
var number1_big = new Big(number1);
var result_big = number1_big.minus(number2);
result = parseFloat(result_big);
} catch(e) {
result = number1 - number2;
}
//MODIFICATION END
//ORIGINAL: result = number1 - number2;
break;
case '/':
result = number1 / number2;
//(sci-2587) MODIFICATION TO AVOID JAVASCRIPT IEEE MANTISSA&EXPONENT FLOATS INNACURACY
try{
var number1_big = new Big(number1);
var result_big = number1_big.div(number2);
result = parseFloat(result_big);
} catch(e){
result = number1 / number2;
}
//MODIFICATION END
//ORIGINAL: result = number1 / number2;
if (result == Infinity) {
throw Error('DIV_ZERO');
} else if (isNaN(result)) {
@ -1054,11 +1088,24 @@ var ruleJS = (function (root) {
}
break;
case '*':
result = number1 * number2;
//(sci-2587) MODIFICATION TO AVOID JAVASCRIPT IEEE MANTISSA&EXPONENT FLOATS INNACURACY
try{
var number1_big = new Big(number1);
var result_big = number1_big.times(number2);
result = parseFloat(result_big);
} catch(e) {
result = number1 * number2;
}
//MODIFICATION END
//ORIGINAL: result = number1 * number2;
break;
case '^':
result = Math.pow(number1, number2);
break;
case 'e':
result = number1 * Math.pow(10, number2);
break;
}
return result;
@ -1232,6 +1279,22 @@ var ruleJS = (function (root) {
error = null;
try {
// Preprocess E-notation, eg. replaces -5.32e-3 with -0.00532
// Excel does it too as well, so we're good
formula = formula.replace(/(?:([0-9]+(\.[0-9]+)?)+(E|e)((-|\+)?[0-9]+))/g, function(expr) {
var spl = expr.split('E')
var m = helper.number(spl[0]);
var e = helper.number(spl[1]);
return Big(m).times(Big(10).pow(e)).toFixed();
})
// Preprocess the following aliases for formulas
// or parser won't accept them
formula = formula.replace('STDEV.P', 'STDEVP');
formula = formula.replace('STDEV.S', 'STDEVS');
formula = formula.replace('VAR.P', 'VARP');
formula = formula.replace('VAR.S', 'VARS');
parser.setObj(element);
result = parser.parse(formula);
@ -1304,4 +1367,4 @@ var ruleJS = (function (root) {
parse: parse
};
});
});