diff options
Diffstat (limited to 'js/src/jit-test/tests/parser/for-each-warn.js')
-rw-r--r-- | js/src/jit-test/tests/parser/for-each-warn.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/parser/for-each-warn.js b/js/src/jit-test/tests/parser/for-each-warn.js new file mode 100644 index 000000000..2b20c6174 --- /dev/null +++ b/js/src/jit-test/tests/parser/for-each-warn.js @@ -0,0 +1,36 @@ +// for-each should be warned once and only once. + +function testWarn(code) { + enableLastWarning(); + var g = newGlobal(); + g.code = code; + g.eval('eval(code)'); + var warning = getLastWarning(); + assertEq(warning !== null, true, "warning should be caught for " + code); + assertEq(warning.name, "Warning"); + + clearLastWarning(); + g.eval('eval(code)'); + warning = getLastWarning(); + assertEq(warning, null, "warning should not be caught for 2nd ocurrence"); + + clearLastWarning(); + g = newGlobal(); + g.code = code; + g.eval('Reflect.parse(code);'); + warning = getLastWarning(); + assertEq(warning !== null, true, "warning should be caught for " + code); + assertEq(warning.name, "Warning"); + + clearLastWarning(); + g.eval('Reflect.parse(code);'); + warning = getLastWarning(); + assertEq(warning, null, "warning should not be caught for 2nd ocurrence"); + disableLastWarning(); +} + +testWarn("for each (var x in {}) {}"); +testWarn("for each (x in {}) {}"); +testWarn("for each (let y in {}) {}"); +testWarn("for each (const y in {}) {}"); +testWarn("for each ([x, y] in {}) {}"); |