14514f5e3Sopenharmony_ci/*
24514f5e3Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
34514f5e3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
44514f5e3Sopenharmony_ci * you may not use this file except in compliance with the License.
54514f5e3Sopenharmony_ci * You may obtain a copy of the License at
64514f5e3Sopenharmony_ci *
74514f5e3Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
84514f5e3Sopenharmony_ci *
94514f5e3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
104514f5e3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
114514f5e3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
124514f5e3Sopenharmony_ci * See the License for the specific language governing permissions and
134514f5e3Sopenharmony_ci * limitations under the License.
144514f5e3Sopenharmony_ci */
154514f5e3Sopenharmony_ci
164514f5e3Sopenharmony_ci/*
174514f5e3Sopenharmony_ci * @tc.name:stubbuilder
184514f5e3Sopenharmony_ci * @tc.desc:test stubbuilder
194514f5e3Sopenharmony_ci * @tc.type: FUNC
204514f5e3Sopenharmony_ci * @tc.require: issueI5NO8G
214514f5e3Sopenharmony_ci */
224514f5e3Sopenharmony_ci
234514f5e3Sopenharmony_ci/*
244514f5e3Sopenharmony_ci*    ZExtInt8ToPtr(); IntPtr(); Int8(); PtrMul(); Int8LSR(); Int8And(); Store(); Load();
254514f5e3Sopenharmony_ci*    ReadInst4_0(); ReadInst4_1(); GetVregValue(); SetVregValue();
264514f5e3Sopenharmony_ci*/
274514f5e3Sopenharmony_ci                      /**************HandleMovV4V4****************/
284514f5e3Sopenharmony_ci
294514f5e3Sopenharmony_ci{
304514f5e3Sopenharmony_ci    var fun = function(parameter) {
314514f5e3Sopenharmony_ci        return parameter;
324514f5e3Sopenharmony_ci    }
334514f5e3Sopenharmony_ci
344514f5e3Sopenharmony_ci    var call = fun(100);
354514f5e3Sopenharmony_ci    print(call);
364514f5e3Sopenharmony_ci}
374514f5e3Sopenharmony_ci
384514f5e3Sopenharmony_ci/*
394514f5e3Sopenharmony_ci*   ZExtInt16ToPtr(); Int16(); ZExtInt8ToInt16();  Int16LSL(); Int16Add();
404514f5e3Sopenharmony_ci*
414514f5e3Sopenharmony_ci*   ReadInst16_0(); ReadInst16_2(); GetVregValue(); SetVregValue(); ReadInst8_0(); ReadInst8_1(); ReadInst8_2(); ReadInst8_3();
424514f5e3Sopenharmony_ci*/
434514f5e3Sopenharmony_ci                      /**************HandleMovV16V16****************/
444514f5e3Sopenharmony_ci
454514f5e3Sopenharmony_ci{
464514f5e3Sopenharmony_ci    var fun = function(pmt1, pmt2, pmt3, pmt4, pmt5, pmt6, pmt7, pmt8, pmt9, pmt10) {
474514f5e3Sopenharmony_ci        let sum = pmt1 + pmt2 + pmt3 + pmt4 + pmt5 + pmt6 + pmt7 + pmt8 + pmt9 + pmt10;
484514f5e3Sopenharmony_ci        return sum;
494514f5e3Sopenharmony_ci    }
504514f5e3Sopenharmony_ci
514514f5e3Sopenharmony_ci    var call = fun(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
524514f5e3Sopenharmony_ci    print(call);
534514f5e3Sopenharmony_ci}
544514f5e3Sopenharmony_ci
554514f5e3Sopenharmony_ci/*
564514f5e3Sopenharmony_ci*    IntToTaggedPtr(); ZExtInt8ToInt32(); Int32LSL(); Int32(); Int32Add();
574514f5e3Sopenharmony_ci*    ReadInst32_0();
584514f5e3Sopenharmony_ci*/
594514f5e3Sopenharmony_ci                      /**************HandleLdaiImm32****************/
604514f5e3Sopenharmony_ci{
614514f5e3Sopenharmony_ci    var fun = function() {
624514f5e3Sopenharmony_ci        let a = 20;
634514f5e3Sopenharmony_ci        return a;
644514f5e3Sopenharmony_ci    }
654514f5e3Sopenharmony_ci    var iter = fun();
664514f5e3Sopenharmony_ci    print(iter);
674514f5e3Sopenharmony_ci}
684514f5e3Sopenharmony_ci
694514f5e3Sopenharmony_ci/*
704514f5e3Sopenharmony_ci*    SExtInt32ToPtr(); SExtInt1ToInt32();
714514f5e3Sopenharmony_ci*    ReadInstSigned8_0();
724514f5e3Sopenharmony_ci*/
734514f5e3Sopenharmony_ci                      /**************HandleJmpImm8****************/
744514f5e3Sopenharmony_ci{
754514f5e3Sopenharmony_ci    var fun = function() {
764514f5e3Sopenharmony_ci        try {
774514f5e3Sopenharmony_ci            print("foo");
784514f5e3Sopenharmony_ci          } finally {
794514f5e3Sopenharmony_ci            print("bar");
804514f5e3Sopenharmony_ci        }
814514f5e3Sopenharmony_ci    }
824514f5e3Sopenharmony_ci    var iter = fun();
834514f5e3Sopenharmony_ci}
844514f5e3Sopenharmony_ci
854514f5e3Sopenharmony_ci/*
864514f5e3Sopenharmony_ci*    CastInt64ToFloat64(); DoubleToTaggedDoublePtr(); ZExtInt8ToInt64(); Int64(); Int64LSL(); Int64Add();
874514f5e3Sopenharmony_ci*    CastDoubleToInt64(); Int64ToTaggedPtr();
884514f5e3Sopenharmony_ci*    ReadInst64_0(); ReadInst8_7(); ReadInst8_6(); ReadInst8_5(); ReadInst8_4(); ReadInst8_3(); ReadInst8_2(); ReadInst8_1();
894514f5e3Sopenharmony_ci*    ReadInst8_0();
904514f5e3Sopenharmony_ci*/
914514f5e3Sopenharmony_ci                      /**************HandleFldaiImm64****************/
924514f5e3Sopenharmony_ci{
934514f5e3Sopenharmony_ci    {
944514f5e3Sopenharmony_ci        var fun = function() {
954514f5e3Sopenharmony_ci            let a = 2.55;
964514f5e3Sopenharmony_ci            return a;
974514f5e3Sopenharmony_ci        }
984514f5e3Sopenharmony_ci        var iter = fun();
994514f5e3Sopenharmony_ci        print(iter);
1004514f5e3Sopenharmony_ci    }
1014514f5e3Sopenharmony_ci}
1024514f5e3Sopenharmony_ci
1034514f5e3Sopenharmony_ci/*
1044514f5e3Sopenharmony_ci*    TaggedIsInt(); TaggedCastToInt32(); Int32Equal(); TaggedIsDouble(); TaggedCastToDouble(); Double(); DoubleAdd();
1054514f5e3Sopenharmony_ci*    CallRuntime(); Int64And(); Int64Equal(); TaggedCastToInt64(); ChangeInt64ToInt32(); BoolNot(); TaggedIsNumber();
1064514f5e3Sopenharmony_ci*    BoolAnd(); ChangeTaggedPointerToInt64(); Int64Sub(); SavePcIfNeeded(); TaggedIsObject(); Argument(); PtrSub();
1074514f5e3Sopenharmony_ci*/
1084514f5e3Sopenharmony_ci                      /**************HandleIncImm8****************/
1094514f5e3Sopenharmony_ci{
1104514f5e3Sopenharmony_ci    var fun = function() {
1114514f5e3Sopenharmony_ci        let a = 10;
1124514f5e3Sopenharmony_ci        return ++a;
1134514f5e3Sopenharmony_ci    }
1144514f5e3Sopenharmony_ci    var iter = fun();
1154514f5e3Sopenharmony_ci    print(iter);
1164514f5e3Sopenharmony_ci}
1174514f5e3Sopenharmony_ci
1184514f5e3Sopenharmony_ci/*
1194514f5e3Sopenharmony_ci*    TaggedIsException(); TaggedIsUndefined(); Int32Not(); TruncPtrToInt32(); IntPtrEqual(); CallNGCRuntime(); Equal();
1204514f5e3Sopenharmony_ci*    TruncInt64ToInt32();
1214514f5e3Sopenharmony_ci*/
1224514f5e3Sopenharmony_ci                      /**************HandleSuspendgeneratorV8****************/
1234514f5e3Sopenharmony_ci{
1244514f5e3Sopenharmony_ci    var fun = function *() {
1254514f5e3Sopenharmony_ci        yield 888;
1264514f5e3Sopenharmony_ci    }
1274514f5e3Sopenharmony_ci
1284514f5e3Sopenharmony_ci    let iter = fun();
1294514f5e3Sopenharmony_ci    print(iter.next().value);
1304514f5e3Sopenharmony_ci}
1314514f5e3Sopenharmony_ci
1324514f5e3Sopenharmony_ci/*
1334514f5e3Sopenharmony_ci*    ZExtInt16ToInt32(); Int16Sub(); TaggedIsHeapObject(); IsBase(); IsJSFunction(); IsConstructor(); IsJSHClass(); GetObjectType();
1344514f5e3Sopenharmony_ci*    JSCallDispatch(); ChangeInt32ToIntPtr(); Int16ToTaggedInt(); HasPendingException(); GetMethodFromJSFunction();
1354514f5e3Sopenharmony_ci*    Int32LessThanOrEqual(); Int32LSR(); Int32And(); Int32GreaterThanOrEqual(); LoadHClass(); Int32NotEqual(); ZExtInt32ToInt64();
1364514f5e3Sopenharmony_ci*    SExtInt16ToInt64(); Int64Or(); Int64NotEqual(); IsJSFunctionBase();
1374514f5e3Sopenharmony_ci*
1384514f5e3Sopenharmony_ci*/
1394514f5e3Sopenharmony_ci                      /**************HandleNewobjrangeImm8Imm8V8****************/
1404514f5e3Sopenharmony_ci{
1414514f5e3Sopenharmony_ci    class Parent {
1424514f5e3Sopenharmony_ci        constructor(name, age) {
1434514f5e3Sopenharmony_ci            this.name = name;
1444514f5e3Sopenharmony_ci            this.age = age;
1454514f5e3Sopenharmony_ci        }
1464514f5e3Sopenharmony_ci        sayName() {
1474514f5e3Sopenharmony_ci            print(this.name);
1484514f5e3Sopenharmony_ci            print(this.age);
1494514f5e3Sopenharmony_ci        }
1504514f5e3Sopenharmony_ci    };
1514514f5e3Sopenharmony_ci    const child = new Parent('echo', 26);
1524514f5e3Sopenharmony_ci    child.sayName(); //echo
1534514f5e3Sopenharmony_ci}
1544514f5e3Sopenharmony_ci
1554514f5e3Sopenharmony_ci/*
1564514f5e3Sopenharmony_ci*    Int32Sub(); DoubleSub();
1574514f5e3Sopenharmony_ci*
1584514f5e3Sopenharmony_ci*/
1594514f5e3Sopenharmony_ci                      /**************HandleDecImm8****************/
1604514f5e3Sopenharmony_ci{
1614514f5e3Sopenharmony_ci    var fun = function() {
1624514f5e3Sopenharmony_ci        let a = 10;
1634514f5e3Sopenharmony_ci        return --a;
1644514f5e3Sopenharmony_ci    }
1654514f5e3Sopenharmony_ci    var iter = fun();
1664514f5e3Sopenharmony_ci    print(iter);
1674514f5e3Sopenharmony_ci}
1684514f5e3Sopenharmony_ci
1694514f5e3Sopenharmony_ci/*
1704514f5e3Sopenharmony_ci*    FastStrictEqual(); ChangeInt32ToFloat64(); DoubleIsNAN(); BoolOr(); DoubleEqual(); BothAreString(); IsUtf16String();
1714514f5e3Sopenharmony_ci*    ZExtInt1ToInt32(); GetLengthFromString(); GetHashcodeFromString(); CallNGCRuntime(); TaggedIsBigInt();
1724514f5e3Sopenharmony_ci*    BothAreString();
1734514f5e3Sopenharmony_ci*/
1744514f5e3Sopenharmony_ci                      /**************HandleStrictnoteqImm8V8****************/
1754514f5e3Sopenharmony_ci{
1764514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
1774514f5e3Sopenharmony_ci        if (parameter1 === parameter2) {
1784514f5e3Sopenharmony_ci            return parameter2;
1794514f5e3Sopenharmony_ci        }
1804514f5e3Sopenharmony_ci        return parameter1;
1814514f5e3Sopenharmony_ci    }
1824514f5e3Sopenharmony_ci    var iter = fun(10n, 5);
1834514f5e3Sopenharmony_ci    print(iter);
1844514f5e3Sopenharmony_ci}
1854514f5e3Sopenharmony_ci
1864514f5e3Sopenharmony_ci/*
1874514f5e3Sopenharmony_ci*   DoubleToInt(); Int32Xor(); ChangeFloat64ToInt32(); Int64LSR(); Int32LessThan();
1884514f5e3Sopenharmony_ci*
1894514f5e3Sopenharmony_ci*/
1904514f5e3Sopenharmony_ci                      /**************HandleXor2Imm8V8****************/
1914514f5e3Sopenharmony_ci{
1924514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
1934514f5e3Sopenharmony_ci        if (parameter1 != parameter2) {
1944514f5e3Sopenharmony_ci            return parameter1^parameter2;
1954514f5e3Sopenharmony_ci        }
1964514f5e3Sopenharmony_ci        return parameter2;
1974514f5e3Sopenharmony_ci    }
1984514f5e3Sopenharmony_ci    var iter = fun(10, 5);
1994514f5e3Sopenharmony_ci    print(iter);
2004514f5e3Sopenharmony_ci}
2014514f5e3Sopenharmony_ci
2024514f5e3Sopenharmony_ci/*
2034514f5e3Sopenharmony_ci*   Int32ASR();
2044514f5e3Sopenharmony_ci*
2054514f5e3Sopenharmony_ci*/
2064514f5e3Sopenharmony_ci                      /**************HandleAshr2Imm8V8****************/
2074514f5e3Sopenharmony_ci{
2084514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
2094514f5e3Sopenharmony_ci        if (parameter1 != parameter2) {
2104514f5e3Sopenharmony_ci            return parameter1 >> parameter2;
2114514f5e3Sopenharmony_ci        }
2124514f5e3Sopenharmony_ci        return parameter2;
2134514f5e3Sopenharmony_ci    }
2144514f5e3Sopenharmony_ci    var iter = fun(10, 1);
2154514f5e3Sopenharmony_ci    print(iter);
2164514f5e3Sopenharmony_ci}
2174514f5e3Sopenharmony_ci
2184514f5e3Sopenharmony_ci/*
2194514f5e3Sopenharmony_ci*  TaggedIsNumeric();
2204514f5e3Sopenharmony_ci*
2214514f5e3Sopenharmony_ci*/
2224514f5e3Sopenharmony_ci                      /**************HandleTonumericImm8****************/
2234514f5e3Sopenharmony_ci{
2244514f5e3Sopenharmony_ci    var fun = function() {
2254514f5e3Sopenharmony_ci        let parameter = 5n;
2264514f5e3Sopenharmony_ci        return parameter++;
2274514f5e3Sopenharmony_ci    }
2284514f5e3Sopenharmony_ci    var iter = fun();
2294514f5e3Sopenharmony_ci    print(iter);
2304514f5e3Sopenharmony_ci}
2314514f5e3Sopenharmony_ci
2324514f5e3Sopenharmony_ci/*
2334514f5e3Sopenharmony_ci*  FastMul(); TaggedIsHole(); FastAddSubAndMul(); Int64GreaterThan(); Int64LessThan(); FastBinaryOp();
2344514f5e3Sopenharmony_ci*
2354514f5e3Sopenharmony_ci*/
2364514f5e3Sopenharmony_ci                      /**************HandleMul2Imm8V8****************/
2374514f5e3Sopenharmony_ci{
2384514f5e3Sopenharmony_ci    var fun = function() {
2394514f5e3Sopenharmony_ci        let parameter1 = 5.5;
2404514f5e3Sopenharmony_ci        let parameter2 = 2;
2414514f5e3Sopenharmony_ci        return parameter1 * parameter2;
2424514f5e3Sopenharmony_ci    }
2434514f5e3Sopenharmony_ci    var iter = fun();
2444514f5e3Sopenharmony_ci    print(iter);
2454514f5e3Sopenharmony_ci}
2464514f5e3Sopenharmony_ci
2474514f5e3Sopenharmony_ci/*
2484514f5e3Sopenharmony_ci*  GetPropertyByIndex(); IntToTaggedInt(); TaggedFalse(); Undefined(); IsSpecialIndexedObj(); IsFastTypeArray();
2494514f5e3Sopenharmony_ci*  IsSpecialContainer(); GetContainerProperty(); GetElementsArray(); IsDictionaryElement(); GetLengthOfTaggedArray();
2504514f5e3Sopenharmony_ci*  Int32UnsignedLessThan(); GetValueFromTaggedArray(); TaggedIsNotHole(); FindElementFromNumberDictionary();
2514514f5e3Sopenharmony_ci*  CallGetterHelper(); GetPrototypeFromHClass(); SExtInt32ToInt64(); Int32GreaterThan(); IsAccessor(); JSAPIContainerGet();
2524514f5e3Sopenharmony_ci*/
2534514f5e3Sopenharmony_ci                      /**************HandleLdobjbyindexImm8Imm16****************/
2544514f5e3Sopenharmony_ci{
2554514f5e3Sopenharmony_ci    var fun = function() {
2564514f5e3Sopenharmony_ci        let array = new Array(2);
2574514f5e3Sopenharmony_ci        array[0] = 12;
2584514f5e3Sopenharmony_ci        array[1] = 18;
2594514f5e3Sopenharmony_ci        return array[1];
2604514f5e3Sopenharmony_ci    }
2614514f5e3Sopenharmony_ci    var iter = fun();
2624514f5e3Sopenharmony_ci    print(iter);
2634514f5e3Sopenharmony_ci}
2644514f5e3Sopenharmony_ci
2654514f5e3Sopenharmony_ci/*
2664514f5e3Sopenharmony_ci*  FastEqual(); TaggedIsUndefinedOrNull(); TaggedIsBoolean(); TaggedIsSpecial();
2674514f5e3Sopenharmony_ci*
2684514f5e3Sopenharmony_ci*/
2694514f5e3Sopenharmony_ci                      /**************HandleEqImm8V8****************/
2704514f5e3Sopenharmony_ci{
2714514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
2724514f5e3Sopenharmony_ci        if (parameter1 == parameter2) {
2734514f5e3Sopenharmony_ci            return parameter1;
2744514f5e3Sopenharmony_ci        }
2754514f5e3Sopenharmony_ci        return parameter2;
2764514f5e3Sopenharmony_ci    }
2774514f5e3Sopenharmony_ci    var iter = fun(10, 10);
2784514f5e3Sopenharmony_ci    print(iter);
2794514f5e3Sopenharmony_ci}
2804514f5e3Sopenharmony_ci
2814514f5e3Sopenharmony_ci/*
2824514f5e3Sopenharmony_ci*  FastMod(); Int32Mod(); DoubleIsINF();
2834514f5e3Sopenharmony_ci*
2844514f5e3Sopenharmony_ci*/
2854514f5e3Sopenharmony_ci                      /**************HandleMod2Imm8V8****************/
2864514f5e3Sopenharmony_ci{
2874514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
2884514f5e3Sopenharmony_ci        let result = parameter1 % parameter2;
2894514f5e3Sopenharmony_ci        return result;
2904514f5e3Sopenharmony_ci    }
2914514f5e3Sopenharmony_ci    var iter = fun(55, 10);
2924514f5e3Sopenharmony_ci    print(iter);
2934514f5e3Sopenharmony_ci}
2944514f5e3Sopenharmony_ci
2954514f5e3Sopenharmony_ci/*
2964514f5e3Sopenharmony_ci*  FastTypeOf(); GetGlobalConstantOffset(); TaggedIsTrue(); TaggedIsFalse(); TaggedIsNull(); IsString(); IsSymbol(); IsCallable();
2974514f5e3Sopenharmony_ci*  TaggedObjectIsBigInt();  Int32Mul(); Int64Mul();
2984514f5e3Sopenharmony_ci*/
2994514f5e3Sopenharmony_ci                      /**************HandleTypeofImm8****************/
3004514f5e3Sopenharmony_ci{
3014514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
3024514f5e3Sopenharmony_ci        let result = parameter1 % parameter2;
3034514f5e3Sopenharmony_ci        return typeof(result);
3044514f5e3Sopenharmony_ci    }
3054514f5e3Sopenharmony_ci    var iter = fun(55, 10);
3064514f5e3Sopenharmony_ci    print(iter);
3074514f5e3Sopenharmony_ci}
3084514f5e3Sopenharmony_ci
3094514f5e3Sopenharmony_ci/*
3104514f5e3Sopenharmony_ci*  TaggedGetInt(); DoubleLessThan(); TaggedTrue();
3114514f5e3Sopenharmony_ci*
3124514f5e3Sopenharmony_ci*/
3134514f5e3Sopenharmony_ci                      /**************HandleLessImm8V8****************/
3144514f5e3Sopenharmony_ci{
3154514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
3164514f5e3Sopenharmony_ci        if (parameter1 < parameter2) {
3174514f5e3Sopenharmony_ci            return parameter1;
3184514f5e3Sopenharmony_ci        };
3194514f5e3Sopenharmony_ci        return parameter2;
3204514f5e3Sopenharmony_ci    }
3214514f5e3Sopenharmony_ci    var iter = fun(55, 11);
3224514f5e3Sopenharmony_ci    print(iter);
3234514f5e3Sopenharmony_ci}
3244514f5e3Sopenharmony_ci
3254514f5e3Sopenharmony_ci/*
3264514f5e3Sopenharmony_ci*  DoubleLessThanOrEqual();
3274514f5e3Sopenharmony_ci*
3284514f5e3Sopenharmony_ci*/
3294514f5e3Sopenharmony_ci                      /**************HandleLesseqImm8V8****************/
3304514f5e3Sopenharmony_ci{
3314514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
3324514f5e3Sopenharmony_ci        if (parameter1 <= parameter2) {
3334514f5e3Sopenharmony_ci            return parameter1;
3344514f5e3Sopenharmony_ci        };
3354514f5e3Sopenharmony_ci        return parameter2;
3364514f5e3Sopenharmony_ci    }
3374514f5e3Sopenharmony_ci    var iter = fun(5, 11);
3384514f5e3Sopenharmony_ci    print(iter);
3394514f5e3Sopenharmony_ci}
3404514f5e3Sopenharmony_ci
3414514f5e3Sopenharmony_ci/*
3424514f5e3Sopenharmony_ci*  DoubleGreaterThan();
3434514f5e3Sopenharmony_ci*
3444514f5e3Sopenharmony_ci*/
3454514f5e3Sopenharmony_ci                      /**************HandleGreaterImm8V8****************/
3464514f5e3Sopenharmony_ci{
3474514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
3484514f5e3Sopenharmony_ci        if (parameter1 > parameter2) {
3494514f5e3Sopenharmony_ci            return parameter1;
3504514f5e3Sopenharmony_ci        };
3514514f5e3Sopenharmony_ci        return parameter2;
3524514f5e3Sopenharmony_ci    }
3534514f5e3Sopenharmony_ci    var iter = fun(5, 11);
3544514f5e3Sopenharmony_ci    print(iter);
3554514f5e3Sopenharmony_ci}
3564514f5e3Sopenharmony_ci
3574514f5e3Sopenharmony_ci/*
3584514f5e3Sopenharmony_ci*  DoubleGreaterThanOrEqual();
3594514f5e3Sopenharmony_ci*
3604514f5e3Sopenharmony_ci*/
3614514f5e3Sopenharmony_ci                      /**************HandleGreatereqImm8V8****************/
3624514f5e3Sopenharmony_ci{
3634514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
3644514f5e3Sopenharmony_ci        if (parameter1 >= parameter2) {
3654514f5e3Sopenharmony_ci            return parameter1;
3664514f5e3Sopenharmony_ci        };
3674514f5e3Sopenharmony_ci        return parameter2;
3684514f5e3Sopenharmony_ci    }
3694514f5e3Sopenharmony_ci    var iter = fun(5, 9);
3704514f5e3Sopenharmony_ci    print(iter);
3714514f5e3Sopenharmony_ci}
3724514f5e3Sopenharmony_ci
3734514f5e3Sopenharmony_ci/*
3744514f5e3Sopenharmony_ci*  Int32UnsignedGreaterThan(); ChangeUInt32ToFloat64();
3754514f5e3Sopenharmony_ci*
3764514f5e3Sopenharmony_ci*/
3774514f5e3Sopenharmony_ci                      /**************HandleShr2Imm8V8****************/
3784514f5e3Sopenharmony_ci{
3794514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
3804514f5e3Sopenharmony_ci        if (parameter1 >> parameter2) {
3814514f5e3Sopenharmony_ci            return parameter1;
3824514f5e3Sopenharmony_ci        };
3834514f5e3Sopenharmony_ci        return parameter2;
3844514f5e3Sopenharmony_ci    }
3854514f5e3Sopenharmony_ci    var iter = fun(5, 1);
3864514f5e3Sopenharmony_ci    print(iter);
3874514f5e3Sopenharmony_ci}
3884514f5e3Sopenharmony_ci
3894514f5e3Sopenharmony_ci/*
3904514f5e3Sopenharmony_ci*  SetPropertyByIndex(); LoopBegin(); Hole(); SetValueToTaggedArray(); IsExtensible(); Exception();
3914514f5e3Sopenharmony_ci*
3924514f5e3Sopenharmony_ci*/
3934514f5e3Sopenharmony_ci                      /**************HandleStobjbyindexImm8V8Imm16****************/
3944514f5e3Sopenharmony_ci{
3954514f5e3Sopenharmony_ci    var fun = function() {
3964514f5e3Sopenharmony_ci
3974514f5e3Sopenharmony_ci        var myarray=new Array();
3984514f5e3Sopenharmony_ci        return myarray[0]=66;
3994514f5e3Sopenharmony_ci    }
4004514f5e3Sopenharmony_ci    var iter = fun();
4014514f5e3Sopenharmony_ci    print(iter);
4024514f5e3Sopenharmony_ci}
4034514f5e3Sopenharmony_ci
4044514f5e3Sopenharmony_ci/*
4054514f5e3Sopenharmony_ci*  FastDiv(); Int64Xor(); DoubleDiv();
4064514f5e3Sopenharmony_ci*
4074514f5e3Sopenharmony_ci*/
4084514f5e3Sopenharmony_ci                      /**************HandleDiv2Imm8V8****************/
4094514f5e3Sopenharmony_ci{
4104514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
4114514f5e3Sopenharmony_ci        let result = parameter1 / parameter2;
4124514f5e3Sopenharmony_ci        return result;
4134514f5e3Sopenharmony_ci    }
4144514f5e3Sopenharmony_ci    var iter = fun(55, 10);
4154514f5e3Sopenharmony_ci    print(iter);
4164514f5e3Sopenharmony_ci}
4174514f5e3Sopenharmony_ci
4184514f5e3Sopenharmony_ci/*
4194514f5e3Sopenharmony_ci*  IsCallableFromBitField(); GetCallFieldFromMethod(); DispatchBuiltins(); IsClassConstructorFromBitField(); ConstructorCheck();
4204514f5e3Sopenharmony_ci*  SaveJumpSizeIfNeeded(); TaggedObjectIsEcmaObject();
4214514f5e3Sopenharmony_ci*/
4224514f5e3Sopenharmony_ci                      /**************HandleNewobjrangeImm8Imm8V8****************/
4234514f5e3Sopenharmony_ci{
4244514f5e3Sopenharmony_ci    var fun = function() {
4254514f5e3Sopenharmony_ci        let func = new Object();
4264514f5e3Sopenharmony_ci        func.name = "don";
4274514f5e3Sopenharmony_ci        return func.name;
4284514f5e3Sopenharmony_ci    }
4294514f5e3Sopenharmony_ci    var iter = fun();
4304514f5e3Sopenharmony_ci    print(iter);
4314514f5e3Sopenharmony_ci}
4324514f5e3Sopenharmony_ci
4334514f5e3Sopenharmony_ci/*
4344514f5e3Sopenharmony_ci*  FastAdd();
4354514f5e3Sopenharmony_ci*
4364514f5e3Sopenharmony_ci*/
4374514f5e3Sopenharmony_ci                      /**************HandleAdd2Imm8V8****************/
4384514f5e3Sopenharmony_ci{
4394514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
4404514f5e3Sopenharmony_ci
4414514f5e3Sopenharmony_ci        return parameter1 + parameter2;
4424514f5e3Sopenharmony_ci    }
4434514f5e3Sopenharmony_ci    var iter = fun(10, 10);
4444514f5e3Sopenharmony_ci    print(iter);
4454514f5e3Sopenharmony_ci}
4464514f5e3Sopenharmony_ci
4474514f5e3Sopenharmony_ci/*
4484514f5e3Sopenharmony_ci*  FastSub();
4494514f5e3Sopenharmony_ci*
4504514f5e3Sopenharmony_ci*/
4514514f5e3Sopenharmony_ci                      /**************HandleSub2Imm8V8****************/
4524514f5e3Sopenharmony_ci{
4534514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
4544514f5e3Sopenharmony_ci
4554514f5e3Sopenharmony_ci        return parameter1 - parameter2;
4564514f5e3Sopenharmony_ci    }
4574514f5e3Sopenharmony_ci    var iter = fun(10, 10);
4584514f5e3Sopenharmony_ci    print(iter);
4594514f5e3Sopenharmony_ci}
4604514f5e3Sopenharmony_ci
4614514f5e3Sopenharmony_ci/*
4624514f5e3Sopenharmony_ci*  FastToBoolean();
4634514f5e3Sopenharmony_ci*
4644514f5e3Sopenharmony_ci*/
4654514f5e3Sopenharmony_ci                      /**************HandleIsfalse****************/
4664514f5e3Sopenharmony_ci{
4674514f5e3Sopenharmony_ci    var fun = function(parameter1, parameter2) {
4684514f5e3Sopenharmony_ci
4694514f5e3Sopenharmony_ci        if ((parameter1 == 0) || (parameter2 > 0)) {
4704514f5e3Sopenharmony_ci            return parameter1;
4714514f5e3Sopenharmony_ci        }
4724514f5e3Sopenharmony_ci        return parameter2;
4734514f5e3Sopenharmony_ci    }
4744514f5e3Sopenharmony_ci    var iter = fun(1, 10);
4754514f5e3Sopenharmony_ci    print(iter);
4764514f5e3Sopenharmony_ci}
4774514f5e3Sopenharmony_ci
4784514f5e3Sopenharmony_ci/*
4794514f5e3Sopenharmony_ci*  Null();
4804514f5e3Sopenharmony_ci*
4814514f5e3Sopenharmony_ci*/
4824514f5e3Sopenharmony_ci                      /**************HandleLdnull****************/
4834514f5e3Sopenharmony_ci{
4844514f5e3Sopenharmony_ci    var fun = function() {
4854514f5e3Sopenharmony_ci
4864514f5e3Sopenharmony_ci        let par = null;
4874514f5e3Sopenharmony_ci        return undefined;
4884514f5e3Sopenharmony_ci    }
4894514f5e3Sopenharmony_ci    var iter = fun();
4904514f5e3Sopenharmony_ci    print(iter);
4914514f5e3Sopenharmony_ci}
4924514f5e3Sopenharmony_ci
4934514f5e3Sopenharmony_ci/*
4944514f5e3Sopenharmony_ci*  LoopEnd(); GetPropertiesFromLexicalEnv();
4954514f5e3Sopenharmony_ci*
4964514f5e3Sopenharmony_ci*/
4974514f5e3Sopenharmony_ci                      /**************HandleLdlexvarImm4Imm4****************/
4984514f5e3Sopenharmony_ci{
4994514f5e3Sopenharmony_ci    function Module() {
5004514f5e3Sopenharmony_ci        function f(a) {
5014514f5e3Sopenharmony_ci          a = a | 0;
5024514f5e3Sopenharmony_ci          a = funTable[a & 0](a | 0) | 0;
5034514f5e3Sopenharmony_ci          return a | 0;
5044514f5e3Sopenharmony_ci        }
5054514f5e3Sopenharmony_ci        function g() {
5064514f5e3Sopenharmony_ci          return 2.3;
5074514f5e3Sopenharmony_ci        }
5084514f5e3Sopenharmony_ci        var funTable = [ g ];
5094514f5e3Sopenharmony_ci        return { f:f };
5104514f5e3Sopenharmony_ci      }
5114514f5e3Sopenharmony_ci    print(Module().f());
5124514f5e3Sopenharmony_ci}
5134514f5e3Sopenharmony_ci
5144514f5e3Sopenharmony_ci/*
5154514f5e3Sopenharmony_ci*  Int32Or();
5164514f5e3Sopenharmony_ci*
5174514f5e3Sopenharmony_ci*/
5184514f5e3Sopenharmony_ci                      /**************HandleOr2Imm8V8****************/
5194514f5e3Sopenharmony_ci{
5204514f5e3Sopenharmony_ci    function Module() {
5214514f5e3Sopenharmony_ci        function f(a) {
5224514f5e3Sopenharmony_ci          a = a | 0;
5234514f5e3Sopenharmony_ci          var b = 0;
5244514f5e3Sopenharmony_ci          b = (a + 23) | 0;
5254514f5e3Sopenharmony_ci          return b;
5264514f5e3Sopenharmony_ci        }
5274514f5e3Sopenharmony_ci        return { f:f };
5284514f5e3Sopenharmony_ci      }
5294514f5e3Sopenharmony_ci      print(Module().f());
5304514f5e3Sopenharmony_ci}
5314514f5e3Sopenharmony_ci
5324514f5e3Sopenharmony_ci/*
5334514f5e3Sopenharmony_ci*  GetPropertyByValue();
5344514f5e3Sopenharmony_ci*/
5354514f5e3Sopenharmony_ci                      /**************HandleLdobjbyvalueImm16V8****************/
5364514f5e3Sopenharmony_ci{
5374514f5e3Sopenharmony_ci    var obj = {name1:"bom", 2:"arm"};
5384514f5e3Sopenharmony_ci    var v1 = obj.name1;
5394514f5e3Sopenharmony_ci    var v3 = obj[2];
5404514f5e3Sopenharmony_ci    var key = "name1";
5414514f5e3Sopenharmony_ci    var v4 = obj.key;
5424514f5e3Sopenharmony_ci    var v5 = obj[key];
5434514f5e3Sopenharmony_ci    print(v1);
5444514f5e3Sopenharmony_ci    print(v3);
5454514f5e3Sopenharmony_ci    print(v4);
5464514f5e3Sopenharmony_ci    print(v5);
5474514f5e3Sopenharmony_ci}
5484514f5e3Sopenharmony_ci
5494514f5e3Sopenharmony_ci/*
5504514f5e3Sopenharmony_ci*  Int8ToTaggedInt(); SExtInt8ToInt64();
5514514f5e3Sopenharmony_ci*/
5524514f5e3Sopenharmony_ci                      /**************HandleThrowIfsupernotcorrectcallPrefImm16****************/
5534514f5e3Sopenharmony_ci{
5544514f5e3Sopenharmony_ci    class A {
5554514f5e3Sopenharmony_ci        constructor() {
5564514f5e3Sopenharmony_ci        }
5574514f5e3Sopenharmony_ci    }
5584514f5e3Sopenharmony_ci
5594514f5e3Sopenharmony_ci    class B extends A {
5604514f5e3Sopenharmony_ci        constructor(name, age) {
5614514f5e3Sopenharmony_ci          super();
5624514f5e3Sopenharmony_ci          this.name = name;
5634514f5e3Sopenharmony_ci          this.age = age;
5644514f5e3Sopenharmony_ci        }
5654514f5e3Sopenharmony_ci        sayName() {
5664514f5e3Sopenharmony_ci          print(this.name);
5674514f5e3Sopenharmony_ci          print(this.age);
5684514f5e3Sopenharmony_ci        }
5694514f5e3Sopenharmony_ci    }
5704514f5e3Sopenharmony_ci    new A();
5714514f5e3Sopenharmony_ci    const people = new B("echo", 19);
5724514f5e3Sopenharmony_ci    people.sayName();
5734514f5e3Sopenharmony_ci}
5744514f5e3Sopenharmony_ci
5754514f5e3Sopenharmony_ci/*
5764514f5e3Sopenharmony_ci*  SetPropertyByName(); SetTypeArrayPropertyByName(); CallSetterHelper(); ShouldCallSetter(); IsWritable(); UpdateValueInDict();
5774514f5e3Sopenharmony_ci*  AddPropertyByName(); SetHasConstructorCondition(); SetHasConstructorToHClass(); SetPropertyInlinedProps(); SetOffsetFieldInPropAttr();
5784514f5e3Sopenharmony_ci*  SetIsInlinePropsFieldInPropAttr(); JSHClassAddProperty(); IsDictionaryMode(); SetPropertiesArray(); SetDictionaryOrderFieldInPropAttr();
5794514f5e3Sopenharmony_ci*  ComputeNonInlinedFastPropsCapacity;
5804514f5e3Sopenharmony_ci*/
5814514f5e3Sopenharmony_ci                      /**************HandleStobjbynameImm8Id16V8****************/
5824514f5e3Sopenharmony_ci{
5834514f5e3Sopenharmony_ci    var obj1 = {"qq":10};
5844514f5e3Sopenharmony_ci    var obj2={"mm":2,"nn":3};
5854514f5e3Sopenharmony_ci    var obj3={"xx":1,"yy":5};
5864514f5e3Sopenharmony_ci    obj1.field1 = obj2;
5874514f5e3Sopenharmony_ci    obj1.field2 = obj3;
5884514f5e3Sopenharmony_ci    print(obj1)
5894514f5e3Sopenharmony_ci}
5904514f5e3Sopenharmony_ci
5914514f5e3Sopenharmony_ci/**************HandleGetnextpropnameV8****************/
5924514f5e3Sopenharmony_ci{
5934514f5e3Sopenharmony_ci    var fun = function() {
5944514f5e3Sopenharmony_ci        let array = [1, 8, 6, 9], arr;
5954514f5e3Sopenharmony_ci        for (arr in array) {
5964514f5e3Sopenharmony_ci            print(array[arr]);
5974514f5e3Sopenharmony_ci        };
5984514f5e3Sopenharmony_ci        return undefined;
5994514f5e3Sopenharmony_ci    }
6004514f5e3Sopenharmony_ci    var iter = fun();
6014514f5e3Sopenharmony_ci    print(iter);
6024514f5e3Sopenharmony_ci}
6034514f5e3Sopenharmony_ci
6044514f5e3Sopenharmony_ci/**************HandleDeprecatedTonumberPrefV8****************/
6054514f5e3Sopenharmony_ci{
6064514f5e3Sopenharmony_ci    function Module(stdlib, foreign, heap) {
6074514f5e3Sopenharmony_ci        var x = +stdlib.x;
6084514f5e3Sopenharmony_ci    }
6094514f5e3Sopenharmony_ci    print(Module(this, { x:0 }));
6104514f5e3Sopenharmony_ci}
6114514f5e3Sopenharmony_ci
6124514f5e3Sopenharmony_ci/**************HandleIsinImm8V8****************/
6134514f5e3Sopenharmony_ci{
6144514f5e3Sopenharmony_ci    function Person() {
6154514f5e3Sopenharmony_ci    };
6164514f5e3Sopenharmony_ci    Person.prototype.name = "hello";
6174514f5e3Sopenharmony_ci    Person.prototype.age = "12";
6184514f5e3Sopenharmony_ci    Person.prototype.sayName = function(){alert(this.name);};
6194514f5e3Sopenharmony_ci
6204514f5e3Sopenharmony_ci    function hasPrototypeProperty(object, name){
6214514f5e3Sopenharmony_ci        return !object.hasOwnProperty(name) && (name in object);
6224514f5e3Sopenharmony_ci    };
6234514f5e3Sopenharmony_ci    var p1 = new Person();
6244514f5e3Sopenharmony_ci    print(hasPrototypeProperty(p1,"name"));
6254514f5e3Sopenharmony_ci    p1.name = "nn";
6264514f5e3Sopenharmony_ci    print(hasPrototypeProperty(p1,"name"));
6274514f5e3Sopenharmony_ci}
6284514f5e3Sopenharmony_ci
6294514f5e3Sopenharmony_ci/**************HandleInstanceofImm8V8****************/
6304514f5e3Sopenharmony_ci{
6314514f5e3Sopenharmony_ci    function MyInstanceOf(left, right) {
6324514f5e3Sopenharmony_ci        let proto = Object.getPrototypeOf(left);
6334514f5e3Sopenharmony_ci        let prototype = right.prototype;
6344514f5e3Sopenharmony_ci        while (true) {
6354514f5e3Sopenharmony_ci            if (!proto) return false;
6364514f5e3Sopenharmony_ci            if (proto === prototype) {
6374514f5e3Sopenharmony_ci                return true;
6384514f5e3Sopenharmony_ci            }
6394514f5e3Sopenharmony_ci            proto = Object.getPrototypeOf(proto)
6404514f5e3Sopenharmony_ci        }
6414514f5e3Sopenharmony_ci    }
6424514f5e3Sopenharmony_ci
6434514f5e3Sopenharmony_ci    class Person {
6444514f5e3Sopenharmony_ci    }
6454514f5e3Sopenharmony_ci
6464514f5e3Sopenharmony_ci    class Student extends Person{
6474514f5e3Sopenharmony_ci    }
6484514f5e3Sopenharmony_ci
6494514f5e3Sopenharmony_ci    let p1 = new Person();
6504514f5e3Sopenharmony_ci    let stu1 = new Student();
6514514f5e3Sopenharmony_ci    print(p1 instanceof Person);
6524514f5e3Sopenharmony_ci    print(MyInstanceOf(p1, Person));
6534514f5e3Sopenharmony_ci    print(stu1 instanceof Person);
6544514f5e3Sopenharmony_ci    print(MyInstanceOf(stu1, Person));
6554514f5e3Sopenharmony_ci    print(stu1 instanceof Student);
6564514f5e3Sopenharmony_ci    print(MyInstanceOf(stu1, Student));
6574514f5e3Sopenharmony_ci    print(p1 instanceof Student);
6584514f5e3Sopenharmony_ci    print(MyInstanceOf(p1, Student));
6594514f5e3Sopenharmony_ci}
6604514f5e3Sopenharmony_ci
6614514f5e3Sopenharmony_ci/**************HandleThrowUndefinedifholePrefV8V8****************/
6624514f5e3Sopenharmony_ci{
6634514f5e3Sopenharmony_ci    var array = [11, 8, 19];
6644514f5e3Sopenharmony_ci
6654514f5e3Sopenharmony_ci    function distinct(arr) {
6664514f5e3Sopenharmony_ci        const obj = {}
6674514f5e3Sopenharmony_ci        const result = arr.reduce((pre, cur) => {
6684514f5e3Sopenharmony_ci        if (!obj[cur.stuId]) {
6694514f5e3Sopenharmony_ci            obj[cur.stuId] = true;
6704514f5e3Sopenharmony_ci            return [...pre, cur];
6714514f5e3Sopenharmony_ci        }
6724514f5e3Sopenharmony_ci        return pre;
6734514f5e3Sopenharmony_ci    }, [])
6744514f5e3Sopenharmony_ci        print(result);
6754514f5e3Sopenharmony_ci        return result;
6764514f5e3Sopenharmony_ci    }
6774514f5e3Sopenharmony_ci    distinct(array);
6784514f5e3Sopenharmony_ci}
6794514f5e3Sopenharmony_ci
6804514f5e3Sopenharmony_ci/**************HandleThrowIfnotobjectPrefV8****************/
6814514f5e3Sopenharmony_ci{
6824514f5e3Sopenharmony_ci    var array = [168, 168, 19];
6834514f5e3Sopenharmony_ci
6844514f5e3Sopenharmony_ci    function process(arr) {
6854514f5e3Sopenharmony_ci        const cache = [];
6864514f5e3Sopenharmony_ci        for (const t of arr) {
6874514f5e3Sopenharmony_ci            if (cache.find(c => c.maxDeptCode === t.maxDeptCode && c.minDeptCode === t.minDeptCode)) {
6884514f5e3Sopenharmony_ci                continue;
6894514f5e3Sopenharmony_ci            }
6904514f5e3Sopenharmony_ci            cache.push(t);
6914514f5e3Sopenharmony_ci        }
6924514f5e3Sopenharmony_ci
6934514f5e3Sopenharmony_ci        return cache;
6944514f5e3Sopenharmony_ci    }
6954514f5e3Sopenharmony_ci    print(process(array));
6964514f5e3Sopenharmony_ci}
6974514f5e3Sopenharmony_ci
6984514f5e3Sopenharmony_ci/**************HandleCreateemptyobject****************/
6994514f5e3Sopenharmony_ci{
7004514f5e3Sopenharmony_ci    let str = 'baobfabobodabfodao';
7014514f5e3Sopenharmony_ci    let num = str.split("").reduce((pre, cur) => {
7024514f5e3Sopenharmony_ci        if (cur in pre) {
7034514f5e3Sopenharmony_ci            pre[cur]++;
7044514f5e3Sopenharmony_ci        } else {
7054514f5e3Sopenharmony_ci            pre[cur] = 1;
7064514f5e3Sopenharmony_ci        }
7074514f5e3Sopenharmony_ci        return pre;
7084514f5e3Sopenharmony_ci    }, {})
7094514f5e3Sopenharmony_ci    print('frequency');
7104514f5e3Sopenharmony_ci}
7114514f5e3Sopenharmony_ci
7124514f5e3Sopenharmony_ci/**************HandleCreateemptyarrayImm8****************/
7134514f5e3Sopenharmony_ci{
7144514f5e3Sopenharmony_ci    let array1 = [
7154514f5e3Sopenharmony_ci        { id: "50", active: "a", value: 12 },
7164514f5e3Sopenharmony_ci        { id: "51", active: "a", value: 15 }
7174514f5e3Sopenharmony_ci    ];
7184514f5e3Sopenharmony_ci    let array2 = [
7194514f5e3Sopenharmony_ci        { id: "50", active: "a", value: 10 },
7204514f5e3Sopenharmony_ci        { id: "51", active: "a", value: 11 },
7214514f5e3Sopenharmony_ci        { id: "52", active: "a", value: 13 }
7224514f5e3Sopenharmony_ci    ];
7234514f5e3Sopenharmony_ci
7244514f5e3Sopenharmony_ci    let arr = [];
7254514f5e3Sopenharmony_ci    array1.map(id =>
7264514f5e3Sopenharmony_ci        arr.push({
7274514f5e3Sopenharmony_ci            id: id.id,
7284514f5e3Sopenharmony_ci            newValue: array2.find(o => o.id === id.id).value + 2
7294514f5e3Sopenharmony_ci        })
7304514f5e3Sopenharmony_ci    );
7314514f5e3Sopenharmony_ci    print("2", JSON.stringify(arr));
7324514f5e3Sopenharmony_ci}
7334514f5e3Sopenharmony_ci
7344514f5e3Sopenharmony_ci/**************HandleGetnextpropnameV8****************/
7354514f5e3Sopenharmony_ci{
7364514f5e3Sopenharmony_ci    let obj1 = {
7374514f5e3Sopenharmony_ci        name: "bob",
7384514f5e3Sopenharmony_ci        age: 18,
7394514f5e3Sopenharmony_ci        sex: "man",
7404514f5e3Sopenharmony_ci      }
7414514f5e3Sopenharmony_ci    let obj2 = {}
7424514f5e3Sopenharmony_ci
7434514f5e3Sopenharmony_ci    for (let key in obj1) {
7444514f5e3Sopenharmony_ci      obj2[key] = obj1[key];
7454514f5e3Sopenharmony_ci    }
7464514f5e3Sopenharmony_ci    obj1.name = "Tom"
7474514f5e3Sopenharmony_ci    print(obj1.name);
7484514f5e3Sopenharmony_ci}
7494514f5e3Sopenharmony_ci
7504514f5e3Sopenharmony_ci/**************HandleGetunmappedargs****************/
7514514f5e3Sopenharmony_ci{
7524514f5e3Sopenharmony_ci    function abs() {
7534514f5e3Sopenharmony_ci        if (arguments.length === 0) {
7544514f5e3Sopenharmony_ci            return 0;
7554514f5e3Sopenharmony_ci        }
7564514f5e3Sopenharmony_ci        var x = arguments[0];
7574514f5e3Sopenharmony_ci        return x >= 0 ? x : -x;
7584514f5e3Sopenharmony_ci    }
7594514f5e3Sopenharmony_ci
7604514f5e3Sopenharmony_ci    print(abs());
7614514f5e3Sopenharmony_ci    print(abs(10));
7624514f5e3Sopenharmony_ci    print(abs(-9));
7634514f5e3Sopenharmony_ci}
7644514f5e3Sopenharmony_ci
7654514f5e3Sopenharmony_ci/**************HandleCopyrestargsImm8****************/
7664514f5e3Sopenharmony_ci{
7674514f5e3Sopenharmony_ci    function add(...theArgs) {
7684514f5e3Sopenharmony_ci        theArgs.push(31);
7694514f5e3Sopenharmony_ci        var result = 0;
7704514f5e3Sopenharmony_ci        for (let i = 0; i < theArgs.length; i++) {
7714514f5e3Sopenharmony_ci            result = result + theArgs[i];
7724514f5e3Sopenharmony_ci        }
7734514f5e3Sopenharmony_ci        var lastItem = theArgs.pop();
7744514f5e3Sopenharmony_ci        print(lastItem);
7754514f5e3Sopenharmony_ci        return result;
7764514f5e3Sopenharmony_ci    }
7774514f5e3Sopenharmony_ci
7784514f5e3Sopenharmony_ci    add();
7794514f5e3Sopenharmony_ci}
7804514f5e3Sopenharmony_ci
7814514f5e3Sopenharmony_ci/**************HandleStarrayspreadV8V8****************/
7824514f5e3Sopenharmony_ci{
7834514f5e3Sopenharmony_ci    class Parent {
7844514f5e3Sopenharmony_ci        static myMethod(msg) {
7854514f5e3Sopenharmony_ci            print('static', msg);
7864514f5e3Sopenharmony_ci        }
7874514f5e3Sopenharmony_ci        myMethod(msg) {
7884514f5e3Sopenharmony_ci            print('instance', msg);
7894514f5e3Sopenharmony_ci        }
7904514f5e3Sopenharmony_ci    }
7914514f5e3Sopenharmony_ci
7924514f5e3Sopenharmony_ci    class Child extends Parent {
7934514f5e3Sopenharmony_ci        static myMethod(msg) {
7944514f5e3Sopenharmony_ci            super.myMethod(msg);
7954514f5e3Sopenharmony_ci        }
7964514f5e3Sopenharmony_ci        myMethod(msg) {
7974514f5e3Sopenharmony_ci            super.myMethod(msg);
7984514f5e3Sopenharmony_ci        }
7994514f5e3Sopenharmony_ci    }
8004514f5e3Sopenharmony_ci
8014514f5e3Sopenharmony_ci    Child.myMethod(1);
8024514f5e3Sopenharmony_ci    var child = new Child();
8034514f5e3Sopenharmony_ci    child.myMethod(2);
8044514f5e3Sopenharmony_ci}
8054514f5e3Sopenharmony_ci
8064514f5e3Sopenharmony_ci/**************HandleSupercallspreadImm8V8****************/
8074514f5e3Sopenharmony_ci{
8084514f5e3Sopenharmony_ci    class Demo {
8094514f5e3Sopenharmony_ci        constructor(x) {
8104514f5e3Sopenharmony_ci          this.x = x;
8114514f5e3Sopenharmony_ci        }
8124514f5e3Sopenharmony_ci   }
8134514f5e3Sopenharmony_ci
8144514f5e3Sopenharmony_ci   class Demo2 extends Demo{}
8154514f5e3Sopenharmony_ci
8164514f5e3Sopenharmony_ci   let d = new Demo2('hello');
8174514f5e3Sopenharmony_ci   print(d.x);
8184514f5e3Sopenharmony_ci}
8194514f5e3Sopenharmony_ci
8204514f5e3Sopenharmony_ci/**************HandleDeprecatedLdsuperbynamePrefId32V8****************/
8214514f5e3Sopenharmony_ci{
8224514f5e3Sopenharmony_ci    class Demo {
8234514f5e3Sopenharmony_ci        constructor(x,y) {
8244514f5e3Sopenharmony_ci            this.x = x;
8254514f5e3Sopenharmony_ci            this.y = y;
8264514f5e3Sopenharmony_ci        }
8274514f5e3Sopenharmony_ci        customSplit(){
8284514f5e3Sopenharmony_ci            return [...this.y]
8294514f5e3Sopenharmony_ci        }
8304514f5e3Sopenharmony_ci    }
8314514f5e3Sopenharmony_ci
8324514f5e3Sopenharmony_ci    class Demo2 extends Demo {
8334514f5e3Sopenharmony_ci        constructor(x, y) {
8344514f5e3Sopenharmony_ci            super(x, y);
8354514f5e3Sopenharmony_ci        }
8364514f5e3Sopenharmony_ci        customSplit(){
8374514f5e3Sopenharmony_ci            return [...this.x]
8384514f5e3Sopenharmony_ci        }
8394514f5e3Sopenharmony_ci        task1(){
8404514f5e3Sopenharmony_ci            return super.customSplit();
8414514f5e3Sopenharmony_ci        }
8424514f5e3Sopenharmony_ci        task2(){
8434514f5e3Sopenharmony_ci            return this.customSplit();
8444514f5e3Sopenharmony_ci        }
8454514f5e3Sopenharmony_ci    }
8464514f5e3Sopenharmony_ci
8474514f5e3Sopenharmony_ci    let d = new Demo2('hello','world');
8484514f5e3Sopenharmony_ci    print(d.task1());
8494514f5e3Sopenharmony_ci    print(d.task2());
8504514f5e3Sopenharmony_ci}
8514514f5e3Sopenharmony_ci
8524514f5e3Sopenharmony_ci/**************HandleCreateregexpwithliteralImm8Id16Imm8****************/
8534514f5e3Sopenharmony_ci{
8544514f5e3Sopenharmony_ci    function filterParams(obj) {
8554514f5e3Sopenharmony_ci        let _newPar = {};
8564514f5e3Sopenharmony_ci        for (let key in obj) {
8574514f5e3Sopenharmony_ci            if ((obj[key] === 0 || obj[key]) && obj[key].toString().replace(/(^\s*)|(\s*$)/g, '') !== '') {
8584514f5e3Sopenharmony_ci                _newPar[key] = obj[key];
8594514f5e3Sopenharmony_ci            }
8604514f5e3Sopenharmony_ci        }
8614514f5e3Sopenharmony_ci        return _newPar;
8624514f5e3Sopenharmony_ci    }
8634514f5e3Sopenharmony_ci	var func = filterParams({a:"", b:null, c:"010", d:123});
8644514f5e3Sopenharmony_ci	print(func);
8654514f5e3Sopenharmony_ci}
8664514f5e3Sopenharmony_ci
8674514f5e3Sopenharmony_ci/**************HandleTryldglobalbynameImm8Id16****************/
8684514f5e3Sopenharmony_ci{
8694514f5e3Sopenharmony_ci    function randomNumber(n1, n2) {
8704514f5e3Sopenharmony_ci        if (arguments.length === 2) {
8714514f5e3Sopenharmony_ci            return Math.round(n1 + Math.random() * (n2 - n1));
8724514f5e3Sopenharmony_ci        } else if (arguments.length === 1) {
8734514f5e3Sopenharmony_ci            return Math.round(Math.random() * n1)
8744514f5e3Sopenharmony_ci        } else {
8754514f5e3Sopenharmony_ci            return Math.round(Math.random() * 255)
8764514f5e3Sopenharmony_ci        }
8774514f5e3Sopenharmony_ci    }
8784514f5e3Sopenharmony_ci
8794514f5e3Sopenharmony_ci    var func = randomNumber(5, 10);
8804514f5e3Sopenharmony_ci	print("succ");
8814514f5e3Sopenharmony_ci}
8824514f5e3Sopenharmony_ci
8834514f5e3Sopenharmony_ci/**************HandleLdaStrId16****************/
8844514f5e3Sopenharmony_ci{
8854514f5e3Sopenharmony_ci    let promise = new Promise((resolve, reject) => {
8864514f5e3Sopenharmony_ci        print('Promise');
8874514f5e3Sopenharmony_ci        resolve();
8884514f5e3Sopenharmony_ci    });
8894514f5e3Sopenharmony_ci    promise.then(function() {
8904514f5e3Sopenharmony_ci    });
8914514f5e3Sopenharmony_ci}
8924514f5e3Sopenharmony_ci
8934514f5e3Sopenharmony_ci/**************HandleDeprecatedCreatearraywithbufferPrefImm16****************/
8944514f5e3Sopenharmony_ci{
8954514f5e3Sopenharmony_ci    function Change() {
8964514f5e3Sopenharmony_ci        var newArr = [];
8974514f5e3Sopenharmony_ci        for (var i = arguments.length - 1; i >= 0; i--) {
8984514f5e3Sopenharmony_ci            newArr[newArr.length] = arguments[i]
8994514f5e3Sopenharmony_ci        }
9004514f5e3Sopenharmony_ci        return newArr;
9014514f5e3Sopenharmony_ci    }
9024514f5e3Sopenharmony_ci
9034514f5e3Sopenharmony_ci    Change(1, 2345, 6, 8, 89, 5, 9);
9044514f5e3Sopenharmony_ci    var arr = [1, 2345, 6, 8, 89, 5, 9];
9054514f5e3Sopenharmony_ci    print(arr.reverse());
9064514f5e3Sopenharmony_ci}
9074514f5e3Sopenharmony_ci
9084514f5e3Sopenharmony_ci/**************HandleDeprecatedNegPrefV8****************/
9094514f5e3Sopenharmony_ci{
9104514f5e3Sopenharmony_ci    var arr = ['red', 'blue', 'red', 'green', 'pink', 'red', 'red'];
9114514f5e3Sopenharmony_ci    var index = arr.indexOf('red');
9124514f5e3Sopenharmony_ci
9134514f5e3Sopenharmony_ci    var number = 0;
9144514f5e3Sopenharmony_ci    while (index != -1) {
9154514f5e3Sopenharmony_ci        print(index);
9164514f5e3Sopenharmony_ci        var index = arr.indexOf('red', index + 1);
9174514f5e3Sopenharmony_ci        number++;
9184514f5e3Sopenharmony_ci    }
9194514f5e3Sopenharmony_ci    print(number);
9204514f5e3Sopenharmony_ci}
9214514f5e3Sopenharmony_ci
9224514f5e3Sopenharmony_ci/**************HandleJeqzImm8****************/
9234514f5e3Sopenharmony_ci{
9244514f5e3Sopenharmony_ci    var str5 = 'abaaudffgggghhhhjkkkgfddduuuuuu23444343434';
9254514f5e3Sopenharmony_ci        do {
9264514f5e3Sopenharmony_ci            var index = str5.indexOf('s');
9274514f5e3Sopenharmony_ci            str5 = str5.replace('s', 'u');
9284514f5e3Sopenharmony_ci        } while (index !== -1)
9294514f5e3Sopenharmony_ci
9304514f5e3Sopenharmony_ci    print(str5);
9314514f5e3Sopenharmony_ci}
9324514f5e3Sopenharmony_ci
9334514f5e3Sopenharmony_ci/**************HandleStobjbyvalueImm8V8V8****************/
9344514f5e3Sopenharmony_ci{
9354514f5e3Sopenharmony_ci    var str = "abcoefoxyozzopp";
9364514f5e3Sopenharmony_ci    var o = {};
9374514f5e3Sopenharmony_ci    for (var i = 0; i < str.length; i++) {
9384514f5e3Sopenharmony_ci        var chars = str.charAt(i);
9394514f5e3Sopenharmony_ci        if (o[chars]) {
9404514f5e3Sopenharmony_ci            o[chars]++;
9414514f5e3Sopenharmony_ci        } else {
9424514f5e3Sopenharmony_ci            o[chars] = 1;
9434514f5e3Sopenharmony_ci        }
9444514f5e3Sopenharmony_ci    }
9454514f5e3Sopenharmony_ci    print(o);
9464514f5e3Sopenharmony_ci}
9474514f5e3Sopenharmony_ci
9484514f5e3Sopenharmony_ci/**************HandleNoteqImm8V8****************/
9494514f5e3Sopenharmony_ci{
9504514f5e3Sopenharmony_ci    var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
9514514f5e3Sopenharmony_ci    var newArr = [];
9524514f5e3Sopenharmony_ci    for (var i = 0; i < arr.length; i++) {
9534514f5e3Sopenharmony_ci        if (arr[i] != 0) {
9544514f5e3Sopenharmony_ci            newArr[newArr.length] = arr[i];
9554514f5e3Sopenharmony_ci        }
9564514f5e3Sopenharmony_ci    }
9574514f5e3Sopenharmony_ci    print(newArr);
9584514f5e3Sopenharmony_ci}
9594514f5e3Sopenharmony_ci
9604514f5e3Sopenharmony_ci/**************HandleStricteqImm8V8****************/
9614514f5e3Sopenharmony_ci{
9624514f5e3Sopenharmony_ci    function unique(arr) {
9634514f5e3Sopenharmony_ci        var newArr = []
9644514f5e3Sopenharmony_ci        for (var i = 0; i < arr.length; i++) {
9654514f5e3Sopenharmony_ci          if (newArr.indexOf(arr[i]) === -1) {
9664514f5e3Sopenharmony_ci            newArr.push(arr[i])
9674514f5e3Sopenharmony_ci          }
9684514f5e3Sopenharmony_ci        }
9694514f5e3Sopenharmony_ci        return newArr;
9704514f5e3Sopenharmony_ci    }
9714514f5e3Sopenharmony_ci    var demo = unique(['blue', 'green', 'blue']);
9724514f5e3Sopenharmony_ci    print(demo);
9734514f5e3Sopenharmony_ci}
9744514f5e3Sopenharmony_ci
9754514f5e3Sopenharmony_ci/**************HandleDeprecatedCallthisrangePrefImm16V8****************/
9764514f5e3Sopenharmony_ci{
9774514f5e3Sopenharmony_ci
9784514f5e3Sopenharmony_ci    function countDown(time) {
9794514f5e3Sopenharmony_ci        var nowTime = +new Date();
9804514f5e3Sopenharmony_ci        var inputTime = +new Date(time);
9814514f5e3Sopenharmony_ci        var times = (inputTime - nowTime) / 1000;
9824514f5e3Sopenharmony_ci        var d = parseInt(times / 60 / 60 / 24);
9834514f5e3Sopenharmony_ci        d = d < 10 ? '0' + d : d;
9844514f5e3Sopenharmony_ci        var h = parseInt((times / 60 / 60) % 24);
9854514f5e3Sopenharmony_ci        h = h < 10 ? '0' + h : h;
9864514f5e3Sopenharmony_ci        var m = parseInt((times / 60) % 60);
9874514f5e3Sopenharmony_ci        m = m < 10 ? '0' + m : m;
9884514f5e3Sopenharmony_ci        var s = parseInt(times % 60);
9894514f5e3Sopenharmony_ci        s = s < 10 ? '0' + s : s;
9904514f5e3Sopenharmony_ci        return d + '天' + h + '时' + m + '分' + s + '秒';
9914514f5e3Sopenharmony_ci    }
9924514f5e3Sopenharmony_ci    (countDown('2022-10-10 18:00:00'));
9934514f5e3Sopenharmony_ci    var date = new Date();
9944514f5e3Sopenharmony_ci    var date1 = +new Date();
9954514f5e3Sopenharmony_ci    print("blue");
9964514f5e3Sopenharmony_ci}
9974514f5e3Sopenharmony_ci
9984514f5e3Sopenharmony_ci/**************HandleStownbyindexImm8V8Imm16****************/
9994514f5e3Sopenharmony_ci{
10004514f5e3Sopenharmony_ci    function doMath(data) {
10014514f5e3Sopenharmony_ci        let min = data[0];
10024514f5e3Sopenharmony_ci        let max = data[0];
10034514f5e3Sopenharmony_ci        let sum = 0;
10044514f5e3Sopenharmony_ci        data.sort(function(a, b) {
10054514f5e3Sopenharmony_ci                return a - b;
10064514f5e3Sopenharmony_ci        })
10074514f5e3Sopenharmony_ci        min = data[0];
10084514f5e3Sopenharmony_ci        max = data[data.length - 1];
10094514f5e3Sopenharmony_ci        for (let i = 0; i < data.length; i++) {
10104514f5e3Sopenharmony_ci            sum += data[i];
10114514f5e3Sopenharmony_ci        }
10124514f5e3Sopenharmony_ci        return [min, max, sum];
10134514f5e3Sopenharmony_ci    }
10144514f5e3Sopenharmony_ci    print(doMath([23, 54, 34, 2, 7, 8, 1, 77, 43]));
10154514f5e3Sopenharmony_ci}
10164514f5e3Sopenharmony_ci
10174514f5e3Sopenharmony_ci/**************HandleWideNewobjrangePrefImm16V8****************/
10184514f5e3Sopenharmony_ci{
10194514f5e3Sopenharmony_ci    function Person(name, age) {
10204514f5e3Sopenharmony_ci        this.name = name;
10214514f5e3Sopenharmony_ci        this.age = age;
10224514f5e3Sopenharmony_ci        this.say = function () {
10234514f5e3Sopenharmony_ci            return "name : " + this.name + " age: " + this.age;
10244514f5e3Sopenharmony_ci        };
10254514f5e3Sopenharmony_ci    }
10264514f5e3Sopenharmony_ci
10274514f5e3Sopenharmony_ci    var o = new Object();
10284514f5e3Sopenharmony_ci    Person.call(o, "zhangsan", 20);
10294514f5e3Sopenharmony_ci    print(o.say());
10304514f5e3Sopenharmony_ci}
10314514f5e3Sopenharmony_ci
10324514f5e3Sopenharmony_ci/**************HandleWideLdobjbyindexPrefImm32****************/
10334514f5e3Sopenharmony_ci{
10344514f5e3Sopenharmony_ci    function maxValue() {
10354514f5e3Sopenharmony_ci        var max = arguments[0];
10364514f5e3Sopenharmony_ci        for (var i = 0; i < arguments.length; i++) {
10374514f5e3Sopenharmony_ci           if (max < arguments[i]) {
10384514f5e3Sopenharmony_ci            max = arguments[i];
10394514f5e3Sopenharmony_ci           }
10404514f5e3Sopenharmony_ci        }
10414514f5e3Sopenharmony_ci        return max;
10424514f5e3Sopenharmony_ci    }
10434514f5e3Sopenharmony_ci    print(maxValue(2, 4, 5, 9));
10444514f5e3Sopenharmony_ci    print(maxValue(12, 4, 9));
10454514f5e3Sopenharmony_ci}
10464514f5e3Sopenharmony_ci
10474514f5e3Sopenharmony_ci/**************HandleDeprecatedLdobjbynamePrefId32V8****************/
10484514f5e3Sopenharmony_ci{
10494514f5e3Sopenharmony_ci    var obj = {};
10504514f5e3Sopenharmony_ci    Object.defineProperty(obj, "x", {
10514514f5e3Sopenharmony_ci    value : 1,
10524514f5e3Sopenharmony_ci    writable : true,
10534514f5e3Sopenharmony_ci    enumerable : true,
10544514f5e3Sopenharmony_ci    configurable : true
10554514f5e3Sopenharmony_ci    });
10564514f5e3Sopenharmony_ci    print(obj.x);
10574514f5e3Sopenharmony_ci}
10584514f5e3Sopenharmony_ci
10594514f5e3Sopenharmony_ci/*
10604514f5e3Sopenharmony_ci*    PtrAdd(); IntPtrSize();
10614514f5e3Sopenharmony_ci*    DispatchWithId();
10624514f5e3Sopenharmony_ci*/
10634514f5e3Sopenharmony_ci                      /**************HandleThrow****************/
10644514f5e3Sopenharmony_ci{
10654514f5e3Sopenharmony_ci    var fun = function() {
10664514f5e3Sopenharmony_ci        print("boom");
10674514f5e3Sopenharmony_ci        throw "boom";
10684514f5e3Sopenharmony_ci    }
10694514f5e3Sopenharmony_ci    try {
10704514f5e3Sopenharmony_ci        var a = fun();
10714514f5e3Sopenharmony_ci    } catch (e) {}
10724514f5e3Sopenharmony_ci}