1/*
2 * Copyright (c) 2023 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:storeicbyname
18 * @tc.desc:test storeicbyname
19 * @tc.type: FUNC
20 * @tc.require: issueI7UTOA
21 */
22
23const arr = [];
24for (let i = 0; i < 200; i++) {
25
26}
27for (let i = 0; i < 100; i++) {
28    arr.length = 1025;
29}
30print("test successful !!!");
31for (let i = 0; i < 100; i++) {
32    const v77 = {};
33    v77.__proto__ = null;
34}
35print("test set __proto__ null successful")
36
37let bad_proto = {
38    get __proto__(){
39
40    }
41}
42let obj = {};
43obj.__proto__ = bad_proto;
44print("test set bad_proto successful!");
45
46let obj1 = {};
47Object.defineProperty(obj1, 'foo', {
48    set: function(value) {
49        Object.defineProperty(this, 'bar', {
50            get: function() {
51                return this._bar;
52            },
53            set: function(value) {
54                this._bar = value;
55            },
56        });
57    }
58});
59
60obj.foo = 'some value';
61for (let i = 0; i < 20; i++) {
62    obj.bar = 'new value';
63}
64print("test accessor ic successful!");