Implement missing Math functions from ES6 standard (#3593)

First step to fix issue #3568.

Changes:
- Implemented Math.clz32(), Math.fround(), Math.imul(), Math.hypot().
- Implemented all remaining Math functions with calling the standard
libm functions, but they throw UNIMPLEMENTED exception with jerry-libm,
because the necessary fdlibm functions are missing and should be ported.

All Math related test262 tests pass (except function name and length tests)

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác oszi@inf.u-szeged.hu
This commit is contained in:
Csaba Osztrogonác
2020-03-10 11:15:00 +01:00
committed by GitHub
parent 6c3a42ec48
commit 72f8ef344c
5 changed files with 333 additions and 11 deletions
+15
View File
@@ -67,15 +67,19 @@ LIT_MAGIC_STRING_ASIN = "asin"
LIT_MAGIC_STRING_ATAN = "atan"
LIT_MAGIC_STRING_BIND = "bind"
LIT_MAGIC_STRING_CALL = "call"
LIT_MAGIC_STRING_CBRT = "cbrt"
LIT_MAGIC_STRING_CEIL = "ceil"
LIT_MAGIC_STRING_COSH = "cosh"
LIT_MAGIC_STRING_DONE = "done"
LIT_MAGIC_STRING_EVAL = "eval"
LIT_MAGIC_STRING_EXEC = "exec"
LIT_MAGIC_STRING_FILL = "fill"
LIT_MAGIC_STRING_FIND = "find"
LIT_MAGIC_STRING_FROM = "from"
LIT_MAGIC_STRING_IMUL = "imul"
LIT_MAGIC_STRING_JOIN = "join"
LIT_MAGIC_STRING_KEYS = "keys"
LIT_MAGIC_STRING_LOG2 = "log2"
LIT_MAGIC_STRING_NAME = "name"
LIT_MAGIC_STRING_NULL = "null"
LIT_MAGIC_STRING_NEXT = "next"
@@ -84,9 +88,11 @@ LIT_MAGIC_STRING_RACE = "race"
LIT_MAGIC_STRING_SEAL = "seal"
LIT_MAGIC_STRING_SIGN = "sign"
LIT_MAGIC_STRING_SIZE = "size"
LIT_MAGIC_STRING_SINH = "sinh"
LIT_MAGIC_STRING_SOME = "some"
LIT_MAGIC_STRING_SORT = "sort"
LIT_MAGIC_STRING_SQRT = "sqrt"
LIT_MAGIC_STRING_TANH = "tanh"
LIT_MAGIC_STRING_TEST = "test"
LIT_MAGIC_STRING_THEN = "then"
LIT_MAGIC_STRING_TRIM = "trim"
@@ -96,17 +102,25 @@ LIT_MAGIC_STRING_ERROR_UL = "Error"
LIT_MAGIC_STRING_PROXY_UL = "Proxy"
LIT_MAGIC_STRING_LOG2E_U = "LOG2E"
LIT_MAGIC_STRING_SQRT2_U = "SQRT2"
LIT_MAGIC_STRING_ACOSH = "acosh"
LIT_MAGIC_STRING_APPLY = "apply"
LIT_MAGIC_STRING_ASINH = "asinh"
LIT_MAGIC_STRING_ATAN2 = "atan2"
LIT_MAGIC_STRING_ATANH = "atanh"
LIT_MAGIC_STRING_CATCH = "catch"
LIT_MAGIC_STRING_CLEAR = "clear"
LIT_MAGIC_STRING_CLZ32 = "clz32"
LIT_MAGIC_STRING_EVERY = "every"
LIT_MAGIC_STRING_EXPM1 = "expm1"
LIT_MAGIC_STRING_FALSE = "false"
LIT_MAGIC_STRING_FLAGS = "flags"
LIT_MAGIC_STRING_FLOOR = "floor"
LIT_MAGIC_STRING_HYPOT = "hypot"
LIT_MAGIC_STRING_INDEX = "index"
LIT_MAGIC_STRING_INPUT = "input"
LIT_MAGIC_STRING_IS_NAN = "isNaN"
LIT_MAGIC_STRING_LOG1P = "log1p"
LIT_MAGIC_STRING_LOG10 = "log10"
LIT_MAGIC_STRING_MATCH = "match"
LIT_MAGIC_STRING_PARSE = "parse"
LIT_MAGIC_STRING_PROXY = "proxy"
@@ -135,6 +149,7 @@ LIT_MAGIC_STRING_DELETE = "delete"
LIT_MAGIC_STRING_ESCAPE = "escape"
LIT_MAGIC_STRING_FILTER = "filter"
LIT_MAGIC_STRING_FREEZE = "freeze"
LIT_MAGIC_STRING_FROUND = "fround"
LIT_MAGIC_STRING_GET_DAY_UL = "getDay"
LIT_MAGIC_STRING_GLOBAL = "global"
LIT_MAGIC_STRING_IS_VIEW_UL = "isView"