1/* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 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 16declare function print(arg:string, arg2:any):string; 17 18{ 19 class D { 20 b:string; 21 constructor() { 22 print("this.hasOwnProperty:", this.hasOwnProperty("b")); 23 print("Object.getOwnPropertyNames:", Object.getOwnPropertyNames(this)); 24 print("Object.getOwnPropertyDescriptor:", Object.getOwnPropertyDescriptor(this,"b")); 25 print("Object.keys():", Object.keys(this)); 26 print("Reflect.has:", Reflect.has(this, "b")); 27 print("Reflect.ownKeys():", Reflect.ownKeys(this)); 28 print("Reflect.get:", Reflect.get(this, "b")); 29 print("Reflect.getOwnPropertyDescriptor():", Reflect.getOwnPropertyDescriptor(this, "b")); 30 this.b = "abc"; 31 print("this.hasOwnProperty:", this.hasOwnProperty("b")); 32 print("Object.getOwnPropertyNames:", Object.getOwnPropertyNames(this)); 33 print("Object.getOwnPropertyDescriptor:", Object.getOwnPropertyDescriptor(this,"b")); 34 print("Object.keys():", Object.keys(this)); 35 print("Reflect.has:", Reflect.has(this, "b")); 36 print("Reflect.ownKeys():", Reflect.ownKeys(this)); 37 print("Reflect.get:", Reflect.get(this, "b")); 38 print("Reflect.getOwnPropertyDescriptor():", Reflect.getOwnPropertyDescriptor(this, "b")); 39 } 40 } 41 42 let d = new D(); 43}