mirror of
https://github.com/bellard/quickjs.git
synced 2025-11-15 10:12:14 +03:00
optimized global variable access
This commit is contained in:
@@ -368,7 +368,7 @@ function test_template_skip()
|
||||
|
||||
function test_object_literal()
|
||||
{
|
||||
var x = 0, get = 1, set = 2; async = 3;
|
||||
var x = 0, get = 1, set = 2, async = 3;
|
||||
a = { get: 2, set: 3, async: 4, get a(){ return this.get} };
|
||||
assert(JSON.stringify(a), '{"get":2,"set":3,"async":4,"a":2}');
|
||||
assert(a.a === 2);
|
||||
@@ -628,6 +628,33 @@ function test_unicode_ident()
|
||||
assert(typeof õ, "undefined");
|
||||
}
|
||||
|
||||
/* check global variable optimization */
|
||||
function test_global_var_opt()
|
||||
{
|
||||
var v2;
|
||||
(1, eval)('var gvar1'); /* create configurable global variables */
|
||||
|
||||
gvar1 = 1;
|
||||
Object.defineProperty(globalThis, "gvar1", { writable: false });
|
||||
gvar1 = 2;
|
||||
assert(gvar1, 1);
|
||||
|
||||
Object.defineProperty(globalThis, "gvar1", { get: function() { return "hello" },
|
||||
set: function(v) { v2 = v; } });
|
||||
assert(gvar1, "hello");
|
||||
gvar1 = 3;
|
||||
assert(v2, 3);
|
||||
|
||||
Object.defineProperty(globalThis, "gvar1", { value: 4, writable: true, configurable: true });
|
||||
assert(gvar1, 4);
|
||||
gvar1 = 6;
|
||||
|
||||
delete gvar1;
|
||||
assert_throws(ReferenceError, function() { return gvar1 });
|
||||
gvar1 = 5;
|
||||
assert(gvar1, 5);
|
||||
}
|
||||
|
||||
test_op1();
|
||||
test_cvt();
|
||||
test_eq();
|
||||
@@ -652,3 +679,4 @@ test_parse_semicolon();
|
||||
test_optional_chaining();
|
||||
test_parse_arrow_function();
|
||||
test_unicode_ident();
|
||||
test_global_var_opt();
|
||||
|
||||
Reference in New Issue
Block a user