summaryrefslogtreecommitdiff
path: root/test/built-ins/ThrowTypeError/forbidden-arguments.js
blob: d4d8cbda97319573e17c3b01f4449459a7ed8ce8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 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 "arguments" 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, "arguments"), false);