| // 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-new-operator |
| es6id: 12.3.3 |
| description: Realm of error object produced when operand is not a constructor |
| info: | |
| NewExpression : new NewExpression |
| |
| 1. Return ? EvaluateNew(NewExpression, empty). |
| |
| MemberExpression : new MemberExpression Arguments |
| |
| 1. Return ? EvaluateNew(MemberExpression, Arguments). |
| |
| 12.3.3.1.1 Runtime Semantics: EvaluateNew |
| |
| 7. If IsConstructor(constructor) is false, throw a TypeError exception. |
| features: [cross-realm] |
| ---*/ |
| |
| var otherParseInt = $262.createRealm().global.parseInt; |
| |
| assert.sameValue(typeof otherParseInt, 'function'); |
| |
| assert.throws(TypeError, function() { |
| new otherParseInt(0); |
| }, 'production including Arguments'); |
| |
| assert.throws(TypeError, function() { |
| new otherParseInt; |
| }, 'production eliding Arguments'); |