1.language ECMAScript 2 3slotNum = 0xe 4.function any .#*#test2(any a0, any a1, any a2) { 5 mov v0, a0 6 mov v1, a1 7 mov v2, a2 8 callruntime.ldsendablevar 0x0, 0x0 9 throw.undefinedifholewithname SendableA 10 sta v6 11 newobjrange 0x0, 0x1, v6 12 sta v4 13 callruntime.ldsendablevar 0x0, 0x1 14 throw.undefinedifholewithname SendableB 15 sta v6 16 newobjrange 0x2, 0x1, v6 17 sta v3 18 tryldglobalbyname 0x4, print 19 sta v6 20 callruntime.ldsendablevar 0x0, 0x0 21 throw.undefinedifholewithname SendableA 22 sta v7 23 lda v7 24 ldobjbyname 0x5, propA 25 sta v7 26 lda v6 27 callarg1 0x7, v7 28 tryldglobalbyname 0x9, print 29 sta v6 30 callruntime.ldsendablevar 0x0, 0x1 31 throw.undefinedifholewithname SendableB 32 sta v7 33 lda v7 34 ldobjbyname 0xa, propB 35 sta v7 36 lda v6 37 callarg1 0xc, v7 38 ldai 0x29a 39 sta v6 40 ldlexvar 0x0, 0x0 41 throw.undefinedifholewithname moduleA 42 lda v6 43 sta v6 44 lda v6 45 stlexvar 0x0, 0x0 46 lda.str 456 47 sta v6 48 ldlexvar 0x0, 0x1 49 throw.undefinedifholewithname closureStr 50 lda v6 51 sta v6 52 lda v6 53 stlexvar 0x0, 0x1 54 ldai 0x1c8 55 sta v6 56 ldlexvar 0x0, 0x2 57 throw.undefinedifholewithname closureNum 58 lda v6 59 sta v6 60 lda v6 61 stlexvar 0x0, 0x2 62 lda.str test 63 return 64} 65 66slotNum = 0x2 67.function any .#~@0=#SendableA(any a0, any a1, any a2) { 68 mov v0, a0 69 mov v1, a1 70 mov v2, a2 71 lda.str use sendable 72 lda v2 73 sta v4 74 lda.str a 75 stobjbyname 0x0, propA, v4 76 lda v2 77 return 78} 79 80slotNum = 0x2 81.function any .#~@0>#static_initializer(any a0, any a1, any a2) { 82 mov v0, a0 83 mov v1, a1 84 mov v2, a2 85 lda v2 86 sta v4 87 lda.str ArkCompilerTestA 88 definepropertybyname 0x0, propA, v4 89 ldundefined 90 returnundefined 91} 92 93slotNum = 0x2 94.function any .#~@1=#SendableB(any a0, any a1, any a2) { 95 mov v0, a0 96 mov v1, a1 97 mov v2, a2 98 lda.str use sendable 99 lda v2 100 sta v4 101 lda.str b 102 stobjbyname 0x0, propA, v4 103 lda v2 104 return 105} 106 107slotNum = 0x2 108.function any .#~@1>#static_initializer(any a0, any a1, any a2) { 109 mov v0, a0 110 mov v1, a1 111 mov v2, a2 112 lda v2 113 sta v4 114 lda.str ArkCompilerTestB 115 definepropertybyname 0x0, propB, v4 116 ldundefined 117 returnundefined 118} 119 120slotNum = 0x9 121.function any .func_main_0(any a0, any a1, any a2) { 122 newlexenvwithname 0x3, _6 123 callruntime.newsendableenv 0x2 124 mov v0, a0 125 mov v1, a1 126 mov v2, a2 127 definefunc 0x0, .#*#test2, 0x0 128 stmodulevar 0x0 129 ldai 0x3e7 130 sta v4 131 lda v4 132 stlexvar 0x0, 0x0 133 lda.str 1234 134 sta v4 135 lda v4 136 stlexvar 0x0, 0x1 137 ldhole 138 sta v6 139 callruntime.definesendableclass 0x1, .#~@0=#SendableA, _3, 0x0, v6 140 sta v4 141 sta v5 142 definemethod 0x2, .#~@0>#static_initializer, 0x0 143 sta v7 144 mov v8, v4 145 lda v7 146 callthis0 0x3, v8 147 lda v4 148 callruntime.stsendablevar 0x0, 0x0 149 ldai 0x11d3 150 sta v4 151 lda v4 152 stlexvar 0x0, 0x2 153 ldhole 154 sta v6 155 callruntime.definesendableclass 0x5, .#~@1=#SendableB, _5, 0x0, v6 156 sta v4 157 sta v5 158 definemethod 0x6, .#~@1>#static_initializer, 0x0 159 sta v7 160 mov v8, v4 161 lda v7 162 callthis0 0x7, v8 163 lda v4 164 callruntime.stsendablevar 0x0, 0x1 165 ldundefined 166 returnundefined 167} 168 169 170======> literal array buffer <====== 171------------------------------------ 172slot _0 173{ 174 index: 0 175 tag: 0 176 val: 5 177}, 178{ 179 index: 1 180 tag: 5 181 val: SendableA 182}, 183{ 184 index: 2 185 tag: 0 186 val: 5 187}, 188{ 189 index: 3 190 tag: 5 191 val: SendableB 192}, 193------------------------------------ 194slot _1 195{ 196 index: 0 197 tag: 2 198 val: 0 199}, 200{ 201 index: 1 202 tag: 2 203 val: 0 204}, 205{ 206 index: 2 207 tag: 2 208 val: 0 209}, 210{ 211 index: 3 212 tag: 2 213 val: 1 214}, 215{ 216 index: 4 217 tag: 5 218 val: test2 219}, 220{ 221 index: 5 222 tag: 5 223 val: test2 224}, 225{ 226 index: 6 227 tag: 2 228 val: 0 229}, 230{ 231 index: 7 232 tag: 2 233 val: 0 234}, 235------------------------------------ 236slot _2 237{ 238 index: 0 239 tag: 0 240 val: 5 241}, 242{ 243 index: 1 244 tag: 5 245 val: propA 246}, 247{ 248 index: 2 249 tag: 0 250 val: 2 251}, 252{ 253 index: 3 254 tag: 2 255 val: 2 256}, 257{ 258 index: 4 259 tag: 0 260 val: 5 261}, 262{ 263 index: 5 264 tag: 5 265 val: propA 266}, 267{ 268 index: 6 269 tag: 0 270 val: 2 271}, 272{ 273 index: 7 274 tag: 2 275 val: 2 276}, 277{ 278 index: 8 279 tag: 0 280 val: 2 281}, 282{ 283 index: 9 284 tag: 2 285 val: 1 286}, 287------------------------------------ 288slot _3 289{ 290 index: 0 291 tag: 0 292 val: 2 293}, 294{ 295 index: 1 296 tag: 2 297 val: 0 298}, 299{ 300 index: 2 301 tag: 0 302 val: 24 303}, 304{ 305 index: 3 306 tag: 24 307 val: _2 308}, 309------------------------------------ 310slot _4 311{ 312 index: 0 313 tag: 0 314 val: 5 315}, 316{ 317 index: 1 318 tag: 5 319 val: propA 320}, 321{ 322 index: 2 323 tag: 0 324 val: 2 325}, 326{ 327 index: 3 328 tag: 2 329 val: 2 330}, 331{ 332 index: 4 333 tag: 0 334 val: 5 335}, 336{ 337 index: 5 338 tag: 5 339 val: propB 340}, 341{ 342 index: 6 343 tag: 0 344 val: 2 345}, 346{ 347 index: 7 348 tag: 2 349 val: 2 350}, 351{ 352 index: 8 353 tag: 0 354 val: 2 355}, 356{ 357 index: 9 358 tag: 2 359 val: 1 360}, 361------------------------------------ 362slot _5 363{ 364 index: 0 365 tag: 0 366 val: 2 367}, 368{ 369 index: 1 370 tag: 2 371 val: 0 372}, 373{ 374 index: 2 375 tag: 0 376 val: 24 377}, 378{ 379 index: 3 380 tag: 24 381 val: _4 382}, 383------------------------------------ 384slot _6 385{ 386 index: 0 387 tag: 0 388 val: 2 389}, 390{ 391 index: 1 392 tag: 2 393 val: 3 394}, 395{ 396 index: 2 397 tag: 0 398 val: 5 399}, 400{ 401 index: 3 402 tag: 5 403 val: moduleA 404}, 405{ 406 index: 4 407 tag: 0 408 val: 2 409}, 410{ 411 index: 5 412 tag: 2 413 val: 0 414}, 415{ 416 index: 6 417 tag: 0 418 val: 5 419}, 420{ 421 index: 7 422 tag: 5 423 val: closureStr 424}, 425{ 426 index: 8 427 tag: 0 428 val: 2 429}, 430{ 431 index: 9 432 tag: 2 433 val: 1 434}, 435{ 436 index: 10 437 tag: 0 438 val: 5 439}, 440{ 441 index: 11 442 tag: 5 443 val: closureNum 444}, 445{ 446 index: 12 447 tag: 0 448 val: 2 449}, 450{ 451 index: 13 452 tag: 2 453 val: 2 454}, 455