Skip to content

Commit 8717937

Browse files
committed
1 parent 4dc6598 commit 8717937

15 files changed

+1139
-535
lines changed

jjs-core/ecma/base/ecma-error-messages.inc.h

Lines changed: 49 additions & 85 deletions
Large diffs are not rendered by default.

jjs-core/lit/lit-magic-strings.inc.h

Lines changed: 72 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SPACE_CHAR, " ")
2121
#if JJS_MODULE_SYSTEM
2222
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ASTERIX_CHAR, "*")
2323
#endif /* JJS_MODULE_SYSTEM */
24-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_TYPEDARRAY
24+
#if JJS_BUILTIN_ARRAY \
25+
|| JJS_BUILTIN_TYPEDARRAY
2526
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_COMMA_CHAR, ",")
2627
#endif /* JJS_BUILTIN_ARRAY \
2728
|| JJS_BUILTIN_TYPEDARRAY */
@@ -35,7 +36,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PI_U, "PI")
3536
#endif /* JJS_BUILTIN_MATH */
3637
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_AT, "at")
3738
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS, "is")
38-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_TYPEDARRAY
39+
#if JJS_BUILTIN_ARRAY \
40+
|| JJS_BUILTIN_TYPEDARRAY
3941
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_OF, "of")
4042
#endif /* JJS_BUILTIN_ARRAY \
4143
|| JJS_BUILTIN_TYPEDARRAY */
@@ -54,7 +56,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UTC_U, "UTC")
5456
#if JJS_BUILTIN_MATH
5557
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ABS, "abs")
5658
#endif /* JJS_BUILTIN_MATH */
57-
#if JJS_BUILTIN_ATOMICS || JJS_BUILTIN_CONTAINER
59+
#if JJS_BUILTIN_ATOMICS \
60+
|| JJS_BUILTIN_CONTAINER
5861
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ADD, "add")
5962
#endif /* JJS_BUILTIN_ATOMICS \
6063
|| JJS_BUILTIN_CONTAINER */
@@ -69,15 +72,18 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EXP, "exp")
6972
#endif /* JJS_BUILTIN_MATH */
7073
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FOR, "for")
7174
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET, "get")
72-
#if JJS_BUILTIN_CONTAINER || JJS_BUILTIN_PROXY || JJS_BUILTIN_REFLECT
75+
#if JJS_BUILTIN_CONTAINER \
76+
|| JJS_BUILTIN_PROXY \
77+
|| JJS_BUILTIN_REFLECT
7378
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_HAS, "has")
7479
#endif /* JJS_BUILTIN_CONTAINER \
75-
|| JJS_BUILTIN_PROXY \
80+
|| JJS_BUILTIN_PROXY \
7681
|| JJS_BUILTIN_REFLECT */
7782
#if JJS_BUILTIN_MATH
7883
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LOG, "log")
7984
#endif /* JJS_BUILTIN_MATH */
80-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_TYPEDARRAY
85+
#if JJS_BUILTIN_ARRAY \
86+
|| JJS_BUILTIN_TYPEDARRAY
8187
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MAP, "map")
8288
#endif /* JJS_BUILTIN_ARRAY \
8389
|| JJS_BUILTIN_TYPEDARRAY */
@@ -140,7 +146,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EXEC, "exec")
140146
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FILL, "fill")
141147
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FIND, "find")
142148
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FLAT, "flat")
143-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_TYPEDARRAY
149+
#if JJS_BUILTIN_ARRAY \
150+
|| JJS_BUILTIN_TYPEDARRAY
144151
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FROM, "from")
145152
#endif /* JJS_BUILTIN_ARRAY \
146153
|| JJS_BUILTIN_TYPEDARRAY */
@@ -170,7 +177,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SINH, "sinh")
170177
#if JJS_BUILTIN_CONTAINER
171178
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SIZE, "size")
172179
#endif /* JJS_BUILTIN_CONTAINER */
173-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_TYPEDARRAY
180+
#if JJS_BUILTIN_ARRAY \
181+
|| JJS_BUILTIN_TYPEDARRAY
174182
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SOME, "some")
175183
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SORT, "sort")
176184
#endif /* JJS_BUILTIN_ARRAY \
@@ -218,7 +226,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CLZ32, "clz32")
218226
#if JJS_BUILTIN_WEAKREF
219227
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DEREF, "deref")
220228
#endif /* JJS_BUILTIN_WEAKREF */
221-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_TYPEDARRAY
229+
#if JJS_BUILTIN_ARRAY \
230+
|| JJS_BUILTIN_TYPEDARRAY
222231
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EVERY, "every")
223232
#endif /* JJS_BUILTIN_ARRAY \
224233
|| JJS_BUILTIN_TYPEDARRAY */
@@ -243,7 +252,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LOG10, "log10")
243252
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LOG1P, "log1p")
244253
#endif /* JJS_BUILTIN_MATH */
245254
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MATCH, "match")
246-
#if JJS_BUILTIN_DATE || JJS_BUILTIN_JSON
255+
#if JJS_BUILTIN_DATE \
256+
|| JJS_BUILTIN_JSON
247257
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PARSE, "parse")
248258
#endif /* JJS_BUILTIN_DATE \
249259
|| JJS_BUILTIN_JSON */
@@ -256,11 +266,14 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ROUND, "round")
256266
#if JJS_BUILTIN_ARRAY
257267
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SHIFT, "shift")
258268
#endif /* JJS_BUILTIN_ARRAY */
259-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_SHAREDARRAYBUFFER || JJS_BUILTIN_STRING || JJS_BUILTIN_TYPEDARRAY
269+
#if JJS_BUILTIN_ARRAY \
270+
|| JJS_BUILTIN_SHAREDARRAYBUFFER \
271+
|| JJS_BUILTIN_STRING \
272+
|| JJS_BUILTIN_TYPEDARRAY
260273
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SLICE, "slice")
261-
#endif /* JJS_BUILTIN_ARRAY \
274+
#endif /* JJS_BUILTIN_ARRAY \
262275
|| JJS_BUILTIN_SHAREDARRAYBUFFER \
263-
|| JJS_BUILTIN_STRING \
276+
|| JJS_BUILTIN_STRING \
264277
|| JJS_BUILTIN_TYPEDARRAY */
265278
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SPLIT, "split")
266279
#if JJS_LINE_INFO
@@ -298,7 +311,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ASSIGN, "assign")
298311
#if JJS_BUILTIN_BIGINT
299312
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BIGINT, "bigint")
300313
#endif /* JJS_BUILTIN_BIGINT */
301-
#if JJS_BUILTIN_DATAVIEW || JJS_BUILTIN_TYPEDARRAY
314+
#if JJS_BUILTIN_DATAVIEW \
315+
|| JJS_BUILTIN_TYPEDARRAY
302316
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BUFFER, "buffer")
303317
#endif /* JJS_BUILTIN_DATAVIEW \
304318
|| JJS_BUILTIN_TYPEDARRAY */
@@ -307,7 +321,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CALLER, "caller")
307321
#if JJS_BUILTIN_STRING
308322
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CHAR_AT_UL, "charAt")
309323
#endif /* JJS_BUILTIN_STRING */
310-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_STRING
324+
#if JJS_BUILTIN_ARRAY \
325+
|| JJS_BUILTIN_STRING
311326
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CONCAT, "concat")
312327
#endif /* JJS_BUILTIN_ARRAY \
313328
|| JJS_BUILTIN_STRING */
@@ -322,7 +337,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ERRORS_UL, "errors")
322337
#if JJS_BUILTIN_ANNEXB
323338
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ESCAPE, "escape")
324339
#endif /* JJS_BUILTIN_ANNEXB */
325-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_TYPEDARRAY
340+
#if JJS_BUILTIN_ARRAY \
341+
|| JJS_BUILTIN_TYPEDARRAY
326342
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FILTER, "filter")
327343
#endif /* JJS_BUILTIN_ARRAY \
328344
|| JJS_BUILTIN_TYPEDARRAY */
@@ -354,7 +370,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PAD_END, "padEnd")
354370
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RANDOM, "random")
355371
#endif /* JJS_BUILTIN_MATH */
356372
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REASON, "reason")
357-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_TYPEDARRAY
373+
#if JJS_BUILTIN_ARRAY \
374+
|| JJS_BUILTIN_TYPEDARRAY
358375
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REDUCE, "reduce")
359376
#endif /* JJS_BUILTIN_ARRAY \
360377
|| JJS_BUILTIN_TYPEDARRAY */
@@ -382,7 +399,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_STRING, "string")
382399
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SUBSTR, "substr")
383400
#endif /* JJS_BUILTIN_ANNEXB && JJS_BUILTIN_STRING */
384401
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL, "symbol")
385-
#if JJS_BUILTIN_DATE || JJS_BUILTIN_JSON
402+
#if JJS_BUILTIN_DATE \
403+
|| JJS_BUILTIN_JSON
386404
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_JSON_UL, "toJSON")
387405
#endif /* JJS_BUILTIN_DATE \
388406
|| JJS_BUILTIN_JSON */
@@ -419,10 +437,12 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DEFAULT, "default")
419437
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ENTRIES, "entries")
420438
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FINALLY, "finally")
421439
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FLATMAP, "flatMap")
422-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_CONTAINER || JJS_BUILTIN_TYPEDARRAY
440+
#if JJS_BUILTIN_ARRAY \
441+
|| JJS_BUILTIN_CONTAINER \
442+
|| JJS_BUILTIN_TYPEDARRAY
423443
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FOR_EACH_UL, "forEach")
424444
#endif /* JJS_BUILTIN_ARRAY \
425-
|| JJS_BUILTIN_CONTAINER \
445+
|| JJS_BUILTIN_CONTAINER \
426446
|| JJS_BUILTIN_TYPEDARRAY */
427447
#if JJS_BUILTIN_DATE
428448
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_DATE_UL, "getDate")
@@ -436,22 +456,26 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_TIME_UL, "getTime")
436456
#if JJS_BUILTIN_ANNEXB && JJS_BUILTIN_DATE
437457
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_YEAR_UL, "getYear")
438458
#endif /* JJS_BUILTIN_ANNEXB && JJS_BUILTIN_DATE */
439-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_STRING || JJS_BUILTIN_TYPEDARRAY
459+
#if JJS_BUILTIN_ARRAY \
460+
|| JJS_BUILTIN_STRING \
461+
|| JJS_BUILTIN_TYPEDARRAY
440462
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INDEX_OF_UL, "indexOf")
441463
#endif /* JJS_BUILTIN_ARRAY \
442-
|| JJS_BUILTIN_STRING \
464+
|| JJS_BUILTIN_STRING \
443465
|| JJS_BUILTIN_TYPEDARRAY */
444466
#if JJS_BUILTIN_ARRAY
445467
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_ARRAY_UL, "isArray")
446468
#endif /* JJS_BUILTIN_ARRAY */
447469
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MESSAGE, "message")
448-
#if JJS_BUILTIN_PROXY || JJS_BUILTIN_REFLECT
470+
#if JJS_BUILTIN_PROXY \
471+
|| JJS_BUILTIN_REFLECT
449472
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_OWN_KEYS_UL, "ownKeys")
450473
#endif /* JJS_BUILTIN_PROXY \
451474
|| JJS_BUILTIN_REFLECT */
452475
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REPLACE, "replace")
453476
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RESOLVE, "resolve")
454-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_TYPEDARRAY
477+
#if JJS_BUILTIN_ARRAY \
478+
|| JJS_BUILTIN_TYPEDARRAY
455479
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REVERSE, "reverse")
456480
#endif /* JJS_BUILTIN_ARRAY \
457481
|| JJS_BUILTIN_TYPEDARRAY */
@@ -563,7 +587,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UNDEFINED_UL, "Undefined")
563587
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING__PROTO__, "__proto__")
564588
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ANONYMOUS, "anonymous")
565589
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ARGUMENTS, "arguments")
566-
#if JJS_BUILTIN_PROXY || JJS_BUILTIN_REFLECT
590+
#if JJS_BUILTIN_PROXY \
591+
|| JJS_BUILTIN_REFLECT
567592
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CONSTRUCT, "construct")
568593
#endif /* JJS_BUILTIN_PROXY \
569594
|| JJS_BUILTIN_REFLECT */
@@ -612,12 +637,15 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TYPED_ARRAY_UL, "TypedArray")
612637
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UINT8_ARRAY_UL, "Uint8Array")
613638
#endif /* JJS_BUILTIN_TYPEDARRAY */
614639
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ALLSETTLED, "allSettled")
615-
#if JJS_BUILTIN_DATAVIEW || JJS_BUILTIN_SHAREDARRAYBUFFER || JJS_BUILTIN_TYPEDARRAY
640+
#if JJS_BUILTIN_DATAVIEW \
641+
|| JJS_BUILTIN_SHAREDARRAYBUFFER \
642+
|| JJS_BUILTIN_TYPEDARRAY
616643
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BYTE_LENGTH_UL, "byteLength")
617-
#endif /* JJS_BUILTIN_DATAVIEW \
644+
#endif /* JJS_BUILTIN_DATAVIEW \
618645
|| JJS_BUILTIN_SHAREDARRAYBUFFER \
619646
|| JJS_BUILTIN_TYPEDARRAY */
620-
#if JJS_BUILTIN_DATAVIEW || JJS_BUILTIN_TYPEDARRAY
647+
#if JJS_BUILTIN_DATAVIEW \
648+
|| JJS_BUILTIN_TYPEDARRAY
621649
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BYTE_OFFSET_UL, "byteOffset")
622650
#endif /* JJS_BUILTIN_DATAVIEW \
623651
|| JJS_BUILTIN_TYPEDARRAY */
@@ -690,12 +718,15 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_HOURS_UL, "getUTCHours")
690718
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_MONTH_UL, "getUTCMonth")
691719
#endif /* JJS_BUILTIN_DATE */
692720
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_HAS_INSTANCE, "hasInstance")
693-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_STRING || JJS_BUILTIN_TYPEDARRAY
721+
#if JJS_BUILTIN_ARRAY \
722+
|| JJS_BUILTIN_STRING \
723+
|| JJS_BUILTIN_TYPEDARRAY
694724
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LAST_INDEX_OF_UL, "lastIndexOf")
695725
#endif /* JJS_BUILTIN_ARRAY \
696-
|| JJS_BUILTIN_STRING \
726+
|| JJS_BUILTIN_STRING \
697727
|| JJS_BUILTIN_TYPEDARRAY */
698-
#if JJS_BUILTIN_ARRAY || JJS_BUILTIN_TYPEDARRAY
728+
#if JJS_BUILTIN_ARRAY \
729+
|| JJS_BUILTIN_TYPEDARRAY
699730
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REDUCE_RIGHT_UL, "reduceRight")
700731
#endif /* JJS_BUILTIN_ARRAY \
701732
|| JJS_BUILTIN_TYPEDARRAY */
@@ -786,7 +817,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BIGUINT64_ARRAY_UL, "BigUint64Array")
786817
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REFERENCE_ERROR_UL, "ReferenceError")
787818
#endif /* JJS_BUILTIN_ERRORS */
788819
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DEFINE_PROPERTY_UL, "defineProperty")
789-
#if JJS_BUILTIN_PROXY || JJS_BUILTIN_REFLECT
820+
#if JJS_BUILTIN_PROXY \
821+
|| JJS_BUILTIN_REFLECT
790822
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DELETE_PROPERTY_UL, "deleteProperty")
791823
#endif /* JJS_BUILTIN_PROXY \
792824
|| JJS_BUILTIN_REFLECT */
@@ -872,7 +904,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_OWN_PROPERTY_DESCRIPTORS_UL, "getOwnP
872904
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FUNCTION_TO_STRING_ANON_ASYNC_GENERATOR, "async function* anonymous(")
873905
#endif /* JJS_FUNCTION_TO_STRING */
874906
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FUNCTION_TO_STRING_NATIVE, "function () { [native code] }")
875-
#if JJS_SNAPSHOT_EXEC || !(JJS_FUNCTION_TO_STRING)
907+
#if JJS_SNAPSHOT_EXEC \
908+
|| !(JJS_FUNCTION_TO_STRING)
876909
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FUNCTION_TO_STRING_ECMA, "function () { /* ecmascript */ }")
877910
#endif /* JJS_SNAPSHOT_EXEC \
878911
|| !(JJS_FUNCTION_TO_STRING) */
@@ -979,15 +1012,18 @@ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (26, LIT_MAGIC_STRING_FUNCTION_TO_STRING
9791012
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (27, LIT_MAGIC_STRING_FUNCTION_TO_STRING_NATIVE)
9801013
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (28, LIT_MAGIC_STRING_FUNCTION_TO_STRING_NATIVE)
9811014
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (29, LIT_MAGIC_STRING_FUNCTION_TO_STRING_NATIVE)
982-
#if JJS_SNAPSHOT_EXEC || !(JJS_FUNCTION_TO_STRING)
1015+
#if JJS_SNAPSHOT_EXEC \
1016+
|| !(JJS_FUNCTION_TO_STRING)
9831017
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (30, LIT_MAGIC_STRING_FUNCTION_TO_STRING_ECMA)
9841018
#endif /* JJS_SNAPSHOT_EXEC \
9851019
|| !(JJS_FUNCTION_TO_STRING) */
986-
#if JJS_SNAPSHOT_EXEC || !(JJS_FUNCTION_TO_STRING)
1020+
#if JJS_SNAPSHOT_EXEC \
1021+
|| !(JJS_FUNCTION_TO_STRING)
9871022
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (31, LIT_MAGIC_STRING_FUNCTION_TO_STRING_ECMA)
9881023
#endif /* JJS_SNAPSHOT_EXEC \
9891024
|| !(JJS_FUNCTION_TO_STRING) */
990-
#if JJS_SNAPSHOT_EXEC || !(JJS_FUNCTION_TO_STRING)
1025+
#if JJS_SNAPSHOT_EXEC \
1026+
|| !(JJS_FUNCTION_TO_STRING)
9911027
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (32, LIT_MAGIC_STRING_FUNCTION_TO_STRING_ECMA)
9921028
#endif /* JJS_SNAPSHOT_EXEC \
9931029
|| !(JJS_FUNCTION_TO_STRING) */

jjs-core/parser/js/byte-code.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ JJS_STATIC_ASSERT (offsetof (cbc_uint8_arguments_t, script_value) == offsetof (c
2828
* whenever new bytecodes are introduced or existing ones have been deleted.
2929
*/
3030
JJS_STATIC_ASSERT (CBC_END == 238, number_of_cbc_opcodes_changed);
31-
JJS_STATIC_ASSERT (CBC_EXT_END == 167, number_of_cbc_ext_opcodes_changed);
31+
JJS_STATIC_ASSERT (CBC_EXT_END == 170, number_of_cbc_ext_opcodes_changed);
3232

3333
#if JJS_PARSER || JJS_PARSER_DUMP_BYTE_CODE
3434

jjs-core/parser/js/byte-code.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,7 @@
500500
\
501501
/* Basic opcodes. */ \
502502
CBC_OPCODE (CBC_EXT_POP_REFERENCE, CBC_NO_FLAG, -2, VM_OC_POP_REFERENCE) \
503+
CBC_FORWARD_BRANCH (CBC_EXT_BRANCH_OPTIONAL_CHAIN, 0, VM_OC_BRANCH_OPTIONAL_CHAIN) \
503504
CBC_OPCODE (CBC_EXT_CREATE_ARGUMENTS, CBC_HAS_LITERAL_ARG, 0, VM_OC_CREATE_ARGUMENTS) \
504505
CBC_OPCODE (CBC_EXT_CREATE_VAR_EVAL, CBC_HAS_LITERAL_ARG, 0, VM_OC_EXT_VAR_EVAL) \
505506
CBC_OPCODE (CBC_EXT_CREATE_VAR_FUNC_EVAL, CBC_HAS_LITERAL_ARG | CBC_HAS_LITERAL_ARG2, 0, VM_OC_EXT_VAR_EVAL) \

jjs-core/parser/js/js-lexer.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,29 @@ lexer_skip_spaces (parser_context_t *context_p) /**< context */
381381
}
382382
} /* lexer_skip_spaces */
383383

384+
/**
385+
* Checks the next token start character.
386+
*
387+
* @return LIT_INVALID_CP - if there is no more characters to read
388+
* next byte - otherwise
389+
*/
390+
lit_code_point_t
391+
lexer_peek_next_character (parser_context_t *context_p) /**< context */
392+
{
393+
if (!(context_p->token.flags & LEXER_NO_SKIP_SPACES))
394+
{
395+
lexer_skip_spaces (context_p);
396+
context_p->token.flags = (uint8_t) (context_p->token.flags | LEXER_NO_SKIP_SPACES);
397+
}
398+
399+
if (context_p->source_p < context_p->source_end_p)
400+
{
401+
return context_p->source_p[0];
402+
}
403+
404+
return LIT_INVALID_CP;
405+
} /* lexer_peek_next_character */
406+
384407
/**
385408
* Skip all the continuous empty statements.
386409
*/
@@ -1738,6 +1761,15 @@ lexer_next_token (parser_context_t *context_p) /**< context */
17381761
length = 2;
17391762
break;
17401763
}
1764+
if (context_p->source_p[1] == (uint8_t) LIT_CHAR_DOT)
1765+
{
1766+
if (length < 3 || !lit_char_is_decimal_digit (context_p->source_p[2]))
1767+
{
1768+
context_p->token.type = LEXER_QUESTION_MARK_DOT;
1769+
length = 2;
1770+
break;
1771+
}
1772+
}
17411773
}
17421774

17431775
context_p->token.type = LEXER_QUESTION_MARK;

jjs-core/parser/js/js-lexer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ typedef enum
154154
LEXER_RIGHT_PAREN, /**< ")" */
155155
LEXER_RIGHT_SQUARE, /**< "]" */
156156
LEXER_DOT, /**< "." */
157+
LEXER_QUESTION_MARK_DOT, /**< "?." */
157158
LEXER_SEMICOLON, /**< ";" */
158159
LEXER_COLON, /**< ":" */
159160
LEXER_COMMA, /**< "," */

0 commit comments

Comments
 (0)