diff options
Diffstat (limited to 'js/src/tests/test262/language/expressions/class/name.js')
-rw-r--r-- | js/src/tests/test262/language/expressions/class/name.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/expressions/class/name.js b/js/src/tests/test262/language/expressions/class/name.js new file mode 100644 index 0000000000..f3a3ae912f --- /dev/null +++ b/js/src/tests/test262/language/expressions/class/name.js @@ -0,0 +1,56 @@ +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-runtime-semantics-evaluation +description: Assignment of function `name` attribute +info: | + ClassExpression : class ClassTail + + 1. Let value be ? ClassDefinitionEvaluation of ClassTail with arguments + undefined and "". + ... + 4. Return value. + + ClassExpression : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be ? ClassDefinitionEvaluation of ClassTail with arguments + className and className. + ... + 4. Return value. + + 14.6.13 Runtime Semantics: ClassDefinitionEvaluation + + ... + 12. Let constructorInfo be DefineMethod of constructor with arguments proto, + className as the optional name argument, and constructorParent. + ... + + 14.3.7 Runtime Semantics: DefineMethod + + ... + 7. Let closure be FunctionCreate(kind, UniqueFormalParameters, FunctionBody, + scope, name, prototype). + ... + +includes: [propertyHelper.js] +---*/ + +verifyProperty(class {}, "name", { + value: "", writable: false, enumerable: false, configurable: true +}); + +verifyProperty(class cls {}, "name", { + value: "cls", writable: false, enumerable: false, configurable: true +}); + +verifyProperty(class { constructor() {} }, "name", { + value: "", writable: false, enumerable: false, configurable: true +}); + +verifyProperty(class cls { constructor() {} }, "name", { + value: "cls", writable: false, enumerable: false, configurable: true +}); + +reportCompare(0, 0); |