// 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, 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.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');