| // Copyright (C) 2016 the V8 project authors. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| /*--- |
| esid: sec-module-namespace-exotic-objects-set-p-v-receiver |
| description: The [[Set]] internal method consistently returns `false` |
| info: | |
| 1. Return false. |
| flags: [module] |
| features: [Reflect, Symbol.iterator, Symbol.toStringTag] |
| ---*/ |
| |
| import * as ns from './define-own-property.js'; |
| export var local1 = null; |
| var local2 = null; |
| export { local2 as renamed }; |
| export { local1 as indirect } from './define-own-property.js'; |
| var sym = Symbol('test262'); |
| |
| assert.sameValue(Reflect.set(ns, 'local1'), false, 'Reflect.set: local1'); |
| assert.throws(TypeError, function() { |
| ns.local1 = null; |
| }, 'AssignmentExpression: local1'); |
| |
| assert.sameValue(Reflect.set(ns, 'local2'), false, 'Reflect.set: local2'); |
| assert.throws(TypeError, function() { |
| ns.local2 = null; |
| }, 'AssignmentExpression: local2'); |
| |
| assert.sameValue(Reflect.set(ns, 'renamed'), false, 'Reflect.set: renamed'); |
| assert.throws(TypeError, function() { |
| ns.renamed = null; |
| }, 'AssignmentExpression: renamed'); |
| |
| assert.sameValue(Reflect.set(ns, 'indirect'), false, 'Reflect.set: indirect'); |
| assert.throws(TypeError, function() { |
| ns.indirect = null; |
| }, 'AssignmentExpression: indirect'); |
| |
| assert.sameValue(Reflect.set(ns, 'default'), false, 'Reflect.set: default'); |
| assert.throws(TypeError, function() { |
| ns.default = null; |
| }, 'AssignmentExpression: default'); |
| |
| assert.sameValue( |
| Reflect.set(ns, Symbol.iterator), false, 'Reflect.set: Symbol.iterator' |
| ); |
| assert.throws(TypeError, function() { |
| ns[Symbol.iterator] = null; |
| }, 'AssignmentExpression: Symbol.iterator'); |
| |
| assert.sameValue( |
| Reflect.set(ns, Symbol.toStringTag), |
| false, |
| 'Reflect.set: Symbol.toStringTag' |
| ); |
| assert.throws(TypeError, function() { |
| ns[Symbol.toStringTag] = null; |
| }, 'AssignmentExpression: Symbol.toStringTag'); |
| |
| assert.sameValue(Reflect.set(ns, sym), false, 'Reflect.set: sym'); |
| assert.throws(TypeError, function() { |
| ns[sym] = null; |
| }, 'AssignmentExpression: sym'); |