diff options
Diffstat (limited to 'js/src/jit-test/tests/basic/constAssignError.js')
-rw-r--r-- | js/src/jit-test/tests/basic/constAssignError.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/basic/constAssignError.js b/js/src/jit-test/tests/basic/constAssignError.js new file mode 100644 index 000000000..3e93fb464 --- /dev/null +++ b/js/src/jit-test/tests/basic/constAssignError.js @@ -0,0 +1,23 @@ +// Can't assign to const is a runtime TypeError + +load(libdir + 'asserts.js'); + +function assertTypeError(str) { + assertThrowsInstanceOf(function () { eval(str); }, TypeError); +} + +assertTypeError("(function() { const x = 3; (() => x++)(); return x })()"); +assertTypeError("(function() { const x = 3; (() => x++)(); return x++ })()"); +assertTypeError("(function() { const x = 2; (() => x++)(); return ++x })()"); +assertTypeError("(function() { const x = 2; (() => x++)(); return x += 1 })()"); + +assertTypeError("(function() { const x = 3; x = 1; return (function() { return x})() })()"); +assertTypeError("(function() { const x = 3; x = 1; return (function() { return x})() })()"); +assertTypeError("(function() { const x = 3; x++; return (function() { return x})() })()"); +assertTypeError("(function() { const x = 3; ++x; return (function() { return x})() })()"); +assertTypeError("(function() { const x = 3; x--; return (function() { return x})() })()"); +assertTypeError("(function() { const x = 3; --x; return (function() { return x})() })()"); +assertTypeError("(function() { const x = 3; x += 1; return (function() { return x})() })()"); +assertTypeError("(function() { const x = 3; x -= 1; return (function() { return x})() })()"); + +assertTypeError("(function() { const x = 3; [x] = [1]; })()"); |