summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/annexB/language
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/annexB/language')
-rw-r--r--js/src/tests/test262/annexB/language/comments/single-line-html-close-first-line-1.js34
-rw-r--r--js/src/tests/test262/annexB/language/comments/single-line-html-close-first-line-2.js34
-rw-r--r--js/src/tests/test262/annexB/language/comments/single-line-html-close-first-line-3.js34
-rw-r--r--js/src/tests/test262/annexB/language/eval-code/direct/script-decl-lex-collision-in-sloppy-mode.js23
-rw-r--r--js/src/tests/test262/annexB/language/eval-code/direct/script-decl-lex-no-collision.js (renamed from js/src/tests/test262/annexB/language/eval-code/direct/script-decl-lex-no-collision-in-strict-mode-strict.js)17
5 files changed, 116 insertions, 26 deletions
diff --git a/js/src/tests/test262/annexB/language/comments/single-line-html-close-first-line-1.js b/js/src/tests/test262/annexB/language/comments/single-line-html-close-first-line-1.js
new file mode 100644
index 0000000000..708e42e4ae
--- /dev/null
+++ b/js/src/tests/test262/annexB/language/comments/single-line-html-close-first-line-1.js
@@ -0,0 +1,34 @@
+--> a comment
+
+// Copyright (C) 2024 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-html-like-comments
+description: >
+ A SingleLineHTMLCloseComment is allowed in the first line
+flags: [raw]
+info: |
+ InputElementHashbangOrRegExp ::
+ WhiteSpace
+ LineTerminator
+ Comment
+ CommonToken
+ HashbangComment
+ RegularExpressionLiteral
+ HTMLCloseComment
+
+ HTMLCloseComment ::
+ WhiteSpaceSequence[opt] SingleLineDelimitedCommentSequence[opt] --> SingleLineCommentChars[opt]
+negative:
+ phase: runtime
+ type: Test262Error
+---*/
+
+// Because this test concerns the interpretation of non-executable character
+// sequences within ECMAScript source code, special care must be taken to
+// ensure that executable code is evaluated as expected.
+//
+// Express the intended behavior by intentionally throwing an error; this
+// guarantees that test runners will only consider the test "passing" if
+// executable sequences are correctly interpreted as such.
+throw new Test262Error("This is not in a comment");
diff --git a/js/src/tests/test262/annexB/language/comments/single-line-html-close-first-line-2.js b/js/src/tests/test262/annexB/language/comments/single-line-html-close-first-line-2.js
new file mode 100644
index 0000000000..0b68aa0f6f
--- /dev/null
+++ b/js/src/tests/test262/annexB/language/comments/single-line-html-close-first-line-2.js
@@ -0,0 +1,34 @@
+ --> a comment
+
+// Copyright (C) 2024 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-html-like-comments
+description: >
+ A SingleLineHTMLCloseComment is allowed in the first line when preceeded by spaces
+flags: [raw]
+info: |
+ InputElementHashbangOrRegExp ::
+ WhiteSpace
+ LineTerminator
+ Comment
+ CommonToken
+ HashbangComment
+ RegularExpressionLiteral
+ HTMLCloseComment
+
+ HTMLCloseComment ::
+ WhiteSpaceSequence[opt] SingleLineDelimitedCommentSequence[opt] --> SingleLineCommentChars[opt]
+negative:
+ phase: runtime
+ type: Test262Error
+---*/
+
+// Because this test concerns the interpretation of non-executable character
+// sequences within ECMAScript source code, special care must be taken to
+// ensure that executable code is evaluated as expected.
+//
+// Express the intended behavior by intentionally throwing an error; this
+// guarantees that test runners will only consider the test "passing" if
+// executable sequences are correctly interpreted as such.
+throw new Test262Error("This is not in a comment");
diff --git a/js/src/tests/test262/annexB/language/comments/single-line-html-close-first-line-3.js b/js/src/tests/test262/annexB/language/comments/single-line-html-close-first-line-3.js
new file mode 100644
index 0000000000..d638fd5080
--- /dev/null
+++ b/js/src/tests/test262/annexB/language/comments/single-line-html-close-first-line-3.js
@@ -0,0 +1,34 @@
+/* a comment */ /*another comment*/--> a comment
+
+// Copyright (C) 2024 Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-html-like-comments
+description: >
+ A SingleLineHTMLCloseComment is allowed in the first line when preceeded by spaces and single-line block comments
+flags: [raw]
+info: |
+ InputElementHashbangOrRegExp ::
+ WhiteSpace
+ LineTerminator
+ Comment
+ CommonToken
+ HashbangComment
+ RegularExpressionLiteral
+ HTMLCloseComment
+
+ HTMLCloseComment ::
+ WhiteSpaceSequence[opt] SingleLineDelimitedCommentSequence[opt] --> SingleLineCommentChars[opt]
+negative:
+ phase: runtime
+ type: Test262Error
+---*/
+
+// Because this test concerns the interpretation of non-executable character
+// sequences within ECMAScript source code, special care must be taken to
+// ensure that executable code is evaluated as expected.
+//
+// Express the intended behavior by intentionally throwing an error; this
+// guarantees that test runners will only consider the test "passing" if
+// executable sequences are correctly interpreted as such.
+throw new Test262Error("This is not in a comment");
diff --git a/js/src/tests/test262/annexB/language/eval-code/direct/script-decl-lex-collision-in-sloppy-mode.js b/js/src/tests/test262/annexB/language/eval-code/direct/script-decl-lex-collision-in-sloppy-mode.js
deleted file mode 100644
index 58d5a125b5..0000000000
--- a/js/src/tests/test262/annexB/language/eval-code/direct/script-decl-lex-collision-in-sloppy-mode.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2023 Alexey Shvayka. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-esid: sec-globaldeclarationinstantiation
-description: Let binding collision with existing var declaration that was created for hoisted function.
-info: |
- [...]
- 3. For each element name of lexNames, do
- a. If env.HasVarDeclaration(name) is true, throw a SyntaxError exception.
-flags: [noStrict]
----*/
-
-eval('if (true) { function test262Fn() {} }');
-
-assert.throws(SyntaxError, function() {
- $262.evalScript('var x; let test262Fn;');
-});
-
-assert.throws(ReferenceError, function() {
- x;
-}, 'no bindings created');
-
-reportCompare(0, 0);
diff --git a/js/src/tests/test262/annexB/language/eval-code/direct/script-decl-lex-no-collision-in-strict-mode-strict.js b/js/src/tests/test262/annexB/language/eval-code/direct/script-decl-lex-no-collision.js
index da859c843d..643b11831d 100644
--- a/js/src/tests/test262/annexB/language/eval-code/direct/script-decl-lex-no-collision-in-strict-mode-strict.js
+++ b/js/src/tests/test262/annexB/language/eval-code/direct/script-decl-lex-no-collision.js
@@ -1,10 +1,11 @@
-'use strict';
// Copyright (C) 2023 Alexey Shvayka. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-globaldeclarationinstantiation
-description: No let binding collision with existing var declaration due to strict-mode eval().
+description: No let binding collision with existing var declaration due to eval().
info: |
+ In strict mode:
+
PerformEval ( x, strictCaller, direct )
[...]
@@ -12,7 +13,17 @@ info: |
a. Let lexEnv be NewDeclarativeEnvironment(runningContext's LexicalEnvironment).
[...]
18. If strictEval is true, set varEnv to lexEnv.
-flags: [onlyStrict]
+
+ In sloppy mode:
+
+ GlobalDeclarationInstantiation ( script, env )
+
+ [...]
+ 3. For each element name of lexNames, do
+ a. If env.HasLexicalDeclaration(name) is true, throw a SyntaxError exception.
+ b. Let hasRestrictedGlobal be ? env.HasRestrictedGlobalProperty(name).
+ c. NOTE: Global var and function bindings (except those that are introduced by non-strict direct eval) are non-configurable and are therefore restricted global properties.
+ d. If hasRestrictedGlobal is true, throw a SyntaxError exception.
---*/
eval('if (true) { function test262Fn() {} }');