diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /js/src/jit-test/tests/arrow-functions/syntax-errors.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/jit-test/tests/arrow-functions/syntax-errors.js')
-rw-r--r-- | js/src/jit-test/tests/arrow-functions/syntax-errors.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/arrow-functions/syntax-errors.js b/js/src/jit-test/tests/arrow-functions/syntax-errors.js new file mode 100644 index 0000000000..925fd5b894 --- /dev/null +++ b/js/src/jit-test/tests/arrow-functions/syntax-errors.js @@ -0,0 +1,38 @@ +// Check that we correctly throw SyntaxErrors for various syntactic near-misses. + +load(libdir + "asserts.js"); + +var mistakes = [ + "((a)) => expr", + "a + b => a", + "'' + a => a", + "...x", + "[x] => x", + "([x] => x)", + "{p: p} => p", + "({p: p} => p)", + "{p} => p", + "(...x => expr)", + "1 || a => a", + "'use strict' => {}", + "package => {'use strict';}", // tricky: FutureReservedWord in strict mode code only + "'use strict'; arguments => 0", // names banned in strict mode code + "'use strict'; eval => 0", + "a => {'use strict'; with (a) return x; }", + "a => yield a", + "a => { yield a; }", + "a => { { let x; yield a; } }", + "(a = yield 0) => a", + "for (;;) a => { break; };", + "for (;;) a => { continue; };", + "...rest) =>", + "2 + ...rest) =>" +]; + +for (var s of mistakes) + assertThrowsInstanceOf(function () { Function(s); }, SyntaxError); + +// Check that the tricky case is not an error in non-strict-mode code. +var f = package => 0; +assertEq(f(1), 0); + |