Add literals - replacements of strings and numbers in parser.
This commit is contained in:
@@ -14,4 +14,13 @@
|
||||
|
||||
var a = {get a(){return undefined}, set a(b){}}
|
||||
|
||||
// var b = {if:0, else:1, try:2, catch:3, finally:4}
|
||||
var b = {if:0, else:1, try:2, catch:3, finally:4, let:5}
|
||||
|
||||
assert (b.if + b.else + b.try + b.catch + b.finally + b.let === 15)
|
||||
|
||||
function c() {
|
||||
"use strict"
|
||||
var b = {let:15, enum:10}
|
||||
assert (b.let + b.enum === 25)
|
||||
}
|
||||
c();
|
||||
|
||||
+3
-1
@@ -17,13 +17,15 @@
|
||||
#define COMMON_H
|
||||
|
||||
#include "jerry-libc.h"
|
||||
#include "literal.h"
|
||||
|
||||
#define NAME_TO_ID(op) (__op__idx_##op)
|
||||
|
||||
#define __OPCODE_SIZE(name, arg1, arg2, arg3) \
|
||||
sizeof (__op_##name) + 1,
|
||||
|
||||
#define LP(s) (lp_string) { .length = (uint8_t) __strlen(s), .str = (ecma_char_t *) s }
|
||||
#define LP(s) create_literal_from_str_compute_len (s)
|
||||
#define NUM(s) create_literal_from_num (s)
|
||||
|
||||
static uint8_t opcode_sizes[] = {
|
||||
OP_LIST (OPCODE_SIZE)
|
||||
|
||||
@@ -40,10 +40,10 @@ main( int __unused argc,
|
||||
mem_init();
|
||||
serializer_init (false);
|
||||
|
||||
const lp_string strings[] = { LP("a"),
|
||||
LP("b") };
|
||||
ecma_number_t nums [] = { 2.0 };
|
||||
serializer_dump_strings_and_nums (strings, 2, nums, 1);
|
||||
const literal lits[] = { LP("a"),
|
||||
LP("b"),
|
||||
NUM(2.0) };
|
||||
serializer_dump_literals (lits, 3);
|
||||
|
||||
init_int( test_program, false);
|
||||
|
||||
|
||||
@@ -172,14 +172,14 @@ main( int __unused argc,
|
||||
mem_init();
|
||||
serializer_init (false);
|
||||
|
||||
const lp_string strings[] = { LP("a"),
|
||||
LP("b"),
|
||||
LP("length"),
|
||||
LP("1") };
|
||||
ecma_number_t nums [] = { 2.0,
|
||||
12.0,
|
||||
2.5 };
|
||||
serializer_dump_strings_and_nums (strings, 4, nums, 3);
|
||||
const literal literals[] = { LP("a"),
|
||||
LP("b"),
|
||||
LP("length"),
|
||||
LP("1"),
|
||||
NUM(2.0),
|
||||
NUM(12.0),
|
||||
NUM(2.5) };
|
||||
serializer_dump_literals (literals, 7);
|
||||
|
||||
init_int( test_program, false);
|
||||
|
||||
|
||||
@@ -45,10 +45,10 @@ main( int __unused argc,
|
||||
mem_init();
|
||||
serializer_init (false);
|
||||
|
||||
const lp_string strings[] = { LP("a"),
|
||||
LP("b") };
|
||||
ecma_number_t nums [] = { 2.0 };
|
||||
serializer_dump_strings_and_nums (strings, 2, nums, 1);
|
||||
const literal lits[] = { LP("a"),
|
||||
LP("b"),
|
||||
NUM(2.0) };
|
||||
serializer_dump_literals (lits, 3);
|
||||
|
||||
init_int( test_program, false);
|
||||
|
||||
|
||||
@@ -40,10 +40,10 @@ main( int __unused argc,
|
||||
mem_init();
|
||||
serializer_init (false);
|
||||
|
||||
const lp_string strings[] = { LP("a"),
|
||||
LP("b") };
|
||||
ecma_number_t nums [] = { 2.0 };
|
||||
serializer_dump_strings_and_nums (strings, 2, nums, 1);
|
||||
const literal lits[] = { LP("a"),
|
||||
LP("b"),
|
||||
NUM(2.0) };
|
||||
serializer_dump_literals (lits, 3);
|
||||
|
||||
init_int( test_program, false);
|
||||
|
||||
|
||||
@@ -40,10 +40,10 @@ main( int __unused argc,
|
||||
mem_init();
|
||||
serializer_init (false);
|
||||
|
||||
const lp_string strings[] = { LP("a"),
|
||||
LP("b") };
|
||||
ecma_number_t nums [] = { 2.0 };
|
||||
serializer_dump_strings_and_nums (strings, 2, nums, 1);
|
||||
const literal lits[] = { LP("a"),
|
||||
LP("b"),
|
||||
NUM(2.0) };
|
||||
serializer_dump_literals (lits, 3);
|
||||
|
||||
init_int( test_program, false);
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ main( int __unused argc,
|
||||
|
||||
mem_init();
|
||||
deserializer_init ();
|
||||
parser_init (program, __strlen (program), false);
|
||||
parser_init (program, __strlen (program), true);
|
||||
parser_parse_program ();
|
||||
parser_free ();
|
||||
|
||||
|
||||
@@ -40,10 +40,10 @@ main( int __unused argc,
|
||||
mem_init();
|
||||
serializer_init (false);
|
||||
|
||||
const lp_string strings[] = { LP("a"),
|
||||
LP("b") };
|
||||
ecma_number_t nums [] = { 2.0 };
|
||||
serializer_dump_strings_and_nums (strings, 2, nums, 1);
|
||||
const literal lits[] = { LP("a"),
|
||||
LP("b"),
|
||||
NUM(2.0) };
|
||||
serializer_dump_literals (lits, 3);
|
||||
|
||||
init_int( test_program, false);
|
||||
|
||||
|
||||
@@ -40,10 +40,10 @@ main( int __unused argc,
|
||||
mem_init();
|
||||
serializer_init (false);
|
||||
|
||||
const lp_string strings[] = { LP("a"),
|
||||
LP("b") };
|
||||
ecma_number_t nums [] = { 2.0 };
|
||||
serializer_dump_strings_and_nums (strings, 2, nums, 1);
|
||||
const literal lits[] = { LP("a"),
|
||||
LP("b"),
|
||||
NUM(2.0) };
|
||||
serializer_dump_literals (lits, 3);
|
||||
|
||||
init_int( test_program, false);
|
||||
|
||||
|
||||
@@ -53,11 +53,11 @@ main( int __unused argc,
|
||||
mem_init();
|
||||
serializer_init (false);
|
||||
|
||||
const lp_string strings[] = { LP("a"),
|
||||
LP("b"),
|
||||
LP("c") };
|
||||
ecma_number_t nums [] = { 2.0 };
|
||||
serializer_dump_strings_and_nums (strings, 3, nums, 1);
|
||||
const literal lits[] = { LP("a"),
|
||||
LP("b"),
|
||||
LP("c"),
|
||||
NUM(2.0) };
|
||||
serializer_dump_literals (lits, 4);
|
||||
|
||||
init_int( test_program, false);
|
||||
|
||||
|
||||
@@ -38,10 +38,10 @@ main( int __unused argc,
|
||||
mem_init();
|
||||
serializer_init (false);
|
||||
|
||||
const lp_string strings[] = { LP("a"),
|
||||
LP("b") };
|
||||
ecma_number_t nums [] = { 2.0 };
|
||||
serializer_dump_strings_and_nums (strings, 2, nums, 1);
|
||||
const literal lits[] = { LP("a"),
|
||||
LP("b"),
|
||||
NUM(2.0) };
|
||||
serializer_dump_literals (lits, 3);
|
||||
|
||||
init_int( test_program, false);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user