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 15// Copyright 2017 the V8 project authors. All rights reserved. 16// Use of this source code is governed by a BSD-style license that can be 17// found in the LICENSE file. 18 19var object1 = { 20 x: "Bat", 21 y: "Cat" 22}; 23 24assert (Reflect.get (object1, 'y') === "Cat"); 25 26try { 27 Reflect.get (); 28 assert (false); 29} catch (e) { 30 assert (e instanceof TypeError); 31} 32 33assert (Reflect.get ({}) === undefined); 34 35var o = {x: 10}; 36function foo () { 37 try { 38 return Reflect.get (o, "x"); 39 } catch (e) { 40 return 1; 41 } 42} 43 44assert (10 === foo()); 45 46var c = {}; 47function foo2 (a) { 48 try { 49 return Reflect.get (c, a); 50 } catch (e) { 51 return 1; 52 } 53} 54 55assert (1 === foo2 ({[Symbol.toPrimitive]() { throw new Error(); }})); 56