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:
Zoltan Herczeg
2021-03-10 09:56:48 +01:00
committed by GitHub
parent 7a2665621b
commit 546422161e
45 changed files with 658 additions and 596 deletions
+4 -8
View File
@@ -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);
+2 -4
View File
@@ -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);
+6 -3
View File
@@ -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),
+2 -4
View File
@@ -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
View File
@@ -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);
+7 -4
View File
@@ -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);
+4 -8
View File
@@ -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);
+2 -4
View File
@@ -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);
+6 -12
View File
@@ -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);
+5 -4
View File
@@ -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));
+2 -4
View File
@@ -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);
+7 -13
View File
@@ -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);
+2 -4
View File
@@ -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);
+2 -5
View File
@@ -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, &regex_obj, 1);
jerry_value_t regex_res = jerry_get_property_by_index (res, 0);
+2 -5
View File
@@ -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, &regex_obj, 1);
jerry_value_t regex_res = jerry_get_property_by_index (res, 0);
+4 -8
View File
@@ -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);
+13 -8
View File
@@ -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);
+12 -18
View File
@@ -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);
+2 -4
View File
@@ -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;
+2 -4
View File
@@ -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);