Improve BigInt support (#4118)

This patch adds several small features:
- Support right shift with negative numbers
- Support exponentation operator
- BigInts can be enabled in ES5.1 mode
- Remove dead code from ecma_deref_bigint
- Support longer BigInt literals in the parser
- Fix various BigInt comparison issues
- Do not discard unary plus for BigInt constants

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2020-08-11 11:25:01 +02:00
committed by GitHub
parent 286e515f9f
commit f761427a3e
13 changed files with 409 additions and 138 deletions
+6
View File
@@ -1883,6 +1883,12 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */
{
is_negative_number = !is_negative_number;
}
#if ENABLED (JERRY_BUILTIN_BIGINT)
else if (JERRY_LIKELY (context_p->token.extra_value == LEXER_NUMBER_BIGINT))
{
break;
}
#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
parser_stack_pop_uint8 (context_p);
}
while (context_p->stack_top_uint8 == LEXER_PLUS