| // Copyright (C) 2016 André Bargull. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| esid: sec-%throwtypeerror% |
| description: > |
| %ThrowTypeError% does not have an own "caller" property. |
| info: | |
| %ThrowTypeError% ( ) |
| |
| The %ThrowTypeError% intrinsic is an anonymous built-in function |
| object that is defined once for each realm. |
| |
| 16.2 Forbidden Extensions |
| |
| Other than as defined in this specification, ECMAScript Function |
| objects defined using syntactic constructors in strict mode code |
| must not be created with own properties named "caller" or |
| "arguments" other than those that are created by applying the |
| AddRestrictedFunctionProperties abstract operation (9.2.7) to |
| the function. [...] Built-in functions, strict mode functions |
| created using the Function constructor, generator functions |
| created using the Generator constructor, and functions created |
| using the bind method also must not be created with such own |
| properties. |
| ---*/ |
| |
| var ThrowTypeError = Object.getOwnPropertyDescriptor(function() { |
| "use strict"; |
| return arguments; |
| }(), "callee").get; |
| |
| assert.sameValue(Object.prototype.hasOwnProperty.call(ThrowTypeError, "caller"), false); |