Add custom configuration to jerry_parse and its variants (#4620)
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
@@ -62,11 +62,9 @@ main (void)
|
||||
"}"
|
||||
);
|
||||
|
||||
jerry_value_t parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
inf_loop_code_src1,
|
||||
jerry_value_t parsed_code_val = jerry_parse (inf_loop_code_src1,
|
||||
sizeof (inf_loop_code_src1) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
res = jerry_run (parsed_code_val);
|
||||
@@ -97,11 +95,9 @@ main (void)
|
||||
" f();\n"
|
||||
);
|
||||
|
||||
parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
inf_loop_code_src2,
|
||||
parsed_code_val = jerry_parse (inf_loop_code_src2,
|
||||
sizeof (inf_loop_code_src2) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
res = jerry_run (parsed_code_val);
|
||||
|
||||
@@ -64,11 +64,9 @@ main (void)
|
||||
|
||||
char test_source[] = "\xF0\x9D\x84\x9E";
|
||||
|
||||
jerry_value_t result = jerry_parse (NULL,
|
||||
0,
|
||||
(const jerry_char_t *) test_source,
|
||||
jerry_value_t result = jerry_parse ((const jerry_char_t *) test_source,
|
||||
sizeof (test_source) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (jerry_value_is_error (result));
|
||||
TEST_ASSERT (jerry_get_error_type (result) == JERRY_ERROR_SYNTAX);
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ typedef struct
|
||||
#define ENTRY(TYPE, VALUE) { TYPE, VALUE, true }
|
||||
#define ENTRY_IF(TYPE, VALUE, FEATURE) { TYPE, VALUE, jerry_is_feature_enabled (FEATURE) }
|
||||
#define EVALUATE(BUFF) (jerry_eval ((BUFF), sizeof ((BUFF)) - 1, JERRY_PARSE_NO_OPTS))
|
||||
#define PARSE(OPTS) (jerry_parse (NULL, 0, (const jerry_char_t *) "", 0, (OPTS)))
|
||||
#define PARSE(OPTS) (jerry_parse ((const jerry_char_t *) "", 0, (OPTS)))
|
||||
static jerry_value_t
|
||||
test_ext_function (const jerry_call_info_t *call_info_p, /**< call information */
|
||||
const jerry_value_t args_p[], /**< array of arguments */
|
||||
@@ -75,6 +75,9 @@ main (void)
|
||||
const jerry_char_t string_object[] = "new String('foo')";
|
||||
const jerry_char_t weak_ref_object[] = "new WeakRef({})";
|
||||
|
||||
jerry_parse_options_t module_parse_options;
|
||||
module_parse_options.options = JERRY_PARSE_MODULE;
|
||||
|
||||
test_entry_t entries[] =
|
||||
{
|
||||
ENTRY (JERRY_OBJECT_TYPE_NONE, jerry_create_number (-33.0)),
|
||||
@@ -92,8 +95,8 @@ main (void)
|
||||
ENTRY_IF (JERRY_OBJECT_TYPE_CONTAINER, EVALUATE (container_object), JERRY_FEATURE_MAP),
|
||||
ENTRY_IF (JERRY_OBJECT_TYPE_ITERATOR, EVALUATE (iterator_object), JERRY_FEATURE_SYMBOL),
|
||||
|
||||
ENTRY (JERRY_OBJECT_TYPE_SCRIPT, PARSE (JERRY_PARSE_NO_OPTS)),
|
||||
ENTRY_IF (JERRY_OBJECT_TYPE_MODULE, PARSE (JERRY_PARSE_MODULE), JERRY_FEATURE_MODULE),
|
||||
ENTRY (JERRY_OBJECT_TYPE_SCRIPT, PARSE (NULL)),
|
||||
ENTRY_IF (JERRY_OBJECT_TYPE_MODULE, PARSE (&module_parse_options), JERRY_FEATURE_MODULE),
|
||||
ENTRY_IF (JERRY_OBJECT_TYPE_FUNCTION, EVALUATE (arrow_function), JERRY_FEATURE_SYMBOL),
|
||||
ENTRY_IF (JERRY_OBJECT_TYPE_FUNCTION, EVALUATE (async_arrow_function), JERRY_FEATURE_SYMBOL),
|
||||
ENTRY_IF (JERRY_OBJECT_TYPE_FUNCTION, EVALUATE (generator_function), JERRY_FEATURE_SYMBOL),
|
||||
|
||||
@@ -157,11 +157,9 @@ test_promise_from_js (void)
|
||||
{
|
||||
const jerry_char_t test_source[] = "(new Promise(function(rs, rj) { rs(30); })).then(function(v) { return v + 1; })";
|
||||
|
||||
jerry_value_t parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
test_source,
|
||||
jerry_value_t parsed_code_val = jerry_parse (test_source,
|
||||
sizeof (test_source) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
|
||||
jerry_value_t res = jerry_run (parsed_code_val);
|
||||
|
||||
+81
-99
@@ -344,6 +344,42 @@ test_run_simple (const char *script_p) /**< source code to run */
|
||||
return jerry_run_simple ((const jerry_char_t *) script_p, script_size, JERRY_INIT_EMPTY);
|
||||
} /* test_run_simple */
|
||||
|
||||
static void
|
||||
test_syntax_error (const char *script_p, /**< source code to run */
|
||||
const jerry_parse_options_t *options_p, /**< additional parsing options */
|
||||
const char *error_message_p, /**< error message */
|
||||
bool run_script) /**< run script before checking the error message */
|
||||
{
|
||||
jerry_value_t result_val = jerry_parse ((const jerry_char_t *) script_p,
|
||||
strlen (script_p),
|
||||
options_p);
|
||||
|
||||
if (run_script)
|
||||
{
|
||||
TEST_ASSERT (!jerry_value_is_error (result_val));
|
||||
jerry_value_t script_val = result_val;
|
||||
|
||||
result_val = jerry_run (script_val);
|
||||
jerry_release_value (script_val);
|
||||
}
|
||||
|
||||
TEST_ASSERT (jerry_value_is_error (result_val));
|
||||
result_val = jerry_get_value_from_error (result_val, true);
|
||||
|
||||
jerry_value_t err_str_val = jerry_value_to_string (result_val);
|
||||
jerry_size_t err_str_size = jerry_get_string_size (err_str_val);
|
||||
jerry_char_t err_str_buf[256];
|
||||
|
||||
TEST_ASSERT (err_str_size <= sizeof (err_str_buf));
|
||||
TEST_ASSERT (err_str_size == strlen (error_message_p));
|
||||
|
||||
TEST_ASSERT (jerry_string_to_char_buffer (err_str_val, err_str_buf, err_str_size) == err_str_size);
|
||||
|
||||
jerry_release_value (err_str_val);
|
||||
jerry_release_value (result_val);
|
||||
TEST_ASSERT (memcmp ((char *) err_str_buf, error_message_p, err_str_size) == 0);
|
||||
} /* test_syntax_error */
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
@@ -367,11 +403,9 @@ main (void)
|
||||
|
||||
jerry_init (JERRY_INIT_EMPTY);
|
||||
|
||||
parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
test_source,
|
||||
parsed_code_val = jerry_parse (test_source,
|
||||
sizeof (test_source) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
|
||||
res = jerry_run (parsed_code_val);
|
||||
@@ -803,17 +837,14 @@ main (void)
|
||||
jerry_release_value (val_t);
|
||||
|
||||
/* Test: create function */
|
||||
const jerry_char_t func_resource[] = "unknown";
|
||||
const jerry_char_t func_arg_list[] = "a , b,c";
|
||||
const jerry_char_t func_src[] = " return 5 + a+\nb+c";
|
||||
|
||||
jerry_value_t func_val = jerry_parse_function (func_resource,
|
||||
sizeof (func_resource) - 1,
|
||||
func_arg_list,
|
||||
jerry_value_t func_val = jerry_parse_function (func_arg_list,
|
||||
sizeof (func_arg_list) - 1,
|
||||
func_src,
|
||||
sizeof (func_src) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
|
||||
TEST_ASSERT (!jerry_value_is_error (func_val));
|
||||
|
||||
@@ -859,19 +890,15 @@ main (void)
|
||||
{
|
||||
jerry_init (JERRY_INIT_EMPTY);
|
||||
const jerry_char_t scoped_src_p[] = "let a; this.b = 5";
|
||||
jerry_value_t parse_result = jerry_parse (NULL,
|
||||
0,
|
||||
scoped_src_p,
|
||||
jerry_value_t parse_result = jerry_parse (scoped_src_p,
|
||||
sizeof (scoped_src_p) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parse_result));
|
||||
jerry_release_value (parse_result);
|
||||
|
||||
parse_result = jerry_parse (NULL,
|
||||
0,
|
||||
scoped_src_p,
|
||||
parse_result = jerry_parse (scoped_src_p,
|
||||
sizeof (scoped_src_p) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parse_result));
|
||||
|
||||
jerry_value_t run_result = jerry_run (parse_result);
|
||||
@@ -885,21 +912,17 @@ main (void)
|
||||
jerry_release_value (parse_result);
|
||||
|
||||
/* The variable should have no effect on parsing. */
|
||||
parse_result = jerry_parse (NULL,
|
||||
0,
|
||||
scoped_src_p,
|
||||
parse_result = jerry_parse (scoped_src_p,
|
||||
sizeof (scoped_src_p) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parse_result));
|
||||
jerry_release_value (parse_result);
|
||||
|
||||
/* The already existing global binding should not affect a new lexical binding */
|
||||
const jerry_char_t scoped_src2_p[] = "let b = 6; this.b + b";
|
||||
parse_result = jerry_parse (NULL,
|
||||
0,
|
||||
scoped_src2_p,
|
||||
parse_result = jerry_parse (scoped_src2_p,
|
||||
sizeof (scoped_src2_p) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parse_result));
|
||||
run_result = jerry_run (parse_result);
|
||||
TEST_ASSERT (jerry_value_is_number (run_result));
|
||||
@@ -909,11 +932,9 @@ main (void)
|
||||
|
||||
/* Check restricted global property */
|
||||
const jerry_char_t scoped_src3_p[] = "let undefined;";
|
||||
parse_result = jerry_parse (NULL,
|
||||
0,
|
||||
scoped_src3_p,
|
||||
parse_result = jerry_parse (scoped_src3_p,
|
||||
sizeof (scoped_src3_p) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parse_result));
|
||||
run_result = jerry_run (parse_result);
|
||||
TEST_ASSERT (jerry_value_is_error (run_result));
|
||||
@@ -937,11 +958,9 @@ main (void)
|
||||
jerry_release_value (global_obj);
|
||||
|
||||
const jerry_char_t scoped_src4_p[] = "let foo;";
|
||||
parse_result = jerry_parse (NULL,
|
||||
0,
|
||||
scoped_src4_p,
|
||||
parse_result = jerry_parse (scoped_src4_p,
|
||||
sizeof (scoped_src4_p) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parse_result));
|
||||
run_result = jerry_run (parse_result);
|
||||
TEST_ASSERT (jerry_value_is_error (run_result));
|
||||
@@ -963,11 +982,9 @@ main (void)
|
||||
jerry_value_t old_realm = jerry_set_realm (new_realm_value);
|
||||
|
||||
const jerry_char_t scoped_src5_p[] = "let a;";
|
||||
parse_result = jerry_parse (NULL,
|
||||
0,
|
||||
scoped_src5_p,
|
||||
parse_result = jerry_parse (scoped_src5_p,
|
||||
sizeof (scoped_src5_p) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parse_result));
|
||||
run_result = jerry_run (parse_result);
|
||||
TEST_ASSERT (jerry_value_is_error (run_result));
|
||||
@@ -994,11 +1011,9 @@ main (void)
|
||||
old_realm = jerry_set_realm (new_realm_value);
|
||||
|
||||
const jerry_char_t scoped_src6_p[] = "let b;";
|
||||
parse_result = jerry_parse (NULL,
|
||||
0,
|
||||
scoped_src6_p,
|
||||
parse_result = jerry_parse (scoped_src6_p,
|
||||
sizeof (scoped_src6_p) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parse_result));
|
||||
run_result = jerry_run (parse_result);
|
||||
TEST_ASSERT (jerry_value_is_error (run_result));
|
||||
@@ -1021,66 +1036,35 @@ main (void)
|
||||
{
|
||||
jerry_init (JERRY_INIT_SHOW_OPCODES);
|
||||
|
||||
const jerry_char_t parser_err_src[] = "b = 'hello';\nvar a = (;";
|
||||
parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
parser_err_src,
|
||||
sizeof (parser_err_src) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
TEST_ASSERT (jerry_value_is_error (parsed_code_val));
|
||||
parsed_code_val = jerry_get_value_from_error (parsed_code_val, true);
|
||||
jerry_value_t err_str_val = jerry_value_to_string (parsed_code_val);
|
||||
jerry_size_t err_str_size = jerry_get_string_size (err_str_val);
|
||||
jerry_char_t err_str_buf[256];
|
||||
sz = jerry_string_to_char_buffer (err_str_val, err_str_buf, err_str_size);
|
||||
err_str_buf[sz] = 0;
|
||||
|
||||
jerry_release_value (err_str_val);
|
||||
jerry_release_value (parsed_code_val);
|
||||
TEST_ASSERT (!strcmp ((char *) err_str_buf,
|
||||
"SyntaxError: Primary expression expected [<anonymous>:2:10]"));
|
||||
test_syntax_error ("b = 'hello';\nvar a = (;",
|
||||
NULL,
|
||||
"SyntaxError: Primary expression expected [<anonymous>:2:10]",
|
||||
false);
|
||||
|
||||
const jerry_char_t file_str[] = "filename.js";
|
||||
parsed_code_val = jerry_parse (file_str,
|
||||
sizeof (file_str) - 1,
|
||||
parser_err_src,
|
||||
sizeof (parser_err_src) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
TEST_ASSERT (jerry_value_is_error (parsed_code_val));
|
||||
parsed_code_val = jerry_get_value_from_error (parsed_code_val, true);
|
||||
err_str_val = jerry_value_to_string (parsed_code_val);
|
||||
err_str_size = jerry_get_string_size (err_str_val);
|
||||
jerry_parse_options_t parse_options;
|
||||
parse_options.options = JERRY_PARSE_HAS_RESOURCE;
|
||||
parse_options.resource_name_p = file_str;
|
||||
parse_options.resource_name_length = sizeof (file_str) - 1;
|
||||
|
||||
sz = jerry_string_to_char_buffer (err_str_val, err_str_buf, err_str_size);
|
||||
err_str_buf[sz] = 0;
|
||||
test_syntax_error ("b = 'hello';\nvar a = (;",
|
||||
&parse_options,
|
||||
"SyntaxError: Primary expression expected [filename.js:2:10]",
|
||||
false);
|
||||
|
||||
jerry_release_value (err_str_val);
|
||||
jerry_release_value (parsed_code_val);
|
||||
TEST_ASSERT (!strcmp ((char *) err_str_buf,
|
||||
"SyntaxError: Primary expression expected [filename.js:2:10]"));
|
||||
test_syntax_error ("eval(\"var b;\\nfor (,); \");",
|
||||
&parse_options,
|
||||
"SyntaxError: Primary expression expected [<eval>:2:6]",
|
||||
true);
|
||||
|
||||
const jerry_char_t eval_err_src[] = "eval(\"var b;\\nfor (,); \");";
|
||||
parsed_code_val = jerry_parse (file_str,
|
||||
sizeof (file_str),
|
||||
eval_err_src,
|
||||
sizeof (eval_err_src) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
parse_options.options |= JERRY_PARSE_HAS_START;
|
||||
parse_options.start_line = 10;
|
||||
parse_options.start_column = 20;
|
||||
|
||||
res = jerry_run (parsed_code_val);
|
||||
TEST_ASSERT (jerry_value_is_error (res));
|
||||
res = jerry_get_value_from_error (res, true);
|
||||
err_str_val = jerry_value_to_string (res);
|
||||
err_str_size = jerry_get_string_size (err_str_val);
|
||||
|
||||
sz = jerry_string_to_char_buffer (err_str_val, err_str_buf, err_str_size);
|
||||
err_str_buf[sz] = 0;
|
||||
|
||||
jerry_release_value (err_str_val);
|
||||
jerry_release_value (parsed_code_val);
|
||||
jerry_release_value (res);
|
||||
TEST_ASSERT (!strcmp ((char *) err_str_buf,
|
||||
"SyntaxError: Primary expression expected [<eval>:2:6]"));
|
||||
test_syntax_error ("for (var a in []",
|
||||
&parse_options,
|
||||
"SyntaxError: Expected ')' token [filename.js:10:36]",
|
||||
false);
|
||||
|
||||
jerry_cleanup ();
|
||||
}
|
||||
@@ -1094,11 +1078,9 @@ main (void)
|
||||
magic_string_lengths);
|
||||
|
||||
const jerry_char_t ms_code_src[] = "var global = {}; var console = [1]; var process = 1;";
|
||||
parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
ms_code_src,
|
||||
parsed_code_val = jerry_parse (ms_code_src,
|
||||
sizeof (ms_code_src) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
|
||||
res = jerry_run (parsed_code_val);
|
||||
|
||||
@@ -136,11 +136,14 @@ static jerry_value_t
|
||||
run (const char *resource_name_p, /**< resource name */
|
||||
const char *source_p) /**< source code */
|
||||
{
|
||||
jerry_value_t code = jerry_parse ((const jerry_char_t *) resource_name_p,
|
||||
strlen (resource_name_p),
|
||||
(const jerry_char_t *) source_p,
|
||||
jerry_parse_options_t parse_options;
|
||||
parse_options.options = JERRY_PARSE_HAS_RESOURCE;
|
||||
parse_options.resource_name_p = (const jerry_char_t *) resource_name_p;
|
||||
parse_options.resource_name_length = strlen (resource_name_p);
|
||||
|
||||
jerry_value_t code = jerry_parse ((const jerry_char_t *) source_p,
|
||||
strlen (source_p),
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
&parse_options);
|
||||
TEST_ASSERT (!jerry_value_is_error (code));
|
||||
|
||||
jerry_value_t result = jerry_run (code);
|
||||
|
||||
@@ -50,11 +50,9 @@ main (void)
|
||||
jerry_set_vm_exec_stop_callback (vm_exec_stop_callback, &countdown, 16);
|
||||
|
||||
const jerry_char_t inf_loop_code_src1[] = "while(true) {}";
|
||||
jerry_value_t parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
inf_loop_code_src1,
|
||||
jerry_value_t parsed_code_val = jerry_parse (inf_loop_code_src1,
|
||||
sizeof (inf_loop_code_src1) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
jerry_value_t res = jerry_run (parsed_code_val);
|
||||
@@ -76,11 +74,9 @@ main (void)
|
||||
"try { f(); } catch(e) {}"
|
||||
);
|
||||
|
||||
parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
inf_loop_code_src2,
|
||||
parsed_code_val = jerry_parse (inf_loop_code_src2,
|
||||
sizeof (inf_loop_code_src2) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
res = jerry_run (parsed_code_val);
|
||||
|
||||
@@ -29,11 +29,9 @@ int main (void)
|
||||
);
|
||||
|
||||
jerry_init (JERRY_INIT_EMPTY);
|
||||
jerry_value_t parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
test_source,
|
||||
jerry_value_t parsed_code_val = jerry_parse (test_source,
|
||||
sizeof (test_source) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
|
||||
jerry_value_t res = jerry_run (parsed_code_val);
|
||||
|
||||
@@ -150,11 +150,9 @@ main (void)
|
||||
{
|
||||
static const jerry_char_t test_source[] = TEST_STRING_LITERAL ("new Demo (1)");
|
||||
|
||||
jerry_value_t parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
test_source,
|
||||
jerry_value_t parsed_code_val = jerry_parse (test_source,
|
||||
sizeof (test_source) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
|
||||
jerry_value_t res = jerry_run (parsed_code_val);
|
||||
@@ -167,11 +165,9 @@ main (void)
|
||||
{
|
||||
static const jerry_char_t test_source[] = TEST_STRING_LITERAL ("Demo (2)");
|
||||
|
||||
jerry_value_t parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
test_source,
|
||||
jerry_value_t parsed_code_val = jerry_parse (test_source,
|
||||
sizeof (test_source) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
|
||||
jerry_value_t res = jerry_run (parsed_code_val);
|
||||
@@ -189,11 +185,9 @@ main (void)
|
||||
"new base(3);"
|
||||
);
|
||||
|
||||
jerry_value_t parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
test_source,
|
||||
jerry_value_t parsed_code_val = jerry_parse (test_source,
|
||||
sizeof (test_source) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
|
||||
jerry_value_t res = jerry_run (parsed_code_val);
|
||||
|
||||
@@ -183,12 +183,13 @@ main (void)
|
||||
{
|
||||
jerry_init (JERRY_INIT_EMPTY);
|
||||
|
||||
jerry_parse_options_t parse_options;
|
||||
parse_options.options = JERRY_PARSE_STRICT_MODE;
|
||||
|
||||
/* Render strict-equal as a function. */
|
||||
jerry_value_t parse_result = jerry_parse (NULL,
|
||||
0,
|
||||
strict_equal_source,
|
||||
jerry_value_t parse_result = jerry_parse (strict_equal_source,
|
||||
sizeof (strict_equal_source) - 1,
|
||||
JERRY_PARSE_STRICT_MODE);
|
||||
&parse_options);
|
||||
TEST_ASSERT (!jerry_value_is_error (parse_result));
|
||||
jerry_value_t strict_equal = jerry_run (parse_result);
|
||||
TEST_ASSERT (!jerry_value_is_error (strict_equal));
|
||||
|
||||
@@ -122,11 +122,9 @@ main (void)
|
||||
register_js_function ("create_promise2", create_promise2_handler);
|
||||
register_js_function ("assert", assert_handler);
|
||||
|
||||
jerry_value_t parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
test_source,
|
||||
jerry_value_t parsed_code_val = jerry_parse (test_source,
|
||||
sizeof (test_source) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
|
||||
jerry_value_t res = jerry_run (parsed_code_val);
|
||||
|
||||
@@ -243,11 +243,9 @@ main (void)
|
||||
}
|
||||
|
||||
const jerry_char_t get_value_src[] = TEST_STRING_LITERAL ("pdemo.value");
|
||||
jerry_value_t parsed_get_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
get_value_src,
|
||||
sizeof (get_value_src) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
jerry_value_t parsed_get_code_val = jerry_parse (get_value_src,
|
||||
sizeof (get_value_src) - 1,
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_get_code_val));
|
||||
|
||||
{
|
||||
@@ -272,11 +270,9 @@ main (void)
|
||||
}
|
||||
|
||||
const jerry_char_t set_value_src[] = TEST_STRING_LITERAL ("pdemo.value = 55");
|
||||
jerry_value_t parsed_set_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
set_value_src,
|
||||
jerry_value_t parsed_set_code_val = jerry_parse (set_value_src,
|
||||
sizeof (set_value_src) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_set_code_val));
|
||||
|
||||
{
|
||||
@@ -316,11 +312,9 @@ main (void)
|
||||
const jerry_char_t has_value_src[] = TEST_STRING_LITERAL ("new Proxy({}, {\n"
|
||||
" has: function(target, key) { throw 33 }\n"
|
||||
"})");
|
||||
jerry_value_t parsed_has_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
has_value_src,
|
||||
jerry_value_t parsed_has_code_val = jerry_parse (has_value_src,
|
||||
sizeof (has_value_src) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_has_code_val));
|
||||
|
||||
jerry_value_t res = jerry_run (parsed_has_code_val);
|
||||
|
||||
@@ -235,11 +235,9 @@ main (void)
|
||||
TEST_ASSERT (!jerry_value_is_error (result_value));
|
||||
|
||||
const char *script_p = "global2 = global1 - 1; Object.getPrototypeOf([])";
|
||||
jerry_value_t script_value = jerry_parse (NULL,
|
||||
0,
|
||||
(const jerry_char_t *) script_p,
|
||||
jerry_value_t script_value = jerry_parse ((const jerry_char_t *) script_p,
|
||||
strlen (script_p),
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
|
||||
TEST_ASSERT (!jerry_value_is_error (script_value));
|
||||
jerry_set_realm (result_value);
|
||||
|
||||
@@ -36,16 +36,13 @@ main (void)
|
||||
jerry_value_t regex_obj = jerry_create_regexp (pattern2, flags);
|
||||
TEST_ASSERT (jerry_value_is_object (regex_obj));
|
||||
|
||||
const jerry_char_t func_resource[] = "unknown";
|
||||
const jerry_char_t func_arg_list[] = "regex";
|
||||
const jerry_char_t func_src2[] = "return [regex.exec('a\\nb'), regex.dotAll, regex.sticky, regex.unicode ];";
|
||||
jerry_value_t func_val = jerry_parse_function (func_resource,
|
||||
sizeof (func_resource) - 1,
|
||||
func_arg_list,
|
||||
jerry_value_t func_val = jerry_parse_function (func_arg_list,
|
||||
sizeof (func_arg_list) - 1,
|
||||
func_src2,
|
||||
sizeof (func_src2) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
|
||||
jerry_value_t res = jerry_call_function (func_val, undefined_this_arg, ®ex_obj, 1);
|
||||
jerry_value_t regex_res = jerry_get_property_by_index (res, 0);
|
||||
|
||||
@@ -30,16 +30,13 @@ main (void)
|
||||
jerry_value_t regex_obj = jerry_create_regexp (pattern, flags);
|
||||
TEST_ASSERT (jerry_value_is_object (regex_obj));
|
||||
|
||||
const jerry_char_t func_resource[] = "unknown";
|
||||
const jerry_char_t func_arg_list[] = "regex";
|
||||
const jerry_char_t func_src[] = "return [regex.exec('something.domain.com'), regex.multiline, regex.global];";
|
||||
jerry_value_t func_val = jerry_parse_function (func_resource,
|
||||
sizeof (func_resource) - 1,
|
||||
func_arg_list,
|
||||
jerry_value_t func_val = jerry_parse_function (func_arg_list,
|
||||
sizeof (func_arg_list) - 1,
|
||||
func_src,
|
||||
sizeof (func_src) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
|
||||
jerry_value_t res = jerry_call_function (func_val, global_obj_val, ®ex_obj, 1);
|
||||
jerry_value_t regex_res = jerry_get_property_by_index (res, 0);
|
||||
|
||||
@@ -66,11 +66,9 @@ main (void)
|
||||
"new Sub1 ()"
|
||||
);
|
||||
|
||||
jerry_value_t parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
test_source,
|
||||
jerry_value_t parsed_code_val = jerry_parse (test_source,
|
||||
sizeof (test_source) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
|
||||
jerry_value_t result = jerry_run (parsed_code_val);
|
||||
@@ -86,11 +84,9 @@ main (void)
|
||||
"new Sub2 (1)"
|
||||
);
|
||||
|
||||
jerry_value_t parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
test_source,
|
||||
jerry_value_t parsed_code_val = jerry_parse (test_source,
|
||||
sizeof (test_source) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
|
||||
jerry_value_t result = jerry_run (parsed_code_val);
|
||||
|
||||
@@ -58,6 +58,9 @@ main (void)
|
||||
|
||||
jerry_release_value (global);
|
||||
|
||||
jerry_parse_options_t parse_options;
|
||||
parse_options.options = JERRY_PARSE_HAS_RESOURCE;
|
||||
|
||||
const char *source_1 = ("function f1 () {\n"
|
||||
" if (resourceName() !== 'demo1.js') return false; \n"
|
||||
" if (resourceName(f1) !== 'demo1.js') return false; \n"
|
||||
@@ -67,11 +70,12 @@ main (void)
|
||||
"f1();");
|
||||
const char *resource_1 = "demo1.js";
|
||||
|
||||
jerry_value_t program = jerry_parse ((const jerry_char_t *) resource_1,
|
||||
strlen (resource_1),
|
||||
(const jerry_char_t *) source_1,
|
||||
parse_options.resource_name_p = (const jerry_char_t *) resource_1;
|
||||
parse_options.resource_name_length = strlen (resource_1);
|
||||
|
||||
jerry_value_t program = jerry_parse ((const jerry_char_t *) source_1,
|
||||
strlen (source_1),
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
&parse_options);
|
||||
TEST_ASSERT (!jerry_value_is_error (program));
|
||||
|
||||
jerry_value_t run_result = jerry_run (program);
|
||||
@@ -98,11 +102,12 @@ main (void)
|
||||
"f2(); \n");
|
||||
const char *resource_2 = "demo2.js";
|
||||
|
||||
program = jerry_parse ((const jerry_char_t *) resource_2,
|
||||
strlen (resource_2),
|
||||
(const jerry_char_t *) source_2,
|
||||
parse_options.resource_name_p = (const jerry_char_t *) resource_2;
|
||||
parse_options.resource_name_length = strlen (resource_2);
|
||||
|
||||
program = jerry_parse ((const jerry_char_t *) source_2,
|
||||
strlen (source_2),
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
&parse_options);
|
||||
TEST_ASSERT (!jerry_value_is_error (program));
|
||||
|
||||
run_result = jerry_run (program);
|
||||
|
||||
@@ -68,12 +68,11 @@ static void test_function_snapshot (void)
|
||||
|
||||
jerry_init (flags);
|
||||
jerry_value_t generate_result;
|
||||
generate_result = jerry_generate_function_snapshot (NULL,
|
||||
0,
|
||||
code_to_snapshot,
|
||||
generate_result = jerry_generate_function_snapshot (code_to_snapshot,
|
||||
sizeof (code_to_snapshot) - 1,
|
||||
func_args,
|
||||
sizeof (func_args) - 1,
|
||||
NULL,
|
||||
0,
|
||||
function_snapshot_buffer,
|
||||
SNAPSHOT_BUFFER_SIZE);
|
||||
@@ -147,10 +146,9 @@ static void test_function_arguments_snapshot (void)
|
||||
jerry_init (JERRY_INIT_EMPTY);
|
||||
|
||||
jerry_value_t generate_result;
|
||||
generate_result = jerry_generate_snapshot (NULL,
|
||||
0,
|
||||
code_to_snapshot,
|
||||
generate_result = jerry_generate_snapshot (code_to_snapshot,
|
||||
sizeof (code_to_snapshot) - 1,
|
||||
NULL,
|
||||
0,
|
||||
arguments_snapshot_buffer,
|
||||
SNAPSHOT_BUFFER_SIZE);
|
||||
@@ -216,10 +214,9 @@ main (void)
|
||||
magic_string_lengths);
|
||||
|
||||
jerry_value_t generate_result;
|
||||
generate_result = jerry_generate_snapshot (NULL,
|
||||
0,
|
||||
code_to_snapshot,
|
||||
generate_result = jerry_generate_snapshot (code_to_snapshot,
|
||||
sizeof (code_to_snapshot) - 1,
|
||||
NULL,
|
||||
JERRY_SNAPSHOT_SAVE_STATIC,
|
||||
snapshot_buffer,
|
||||
SNAPSHOT_BUFFER_SIZE);
|
||||
@@ -252,10 +249,9 @@ main (void)
|
||||
|
||||
jerry_init (JERRY_INIT_EMPTY);
|
||||
jerry_value_t generate_result;
|
||||
generate_result = jerry_generate_snapshot (NULL,
|
||||
0,
|
||||
code_to_snapshot1,
|
||||
generate_result = jerry_generate_snapshot (code_to_snapshot1,
|
||||
sizeof (code_to_snapshot1) - 1,
|
||||
NULL,
|
||||
0,
|
||||
snapshot_buffer_0,
|
||||
SNAPSHOT_BUFFER_SIZE);
|
||||
@@ -270,10 +266,9 @@ main (void)
|
||||
const jerry_char_t code_to_snapshot2[] = "var b = 'hello'; 456";
|
||||
|
||||
jerry_init (JERRY_INIT_EMPTY);
|
||||
generate_result = jerry_generate_snapshot (NULL,
|
||||
0,
|
||||
code_to_snapshot2,
|
||||
generate_result = jerry_generate_snapshot (code_to_snapshot2,
|
||||
sizeof (code_to_snapshot2) - 1,
|
||||
NULL,
|
||||
0,
|
||||
snapshot_buffer_1,
|
||||
SNAPSHOT_BUFFER_SIZE);
|
||||
@@ -337,10 +332,9 @@ main (void)
|
||||
static const jerry_char_t code_for_c_format[] = "var object = { aa:'fo\" o\\n \\\\', Bb:'max', aaa:'xzy0' };";
|
||||
|
||||
jerry_value_t generate_result;
|
||||
generate_result = jerry_generate_snapshot (NULL,
|
||||
0,
|
||||
code_for_c_format,
|
||||
generate_result = jerry_generate_snapshot (code_for_c_format,
|
||||
sizeof (code_for_c_format) - 1,
|
||||
NULL,
|
||||
0,
|
||||
literal_snapshot_buffer,
|
||||
SNAPSHOT_BUFFER_SIZE);
|
||||
|
||||
@@ -19,11 +19,9 @@
|
||||
static bool
|
||||
test_syntax_error (char *script_p) /**< script */
|
||||
{
|
||||
jerry_value_t parse_result = jerry_parse (NULL,
|
||||
0,
|
||||
(const jerry_char_t *) script_p,
|
||||
jerry_value_t parse_result = jerry_parse ((const jerry_char_t *) script_p,
|
||||
strlen (script_p),
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
|
||||
bool result = false;
|
||||
|
||||
|
||||
@@ -902,11 +902,9 @@ main (void)
|
||||
register_js_function ("test_validator_array2", test_validator_array2_handler);
|
||||
register_js_function ("test_validator_restore", test_validator_restore_handler);
|
||||
|
||||
jerry_value_t parsed_code_val = jerry_parse (NULL,
|
||||
0,
|
||||
test_source,
|
||||
jerry_value_t parsed_code_val = jerry_parse (test_source,
|
||||
sizeof (test_source) - 1,
|
||||
JERRY_PARSE_NO_OPTS);
|
||||
NULL);
|
||||
TEST_ASSERT (!jerry_value_is_error (parsed_code_val));
|
||||
|
||||
jerry_value_t res = jerry_run (parsed_code_val);
|
||||
|
||||
Reference in New Issue
Block a user