1.language ECMAScript 2 3slotNum = 0x0 4.function any .#*#(any a0, any a1, any a2, any a3) { 5label_1: 6label_0: 7 ldfalse 8 return 9label_2: 10} 11 12slotNum = 0x1 13.function any .#*#enumerable(any a0, any a1, any a2, any a3) { 14label_1: 15label_0: 16 newlexenv 0x1 17 lda a3 18 stlexvar 0x0, 0x0 19 definefunc 0x0, .#*@0*#, 0x3 20 return 21label_2: 22} 23 24slotNum = 0x7 25.function any .#*@0*#(any a0, any a1, any a2, any a3, any a4, any a5) { 26label_1: 27label_0: 28 ldlexvar 0x0, 0x0 29 sta v0 30 lda.str xxx 31 sta v1 32 lda v0 33 callarg1 0x0, v1 34 stobjbyname 0x2, enumerable, a5 35 tryldglobalbyname 0x4, print 36 sta v0 37 lda.str Hello 38 sta v1 39 lda v0 40 callarg1 0x5, v1 41 ldundefined 42 returnundefined 43label_2: 44} 45 46slotNum = 0x2 47.function any .#~@1=#Greeter(any a0, any a1, any a2, any a3) { 48label_1: 49label_0: 50 lda a3 51 stobjbyname 0x0, greeting, a2 52 lda a2 53 return 54label_2: 55} 56 57slotNum = 0x3 58.function any .#~@1>#greet(any a0, any a1, any a2) { 59label_1: 60label_0: 61 lda.str Hello, 62 sta v0 63 lda a2 64 ldobjbyname 0x0, greeting 65 add2 0x2, v0 66 return 67label_2: 68} 69 70slotNum = 0x1b 71.function any .func_main_0(any a0, any a1, any a2) { 72label_4: 73label_0: 74 definefunc 0x0, .#*#enumerable, 0x1 75 sta v0 76 ldhole 77 sta v1 78 defineclasswithbuffer 0x1, .#~@1=#Greeter, _2, 0x1, v1 79 sta v1 80 ldobjbyname 0x2, prototype 81 definefunc 0x4, .#*#, 0x1 82 sta v2 83 lda v0 84 callarg1 0x5, v2 85 sta v0 86 tryldglobalbyname 0x7, Object 87 sta v2 88 ldobjbyname 0x8, getOwnPropertyDescriptor 89 sta v3 90 lda v1 91 ldobjbyname 0xa, prototype 92 sta v4 93 lda.str greet 94 sta v5 95 lda v3 96 callthis2 0xc, v2, v4, v5 97 sta v2 98 tryldglobalbyname 0xe, Object 99 sta v3 100 ldobjbyname 0xf, defineProperty 101 sta v4 102 lda v1 103 ldobjbyname 0x11, prototype 104 sta v5 105 lda.str greet 106 sta v6 107 lda v1 108 ldobjbyname 0x13, prototype 109 sta v1 110 lda.str greet 111 sta v7 112 lda v0 113 callargs3 0x15, v1, v7, v2 114 sta v0 115 callruntime.istrue 0x17 116 jeqz label_3 117label_6: 118 mov v2, v0 119label_3: 120 lda v4 121 callthis3 0x19, v3, v5, v6, v2 122 ldundefined 123 returnundefined 124label_5: 125} 126 127 128======> literal array buffer <====== 129------------------------------------ 130slot _0 131{ 132 index: 0 133 tag: 0 134 val: 5 135}, 136{ 137 index: 1 138 tag: 5 139 val: enumerable 140}, 141{ 142 index: 2 143 tag: 0 144 val: 5 145}, 146{ 147 index: 3 148 tag: 5 149 val: Greeter 150}, 151------------------------------------ 152slot _1 153{ 154 index: 0 155 tag: 2 156 val: 0 157}, 158{ 159 index: 1 160 tag: 2 161 val: 0 162}, 163{ 164 index: 2 165 tag: 2 166 val: 0 167}, 168{ 169 index: 3 170 tag: 2 171 val: 0 172}, 173{ 174 index: 4 175 tag: 2 176 val: 0 177}, 178{ 179 index: 5 180 tag: 2 181 val: 0 182}, 183------------------------------------ 184slot _2 185{ 186 index: 0 187 tag: 0 188 val: 5 189}, 190{ 191 index: 1 192 tag: 5 193 val: greet 194}, 195{ 196 index: 2 197 tag: 0 198 val: 6 199}, 200{ 201 index: 3 202 tag: 6 203 val: .#~@1>#greet 204}, 205{ 206 index: 4 207 tag: 0 208 val: 9 209}, 210{ 211 index: 5 212 tag: 9 213 val: 0 214}, 215{ 216 index: 6 217 tag: 0 218 val: 2 219}, 220{ 221 index: 7 222 tag: 2 223 val: 1 224}, 225