test262/test/language/statements/class/static-init-arguments-functions.js
jugglinmike afe217b318
Add tests for "Class Static Init. Blocks" proposal (#2968)
* Add tests for "Class Static Init. Blocks" proposal

This proposal is currently at "stage 3" in TC39's standardization
process.

* fixup! Add tests for "Class Static Init. Blocks" proposal

* Correct identifier reference

* Update tests for grammar

* Update tests for identifiers

* Add tests for scope derivation
2021-07-15 08:49:12 -04:00

41 lines
1.2 KiB
JavaScript

// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
description: The identifier `arguments` is not restricted within function forms
info: |
ClassStaticBlockBody : ClassStaticBlockStatementList
- It is a Syntax Error if ContainsArguments of ClassStaticBlockStatementList
is true.
includes: [compareArray.js]
features: [class-static-block]
---*/
var fn, fnParam;
var gen, genParam;
var asyncFn, asyncFnParam;
class C {
static {
(function({test262 = fnParam = arguments}) {
fn = arguments;
})('function');
(function * ({test262 = genParam = arguments}) {
gen = arguments;
})('generator function').next();
(async function ({test262 = asyncFnParam = arguments}) {
asyncFn = arguments;
})('async function');
}
}
assert(compareArray(['function'], fn), 'body');
assert(compareArray(['function'], fnParam), 'parameter');
assert(compareArray(['generator function'], gen), 'body');
assert(compareArray(['generator function'], genParam), 'parameter');
assert(compareArray(['async function'], asyncFn), 'body');
assert(compareArray(['async function'], asyncFnParam), 'parameter');