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}