More constant folding: null, true, and false

A step towards doing constant folding for arrays and objects.
This commit is contained in:
Nicolas Williams committed 2014-08-09 19:15:50 -05:00
1 parent 20ca21cb0d
commit 8a561120c4
2 files changed
+9 -4

No files matched your search

-3
View File
@@ -868,9 +868,6 @@ static block bind_bytecoded_builtins(block b) {
{
struct bytecoded_builtin builtin_defs[] = {
{"empty", gen_op_simple(BACKTRACK)},
{"false", gen_const(jv_false())},
{"true", gen_const(jv_true())},
{"null", gen_const(jv_null())},
{"not", gen_condbranch(gen_const(jv_false()),
gen_const(jv_true()))}
};
+9 -1
View File
@@ -638,7 +638,15 @@ FORMAT {
jv_free($2);
} |
IDENT {
$$ = gen_location(@$, locations, gen_call(jv_string_value($1), gen_noop()));
const char *s = jv_string_value($1);
if (strcmp(s, "false") == 0)
$$ = gen_const(jv_false());
else if (strcmp(s, "true") == 0)
$$ = gen_const(jv_true());
else if (strcmp(s, "null") == 0)
$$ = gen_const(jv_null());
else
$$ = gen_location(@$, locations, gen_call(s, gen_noop()));
jv_free($1);
} |
IDENT '(' Args ')' {