/* * Copyright (c) 2021 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @tc.name:assignproxy * @tc.desc:test assign for proxy * @tc.type: FUNC * @tc.require: issueI5NO8G */ var log = ""; var proxy = new Proxy({"cc":"dd", "ee":"ff"}, { get: function(target, propertyKey, receiver) { log += "get"; return target[propertyKey]; }, }); Object.assign({1:2, "aa":"bb"}, proxy); print(log === "getget") var a = {}; var b = { bProp: 1 }; var date1 = new Date(); var aSymbol = Symbol("aSymbol"); b[aSymbol] = 2; b[date1] = 5; Object.assign(a, b); print(a.bProp); print(a[aSymbol]); print(a[date1]); var c = {}; var d = { bProp: 1, two: 2, tre: 3 }; d[aSymbol] = 6; d[date1] = 10; delete d.bProp; Object.assign(c, d); print(c.two); print(c[aSymbol]); print(d[date1]);