[jsinterp] Stringify bracket notation keys in object access (#15989)
Authored by: bashonly
This commit is contained in:
parent
62574f5763
commit
c9c8651975
2 changed files with 2 additions and 1 deletions
|
|
@ -330,6 +330,7 @@ class TestJSInterpreter(unittest.TestCase):
|
|||
self._test('function f() { let a = {m1: 42, m2: 0 }; return [a["m1"], a.m2]; }', [42, 0])
|
||||
self._test('function f() { let a; return a?.qq; }', JS_Undefined)
|
||||
self._test('function f() { let a = {m1: 42, m2: 0 }; return a?.qq; }', JS_Undefined)
|
||||
self._test('function f() { let a = {"1": 123}; return a[1]; }', 123)
|
||||
|
||||
def test_regex(self):
|
||||
self._test('function f() { let a=/,,[/,913,/](,)}/; }', None)
|
||||
|
|
|
|||
|
|
@ -385,7 +385,7 @@ class JSInterpreter:
|
|||
if idx == 'length':
|
||||
return len(obj)
|
||||
try:
|
||||
return obj[int(idx)] if isinstance(obj, list) else obj[idx]
|
||||
return obj[int(idx)] if isinstance(obj, list) else obj[str(idx)]
|
||||
except Exception as e:
|
||||
if allow_undefined:
|
||||
return JS_Undefined
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue