1// Copyright JS Foundation and other contributors, http://js.foundation 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15var props = ['arguments', 'caller']; 16 17function f_simple () { 18} 19 20function f_strict () { 21 "use strict"; 22} 23 24for (let prop of props) { 25 try { 26 Function.prototype[prop]; 27 assert(false); 28 } catch (e) { 29 assert(e instanceof TypeError); 30 } 31 32 assert(f_simple[prop] === null); 33 34 try { 35 f_strict[prop]; 36 assert(false); 37 } catch (e) { 38 assert(e instanceof TypeError); 39 } 40 41 let desc = Object.getOwnPropertyDescriptor(f_simple, prop); 42 assert(desc.value === null); 43 assert(desc.writable === false); 44 assert(desc.enumerable === false); 45 assert(desc.configurable === false); 46 assert(Object.getOwnPropertyDescriptor(f_strict, prop) === undefined); 47} 48