From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- .../block-decl-func-skip-arguments.js | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 js/src/tests/test262/annexB/language/function-code/block-decl-func-skip-arguments.js (limited to 'js/src/tests/test262/annexB/language/function-code/block-decl-func-skip-arguments.js') diff --git a/js/src/tests/test262/annexB/language/function-code/block-decl-func-skip-arguments.js b/js/src/tests/test262/annexB/language/function-code/block-decl-func-skip-arguments.js new file mode 100644 index 0000000000..14772af5ff --- /dev/null +++ b/js/src/tests/test262/annexB/language/function-code/block-decl-func-skip-arguments.js @@ -0,0 +1,59 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Functions named 'arguments' have legacy hoisting semantics +esid: sec-web-compat-functiondeclarationinstantiation +flags: [noStrict] +info: | + FunctionDeclarationInstantiation ( _func_, _argumentsList_ ) + + [...] + 7. Let _parameterNames_ be the BoundNames of _formals_. + [...] + 22. If argumentsObjectNeeded is true, then + f. Append "arguments" to parameterNames. + + Changes to FunctionDeclarationInstantiation + + [...] + ii. If replacing the |FunctionDeclaration| _f_ with a |VariableStatement| that has _F_ + as a |BindingIdentifier| would not produce any Early Errors for _func_ and _F_ is + not an element of _parameterNames_, then + [...] +---*/ + +// Simple parameters +(function() { + assert.sameValue(arguments.toString(), "[object Arguments]"); + { + assert.sameValue(arguments(), undefined); + function arguments() {} + assert.sameValue(arguments(), undefined); + } + assert.sameValue(arguments.toString(), "[object Arguments]"); +}()); + +// Single named parameter +(function(x) { + assert.sameValue(arguments.toString(), "[object Arguments]"); + { + assert.sameValue(arguments(), undefined); + function arguments() {} + assert.sameValue(arguments(), undefined); + } + assert.sameValue(arguments.toString(), "[object Arguments]"); +}()); + +// Non-simple parameters +(function(..._) { + assert.sameValue(arguments.toString(), "[object Arguments]"); + { + assert.sameValue(arguments(), undefined); + function arguments() {} + assert.sameValue(arguments(), undefined); + } + assert.sameValue(arguments.toString(), "[object Arguments]"); +}()); + +reportCompare(0, 0); -- cgit v1.2.3