diff options
Diffstat (limited to 'js/src/tests/test262/language/expressions/assignment/fn-name-fn.js')
-rw-r--r-- | js/src/tests/test262/language/expressions/assignment/fn-name-fn.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/expressions/assignment/fn-name-fn.js b/js/src/tests/test262/language/expressions/assignment/fn-name-fn.js new file mode 100644 index 0000000000..1f02cae639 --- /dev/null +++ b/js/src/tests/test262/language/expressions/assignment/fn-name-fn.js @@ -0,0 +1,36 @@ +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +es6id: 12.14.4 +description: Assignment of function `name` attribute (FunctionExpression) +info: | + AssignmentExpression[In, Yield] : + LeftHandSideExpression[?Yield] = AssignmentExpression[?In, ?Yield] + + 1. If LeftHandSideExpression is neither an ObjectLiteral nor an + ArrayLiteral, then + [...] + e. If IsAnonymousFunctionDefinition(AssignmentExpression) and + IsIdentifierRef of LeftHandSideExpression are both true, then + + i. Let hasNameProperty be HasOwnProperty(rval, "name"). + ii. ReturnIfAbrupt(hasNameProperty). + iii. If hasNameProperty is false, perform SetFunctionName(rval, + GetReferencedName(lref)). +includes: [propertyHelper.js] +---*/ + +var xFn, fn; + +xFn = function x() {}; +fn = function() {}; + +assert(xFn.name !== 'xFn'); + +assert.sameValue(fn.name, 'fn'); +verifyNotEnumerable(fn, 'name'); +verifyNotWritable(fn, 'name'); +verifyConfigurable(fn, 'name'); + +reportCompare(0, 0); |