| // Copyright (C) 2016 the V8 project authors. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| /*--- |
| desc: SingleNameBinding assigns `name` to "anonymous" classes |
| template: default |
| info: | |
| 13.3.3.6 Runtime Semantics: IteratorBindingInitialization |
| |
| SingleNameBinding : BindingIdentifier Initializeropt |
| |
| [...] |
| 6. If Initializer is present and v is undefined, then |
| a. Let defaultValue be the result of evaluating Initializer. |
| b. Let v be GetValue(defaultValue). |
| c. ReturnIfAbrupt(v). |
| d. If IsAnonymousFunctionDefinition(Initializer) is true, then |
| [...] |
| 7. If environment is undefined, return PutValue(lhs, v). |
| 8. Return InitializeReferencedBinding(lhs, v). |
| ---*/ |
| |
| //- elems |
| [cls = class {}, xCls = class X {}, xCls2 = class { static name() {} }] |
| //- vals |
| [] |
| //- body |
| assert.sameValue(cls.name, 'cls'); |
| assert.notSameValue(xCls.name, 'xCls'); |
| assert.notSameValue(xCls2.name, 'xCls2'); |