1.language ECMAScript 2 3slotNum = 0x0 4.function any .#*#(any a0, any a1, any a2) { 5label_1: 6label_0: 7 ldtrue 8 return 9label_2: 10} 11 12slotNum = 0x0 13.function any .#*#^1(any a0, any a1, any a2) { 14label_1: 15label_0: 16 ldai 0x1 17 return 18label_2: 19} 20 21slotNum = 0x0 22.function any .#*#foo(any a0, any a1, any a2) { 23label_1: 24label_0: 25 ldundefined 26 returnundefined 27label_2: 28} 29 30slotNum = 0x0 31.function any .#*#foo1(any a0, any a1, any a2) { 32label_1: 33label_0: 34 ldundefined 35 returnundefined 36label_2: 37} 38 39slotNum = 0x0 40.function any .#*#foo2(any a0, any a1, any a2) { 41label_1: 42label_0: 43 ldundefined 44 returnundefined 45label_2: 46} 47 48slotNum = 0x0 49.function any .#*#foo3(any a0, any a1, any a2) { 50label_1: 51label_0: 52 ldundefined 53 returnundefined 54label_2: 55} 56 57slotNum = 0x24 58.function any .func_main_0(any a0, any a1, any a2) { 59 nop 60label_38: 61label_0: 62 newlexenv 0x2 63 lda a1 64 stlexvar 0x0, 0x0 65 lda a2 66 stlexvar 0x0, 0x1 67label_3: 68 definefunc 0x0, .#*#, 0x0 69 callarg0 0x1 70 callruntime.isfalse 0x3 71 jnez label_1 72label_2: 73 definefunc 0x5, .#*#foo, 0x0 74 jmp label_3 75label_1: 76 ldai 0x5 77 sta v0 78 definefunc 0x6, .#*#^1, 0x0 79 callarg0 0x7 80 sta v1 81label_6: 82 lda v0 83 less 0x9, v1 84 jeqz label_4 85label_5: 86 definefunc 0xa, .#*#foo1, 0x0 87 lda v1 88 tonumeric 0xb 89 inc 0xc 90 sta v1 91 jmp label_6 92label_4: 93 createemptyarray 0xd 94 sta v0 95label_21: 96label_22: 97end_label_22: 98 jmp label_7 99label_40: 100 sta v1 101label_34: 102 lda v1 103 throw 104label_7: 105 lda v0 106 getiterator 0xe 107 sta v1 108 ldobjbyname 0x10, next 109 sta v2 110 ldfalse 111 sta v3 112label_15: 113 lda v2 114 callthis0 0x12, v1 115 sta v4 116 throw.ifnotobject v4 117 ldobjbyname 0x14, done 118 callruntime.istrue 0x16 119 jnez label_25 120label_9: 121 lda v4 122 ldobjbyname 0x18, value 123label_23: 124label_29: 125 definefunc 0x1a, .#*#foo2, 0x0 126label_24: 127end_label_24: 128 jmp label_15 129label_41: 130 sta v4 131label_35: 132 lda v3 133 callruntime.istrue 0x1b 134 jnez label_11 135label_12: 136 ldtrue 137 ldundefined 138 ldhole 139label_19: 140label_31: 141 lda v1 142 ldobjbyname 0x1d, return 143 sta v0 144 ldundefined 145 eq 0x1f, v0 146 jnez label_11 147label_13: 148 lda v0 149 callthis0 0x20, v1 150label_20: 151end_label_20: 152 jmp label_14 153label_42: 154label_14: 155 lda v4 156 throw 157label_11: 158 lda v4 159 throw 160label_25: 161label_8: 162 lda v0 163 getpropiterator 164 sta v0 165label_26: 166end_label_26: 167label_33: 168 jmp label_16 169label_43: 170 sta v1 171label_37: 172 lda v1 173 throw 174label_16: 175 getnextpropname v0 176 sta v1 177 ldundefined 178 eq 0x22, v1 179 jnez label_17 180label_18: 181 definefunc 0x23, .#*#foo3, 0x0 182 jmp label_16 183label_17: 184 ldundefined 185 returnundefined 186label_39: 187} 188 189.catchall label_19, end_label_20, label_42 190 191.catchall label_21, end_label_22, label_40 192 193.catchall label_23, end_label_24, label_41 194 195.catchall label_25, end_label_26, label_43 196 197 198======> literal array buffer <====== 199------------------------------------ 200slot _0 201------------------------------------ 202slot _1 203{ 204 index: 0 205 tag: 2 206 val: 0 207}, 208{ 209 index: 1 210 tag: 2 211 val: 0 212}, 213{ 214 index: 2 215 tag: 2 216 val: 0 217}, 218{ 219 index: 3 220 tag: 2 221 val: 0 222}, 223{ 224 index: 4 225 tag: 2 226 val: 0 227}, 228{ 229 index: 5 230 tag: 2 231 val: 0 232}, 233