# source binary: out/rk3568/clang_x64/obj/arkcompiler/runtime_core/abc2program/tests/HelloWorld.abc .language ECMAScript # ==================== # LITERALS _ESModuleRecord_1437 { 21 [ i32:4, string:"./a", string:"./b", string:"./d", string:"./e", i32:1, string:"a", string:"a", method_affiliate:0, i32:1, string:"b", method_affiliate:1, i32:1, string:"c", string:"c", i32:1, string:"e", string:"e", method_affiliate:3, i32:1, method_affiliate:2, ]} _ESScopeNamesRecord_1413 { 8 [ tag_value:5, string:"HelloWorld", tag_value:5, string:"Lit", tag_value:5, string:"NestedLiteralArray", tag_value:5, string:"hoo", ]} _GLOBAL_1517 { 6 [ tag_value:5, string:"method", tag_value:22, async_generator_method:.#*@3*#method, tag_value:9, method_affiliate:0, ]} _GLOBAL_1534 { 2 [ tag_value:2, i32:0, ]} _GLOBAL_1543 { 8 [ tag_value:5, string:"lit", tag_value:6, method:.#~@1>#lit, tag_value:9, method_affiliate:0, tag_value:2, i32:1, ]} _GLOBAL_1565 { 6 [ tag_value:5, string:"num", tag_value:2, i32:1, tag_value:2, i32:1, ]} _GLOBAL_1584 { 10 [ tag_value:5, string:"NestedLiteralArray", tag_value:6, method:.#~@2>#NestedLiteralArray, tag_value:9, method_affiliate:0, tag_value:2, i32:1, tag_value:24, literal_array:_GLOBAL_1565, ]} # ==================== # RECORDS .record _ESModuleRecord { u32 arkcompiler/runtime_core/abc2program/tests/ts/HelloWorld.ts _ESModuleRecord_1466 } .record.source_file .record _ESScopeNamesRecord { u32 arkcompiler/runtime_core/abc2program/tests/ts/HelloWorld.ts _ESScopeNamesRecord_1442 } .record.source_file .record _ESSlotNumberAnnotation { } .record.source_file .record _GLOBAL { } .record.source_file # ==================== # METHODS .function_kind FunctionKind::NC_FUNCTION _ESSlotNumberAnnotation SlotNumber 1 .function any .#*#add(any a0, any a1, any a2, any a3, any a4) { lda a4 # line: 75 # column: 0 add2 0x0, a3 # line: 75 # column: 0 return # line: 75 # column: 0 } .function_kind FunctionKind::ASYNC_NC_FUNCTION _ESSlotNumberAnnotation SlotNumber 0 .function any .#*#asyncArrowFunc(any a0, any a1, any a2) { nop # line: 18446744073709551615 # column: 0 asyncfunctionenter # line: 18446744073709551615 # column: 0 sta v0 # line: 18446744073709551615 # column: 0 label@3: ldundefined # line: 18446744073709551615 # column: 0 asyncfunctionresolve v0 # line: 18446744073709551615 # column: 0 return # line: 86 # column: 0 label@6: sta v1 # line: 86 # column: 0 lda v1 # line: 86 # column: 0 asyncfunctionreject v0 # line: 86 # column: 0 return # line: 86 # column: 0 .catchall : try_begin_label : label@3 try_end_label : label@6 catch_begin_label : label@6 catch_end_label : label@6 } .function_kind FunctionKind::ASYNC_GENERATOR_FUNCTION _ESSlotNumberAnnotation SlotNumber 4 .function any .#*#asyncGenerateFunc(any a0, any a1, any a2) { nop # line: 18446744073709551615 # column: 0 createasyncgeneratorobj a0 # line: 18446744073709551615 # column: 0 sta v0 # line: 18446744073709551615 # column: 0 label@3: ldai 0x1 # line: 18446744073709551615 # column: 0 sta v2 # line: 18446744073709551615 # column: 0 ldundefined # line: 18446744073709551615 # column: 0 suspendgenerator v0 # line: 18446744073709551615 # column: 0 lda v0 # line: 18446744073709551615 # column: 0 resumegenerator # line: 18446744073709551615 # column: 0 lda v0 # line: 18446744073709551615 # column: 0 getresumemode # line: 18446744073709551615 # column: 0 lda.str hello # line: 83 # column: 0 asyncfunctionawaituncaught v0 # line: 83 # column: 0 suspendgenerator v0 # line: 83 # column: 0 lda v0 # line: 83 # column: 0 resumegenerator # line: 83 # column: 0 sta v3 # line: 83 # column: 0 lda v0 # line: 83 # column: 0 getresumemode # line: 83 # column: 0 sta v4 # line: 83 # column: 0 lda v2 # line: 83 # column: 0 eq 0x0, v4 # line: 83 # column: 0 jeqz label@25 # line: 83 # column: 0 lda v3 # line: 83 # column: 0 throw # line: 83 # column: 0 label@25: lda v0 # line: 83 # column: 0 setgeneratorstate 0x2 # line: 83 # column: 0 ldfalse # line: 83 # column: 0 sta v4 # line: 83 # column: 0 asyncgeneratorresolve v0, v3, v4 # line: 83 # column: 0 lda v0 # line: 83 # column: 0 resumegenerator # line: 83 # column: 0 sta v3 # line: 83 # column: 0 lda v0 # line: 83 # column: 0 getresumemode # line: 83 # column: 0 sta v4 # line: 83 # column: 0 ldai 0x0 # line: 83 # column: 0 eq 0x1, v4 # line: 83 # column: 0 jeqz label@59 # line: 83 # column: 0 lda v3 # line: 83 # column: 0 asyncfunctionawaituncaught v0 # line: 83 # column: 0 suspendgenerator v0 # line: 83 # column: 0 lda v0 # line: 83 # column: 0 resumegenerator # line: 83 # column: 0 sta v3 # line: 83 # column: 0 lda v0 # line: 83 # column: 0 getresumemode # line: 83 # column: 0 sta v4 # line: 83 # column: 0 lda v2 # line: 83 # column: 0 eq 0x2, v4 # line: 83 # column: 0 jeqz label@53 # line: 83 # column: 0 lda v3 # line: 83 # column: 0 throw # line: 83 # column: 0 label@53: ldtrue # line: 83 # column: 0 sta v2 # line: 83 # column: 0 lda v0 # line: 83 # column: 0 setgeneratorstate 0x4 # line: 83 # column: 0 asyncgeneratorresolve v0, v3, v2 # line: 83 # column: 0 return # line: 84 # column: 0 label@59: lda v2 # line: 83 # column: 0 eq 0x3, v4 # line: 83 # column: 0 jeqz label@64 # line: 83 # column: 0 lda v3 # line: 83 # column: 0 throw # line: 83 # column: 0 label@64: ldundefined # line: 18446744073709551615 # column: 0 sta v2 # line: 18446744073709551615 # column: 0 ldtrue # line: 18446744073709551615 # column: 0 sta v3 # line: 18446744073709551615 # column: 0 lda v0 # line: 18446744073709551615 # column: 0 setgeneratorstate 0x4 # line: 18446744073709551615 # column: 0 asyncgeneratorresolve v0, v2, v3 # line: 18446744073709551615 # column: 0 return # line: 84 # column: 0 label@72: sta v1 # line: 82 # column: 0 lda v0 # line: 82 # column: 0 setgeneratorstate 0x4 # line: 82 # column: 0 lda v1 # line: 82 # column: 0 asyncgeneratorreject v0 # line: 82 # column: 0 return # line: 84 # column: 0 .catchall : try_begin_label : label@3 try_end_label : label@72 catch_begin_label : label@72 catch_end_label : label@72 } .function_kind FunctionKind::FUNCTION _ESSlotNumberAnnotation SlotNumber 24 .function any .#*#foo(any a0, any a1, any a2) { nop # line: 40 # column: 0 ldundefined # line: 40 # column: 0 sta v0 # line: 40 # column: 0 label@3: ldai 0xb # line: 40 # column: 0 mov v3, v0 # line: 40 # column: 0 mov v1, v0 # line: 40 # column: 0 trystglobalbyname 0x0, varA # line: 41 # column: 0 ldai 0x16 # line: 41 # column: 0 trystglobalbyname 0x1, x # line: 42 # column: 0 label@9: ldai 0x1 # line: 42 # column: 0 trystglobalbyname 0x2, varA # line: 44 # column: 0 label@11: jmp label@20 # line: 44 # column: 0 label@12: lda.str inner catch # line: 46 # column: 0 trystglobalbyname 0x3, msg # line: 46 # column: 0 tryldglobalbyname 0x4, print # line: 47 # column: 0 sta v4 # line: 47 # column: 0 tryldglobalbyname 0x5, msg # line: 47 # column: 0 sta v5 # line: 47 # column: 0 lda v4 # line: 47 # column: 0 callarg1 0x6, v5 # line: 47 # column: 0 label@20: mov v3, v0 # line: 47 # column: 0 mov v1, v0 # line: 47 # column: 0 tryldglobalbyname 0x8, varA # line: 49 # column: 0 sta v0 # line: 49 # column: 0 lda.str # line: 49 # column: 0 stricteq 0x9, v0 # line: 49 # column: 0 jeqz label@29 # line: 49 # column: 0 lda.str null # line: 50 # column: 0 throw # line: 50 # column: 0 label@29: tryldglobalbyname 0xa, x # line: 52 # column: 0 sta v0 # line: 52 # column: 0 ldai 0x64 # line: 52 # column: 0 greater 0xb, v0 # line: 52 # column: 0 jeqz label@36 # line: 52 # column: 0 lda.str max # line: 53 # column: 0 throw # line: 53 # column: 0 label@36: lda.str min # line: 55 # column: 0 throw # line: 55 # column: 0 label@38: mov v1, v3 # line: 55 # column: 0 lda.str outter catch # line: 59 # column: 0 trystglobalbyname 0xc, masg # line: 59 # column: 0 tryldglobalbyname 0xd, print # line: 60 # column: 0 sta v0 # line: 60 # column: 0 tryldglobalbyname 0xe, msg # line: 60 # column: 0 sta v4 # line: 60 # column: 0 lda v0 # line: 60 # column: 0 callarg1 0xf, v4 # line: 60 # column: 0 label@47: ldhole # line: 40 # column: 0 sta v0 # line: 40 # column: 0 mov v1, v3 # line: 40 # column: 0 mov v2, v0 # line: 40 # column: 0 jmp label@53 # line: 40 # column: 0 label@52: sta v2 # line: 40 # column: 0 label@53: ldundefined # line: 40 # column: 0 eq 0x11, v1 # line: 40 # column: 0 jeqz label@64 # line: 40 # column: 0 lda.str error # line: 63 # column: 0 trystglobalbyname 0x12, msg # line: 63 # column: 0 tryldglobalbyname 0x13, print # line: 64 # column: 0 sta v0 # line: 64 # column: 0 tryldglobalbyname 0x14, msg # line: 64 # column: 0 sta v1 # line: 64 # column: 0 lda v0 # line: 64 # column: 0 callarg1 0x15, v1 # line: 64 # column: 0 label@64: ldhole # line: 40 # column: 0 sta v0 # line: 40 # column: 0 lda v2 # line: 40 # column: 0 noteq 0x17, v0 # line: 40 # column: 0 jeqz label@71 # line: 40 # column: 0 lda v2 # line: 40 # column: 0 throw # line: 40 # column: 0 label@71: ldundefined # line: 18446744073709551615 # column: 0 returnundefined # line: 66 # column: 0 .catchall : try_begin_label : label@9 try_end_label : label@11 catch_begin_label : label@12 catch_end_label : label@12 .catchall : try_begin_label : label@3 try_end_label : label@38 catch_begin_label : label@38 catch_end_label : label@38 .catchall : try_begin_label : label@3 try_end_label : label@47 catch_begin_label : label@52 catch_end_label : label@52 } .function_kind FunctionKind::GENERATOR_FUNCTION _ESSlotNumberAnnotation SlotNumber 4 .function any .#*#generateFunc(any a0, any a1, any a2) { nop # line: 18446744073709551615 # column: 0 label@1: ldai 0x0 # line: 18446744073709551615 # column: 0 sta v1 # line: 18446744073709551615 # column: 0 creategeneratorobj a0 # line: 18446744073709551615 # column: 0 sta v2 # line: 18446744073709551615 # column: 0 ldundefined # line: 18446744073709551615 # column: 0 suspendgenerator v2 # line: 18446744073709551615 # column: 0 lda v2 # line: 18446744073709551615 # column: 0 resumegenerator # line: 18446744073709551615 # column: 0 sta v3 # line: 18446744073709551615 # column: 0 lda v2 # line: 18446744073709551615 # column: 0 getresumemode # line: 18446744073709551615 # column: 0 sta v4 # line: 18446744073709551615 # column: 0 lda v1 # line: 18446744073709551615 # column: 0 eq 0x0, v4 # line: 18446744073709551615 # column: 0 jeqz label@18 # line: 18446744073709551615 # column: 0 lda v3 # line: 18446744073709551615 # column: 0 return # line: 18446744073709551615 # column: 0 label@18: ldai 0x1 # line: 18446744073709551615 # column: 0 sta v5 # line: 18446744073709551615 # column: 0 lda v5 # line: 18446744073709551615 # column: 0 eq 0x1, v4 # line: 18446744073709551615 # column: 0 jeqz label@25 # line: 18446744073709551615 # column: 0 lda v3 # line: 18446744073709551615 # column: 0 throw # line: 18446744073709551615 # column: 0 label@25: lda.str hello # line: 79 # column: 0 sta v3 # line: 79 # column: 0 ldfalse # line: 79 # column: 0 sta v4 # line: 79 # column: 0 createiterresultobj v3, v4 # line: 79 # column: 0 suspendgenerator v2 # line: 79 # column: 0 lda v2 # line: 79 # column: 0 resumegenerator # line: 79 # column: 0 sta v3 # line: 79 # column: 0 lda v2 # line: 79 # column: 0 getresumemode # line: 79 # column: 0 sta v2 # line: 79 # column: 0 lda v1 # line: 79 # column: 0 eq 0x2, v2 # line: 79 # column: 0 jeqz label@42 # line: 79 # column: 0 lda v3 # line: 80 # column: 0 return # line: 80 # column: 0 label@42: lda v5 # line: 79 # column: 0 eq 0x3, v2 # line: 79 # column: 0 jeqz label@47 # line: 79 # column: 0 lda v3 # line: 79 # column: 0 throw # line: 79 # column: 0 label@47: ldundefined # line: 18446744073709551615 # column: 0 return # line: 80 # column: 0 label@49: sta v0 # line: 78 # column: 0 lda v0 # line: 78 # column: 0 throw # line: 78 # column: 0 .catchall : try_begin_label : label@1 try_end_label : label@49 catch_begin_label : label@49 catch_end_label : label@49 } .function_kind FunctionKind::FUNCTION _ESSlotNumberAnnotation SlotNumber 0 .function any .#*#goo(any a0, any a1, any a2) { ldundefined # line: 18446744073709551615 # column: 0 returnundefined # line: 68 # column: 0 } .function_kind FunctionKind::FUNCTION _ESSlotNumberAnnotation SlotNumber 2 .function any .#*#hoo(any a0, any a1, any a2) { fldai 1.230000e+00 # line: 71 # column: 0 trystglobalbyname 0x0, varA # line: 71 # column: 0 createobjectwithbuffer 0x1, _GLOBAL_1518 # line: 72 # column: 0 ldundefined # line: 18446744073709551615 # column: 0 returnundefined # line: 73 # column: 0 } .function_kind FunctionKind::ASYNC_FUNCTION _ESSlotNumberAnnotation SlotNumber 0 .function any .#*@3*#method(any a0, any a1, any a2) { nop # line: 18446744073709551615 # column: 0 createasyncgeneratorobj a0 # line: 18446744073709551615 # column: 0 sta v0 # line: 18446744073709551615 # column: 0 label@3: ldundefined # line: 18446744073709551615 # column: 0 suspendgenerator v0 # line: 18446744073709551615 # column: 0 lda v0 # line: 18446744073709551615 # column: 0 resumegenerator # line: 18446744073709551615 # column: 0 lda v0 # line: 18446744073709551615 # column: 0 getresumemode # line: 18446744073709551615 # column: 0 ldundefined # line: 18446744073709551615 # column: 0 sta v2 # line: 18446744073709551615 # column: 0 ldtrue # line: 18446744073709551615 # column: 0 sta v3 # line: 18446744073709551615 # column: 0 lda v0 # line: 18446744073709551615 # column: 0 setgeneratorstate 0x4 # line: 18446744073709551615 # column: 0 asyncgeneratorresolve v0, v2, v3 # line: 18446744073709551615 # column: 0 return # line: 72 # column: 0 label@17: sta v1 # line: 72 # column: 0 lda v0 # line: 72 # column: 0 setgeneratorstate 0x4 # line: 72 # column: 0 lda v1 # line: 72 # column: 0 asyncgeneratorreject v0 # line: 72 # column: 0 return # line: 72 # column: 0 .catchall : try_begin_label : label@3 try_end_label : label@17 catch_begin_label : label@17 catch_end_label : label@17 } .function_kind FunctionKind::FUNCTION _ESSlotNumberAnnotation SlotNumber 2 .function any .#~@0=#HelloWorld(any a0, any a1, any a2) { lda.str HelloWorld # line: 22 # column: 0 stobjbyname 0x0, str, a2 # line: 22 # column: 0 lda a2 # line: 22 # column: 0 return # line: 22 # column: 0 } .function_kind FunctionKind::FUNCTION _ESSlotNumberAnnotation SlotNumber 0 .function any .#~@1=#Lit(any a0, any a1, any a2) { lda a2 # line: 0 # column: 0 return # line: 0 # column: 0 } .function_kind FunctionKind::NONE _ESSlotNumberAnnotation SlotNumber 2 .function any .#~@1>#lit(any a0, any a1, any a2) { nop # line: 18446744073709551615 # column: 0 label@1: creategeneratorobj a0 # line: 18446744073709551615 # column: 0 sta v1 # line: 18446744073709551615 # column: 0 ldundefined # line: 18446744073709551615 # column: 0 suspendgenerator v1 # line: 18446744073709551615 # column: 0 lda v1 # line: 18446744073709551615 # column: 0 resumegenerator # line: 18446744073709551615 # column: 0 sta v2 # line: 18446744073709551615 # column: 0 lda v1 # line: 18446744073709551615 # column: 0 getresumemode # line: 18446744073709551615 # column: 0 sta v1 # line: 18446744073709551615 # column: 0 ldai 0x0 # line: 18446744073709551615 # column: 0 eq 0x0, v1 # line: 18446744073709551615 # column: 0 jeqz label@16 # line: 18446744073709551615 # column: 0 lda v2 # line: 18446744073709551615 # column: 0 return # line: 18446744073709551615 # column: 0 label@16: ldai 0x1 # line: 18446744073709551615 # column: 0 eq 0x1, v1 # line: 18446744073709551615 # column: 0 jeqz label@21 # line: 18446744073709551615 # column: 0 lda v2 # line: 18446744073709551615 # column: 0 throw # line: 18446744073709551615 # column: 0 label@21: ldundefined # line: 18446744073709551615 # column: 0 return # line: 26 # column: 0 label@23: sta v0 # line: 26 # column: 0 lda v0 # line: 26 # column: 0 throw # line: 26 # column: 0 .catchall : try_begin_label : label@1 try_end_label : label@23 catch_begin_label : label@23 catch_end_label : label@23 } .function_kind FunctionKind::NONE _ESSlotNumberAnnotation SlotNumber 2 .function any .#~@2=#NestedLiteralArray(any a0, any a1, any a2) { ldai 0x1 # line: 34 # column: 0 stobjbyname 0x0, num, a2 # line: 34 # column: 0 lda a2 # line: 34 # column: 0 return # line: 34 # column: 0 } .function_kind FunctionKind::NONE _ESSlotNumberAnnotation SlotNumber 0 .function any .#~@2>#NestedLiteralArray(any a0, any a1, any a2) { ldundefined # line: 18446744073709551615 # column: 0 returnundefined # line: 31 # column: 0 } .function_kind FunctionKind::FUNCTION _ESSlotNumberAnnotation SlotNumber 28 .function any .func_main_0(any a0, any a1, any a2) { newlexenv 0x2 # line: 18446744073709551615 # column: 0 lda a1 # line: 18446744073709551615 # column: 0 stlexvar 0x0, 0x0 # line: 18446744073709551615 # column: 0 lda a2 # line: 18446744073709551615 # column: 0 stlexvar 0x0, 0x1 # line: 18446744073709551615 # column: 0 definefunc 0x0, .#*#asyncGenerateFunc, 0x0 # line: 18446744073709551615 # column: 0 definefunc 0x1, .#*#foo, 0x0 # line: 18446744073709551615 # column: 0 sta v0 # line: 18446744073709551615 # column: 0 definefunc 0x2, .#*#generateFunc, 0x0 # line: 18446744073709551615 # column: 0 definefunc 0x3, .#*#goo, 0x0 # line: 18446744073709551615 # column: 0 sta v1 # line: 18446744073709551615 # column: 0 definefunc 0x4, .#*#hoo, 0x0 # line: 18446744073709551615 # column: 0 sta v2 # line: 18446744073709551615 # column: 0 getmodulenamespace 0x1 # line: 18446744073709551615 # column: 0 ldundefined # line: 17 # column: 0 stmodulevar 0x0 # line: 17 # column: 0 ldhole # line: 21 # column: 0 sta v3 # line: 21 # column: 0 defineclasswithbuffer 0x5, .#~@0=#HelloWorld, _GLOBAL_1535, 0x0, v3 # line: 21 # column: 0 ldobjbyname 0x6, prototype # line: 21 # column: 0 ldhole # line: 25 # column: 0 sta v3 # line: 25 # column: 0 defineclasswithbuffer 0x8, .#~@1=#Lit, _GLOBAL_1544, 0x0, v3 # line: 25 # column: 0 ldobjbyname 0x9, prototype # line: 25 # column: 0 ldhole # line: 29 # column: 0 sta v3 # line: 29 # column: 0 callruntime.definesendableclass 0xb, .#~@2=#NestedLiteralArray, _GLOBAL_1585, 0x0, v3 # line: 29 # column: 0 lda.str # line: 37 # column: 0 trystglobalbyname 0xc, string # line: 37 # column: 0 definefunc 0xd, .#*#add, 0x2 # line: 75 # column: 0 sta v3 # line: 75 # column: 0 ldai 0x1 # line: 75 # column: 0 sta v4 # line: 75 # column: 0 ldai 0x2 # line: 75 # column: 0 sta v5 # line: 75 # column: 0 lda v3 # line: 76 # column: 0 callargs2 0xe, v4, v5 # line: 76 # column: 0 definefunc 0x10, .#*#asyncArrowFunc, 0x0 # line: 86 # column: 0 lda v0 # line: 88 # column: 0 callarg0 0x11 # line: 88 # column: 0 tryldglobalbyname 0x13, print # line: 90 # column: 0 sta v0 # line: 90 # column: 0 lda v1 # line: 90 # column: 0 ldobjbyname 0x14, toString # line: 90 # column: 0 callthis0 0x16, v1 # line: 90 # column: 0 sta v1 # line: 90 # column: 0 lda v0 # line: 90 # column: 0 callarg1 0x18, v1 # line: 90 # column: 0 lda v2 # line: 92 # column: 0 callarg0 0x1a # line: 92 # column: 0 ldundefined # line: 18446744073709551615 # column: 0 returnundefined # line: 18446744073709551615 # column: 0 } # ==================== # STRING .#*#add .#*#asyncArrowFunc .#*#asyncGenerateFunc .#*#foo .#*#generateFunc .#*#goo .#*#hoo .#~@0=#HelloWorld .#~@1=#Lit .#~@2=#NestedLiteralArray HelloWorld error hello inner catch masg max min msg null num outter catch print prototype str string toString varA x