1/* 2 * Copyright (c) 2021 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 16/* 17 * @tc.name:assignproxy 18 * @tc.desc:test assign for proxy 19 * @tc.type: FUNC 20 * @tc.require: issueI5NO8G 21 */ 22var log = ""; 23var proxy = new Proxy({"cc":"dd", "ee":"ff"}, { 24get: function(target, propertyKey, receiver) { 25log += "get"; 26return target[propertyKey]; 27}, 28}); 29 30Object.assign({1:2, "aa":"bb"}, proxy); 31print(log === "getget") 32 33var a = {}; 34var b = { bProp: 1 }; 35var date1 = new Date(); 36var aSymbol = Symbol("aSymbol"); 37b[aSymbol] = 2; 38b[date1] = 5; 39Object.assign(a, b); 40print(a.bProp); 41print(a[aSymbol]); 42print(a[date1]); 43 44var c = {}; 45var d = { bProp: 1, two: 2, tre: 3 }; 46d[aSymbol] = 6; 47d[date1] = 10; 48delete d.bProp; 49Object.assign(c, d); 50print(c.two); 51print(c[aSymbol]); 52print(d[date1]);