diff --git a/src/compiler.ts b/src/compiler.ts index d9dd2df4cc..06a1871b90 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -8147,6 +8147,7 @@ export class Compiler extends DiagnosticEmitter { } let arrayInstance = assert(this.resolver.resolveClass(this.program.staticArrayPrototype, [ stringType ])); let segment = this.addStaticBuffer(stringType, values, arrayInstance.id); + this.program.OBJECTInstance.writeField("gcInfo", 3, segment.buffer, 0); // use transparent gcinfo let offset = i64_add(segment.offset, i64_new(this.program.totalOverhead)); let joinInstance = assert(arrayInstance.getMethod("join")); let indexedSetInstance = assert(arrayInstance.lookupOverload(OperatorKind.INDEXED_SET, true)); diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index 47c26e8134..fc3b6e918d 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -60,7 +60,7 @@ (data (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00(\00A\00=\00\00\00\00\00\00\00") (data (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00,\00 \00B\00=\00\00\00\00\00") (data (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00)\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 700) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\02\00\00\00\00\00\00\90\02\00\00\00\00\00\00\b0\02\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 700) ",\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\02\00\00\00\00\00\00\90\02\00\00\00\00\00\00\b0\02\00\00\00\00\00\00\00\00\00\00") (data (i32.const 748) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00(\00A\00=\00a\00,\00 \00B\00=\00b\00)\00\00\00\00\00\00\00\00\00") (data (i32.const 796) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") (data (i32.const 924) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") @@ -70,7 +70,7 @@ (data (i32.const 2476) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") (data (i32.const 2572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 2604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\002\00\00\00\00\00\00\00\00\00") - (data (i32.const 2636) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\02\00\00\00\00\00\00\90\02\00\00\00\00\00\00\b0\02\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2636) ",\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\02\00\00\00\00\00\00\90\02\00\00\00\00\00\00\b0\02\00\00\00\00\00\00\00\00\00\00") (data (i32.const 2684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00(\00A\00=\001\00,\00 \00B\00=\002\00)\00\00\00\00\00\00\00\00\00") (data (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") (data (i32.const 2764) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") @@ -82,7 +82,7 @@ (data (i32.const 3824) "\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;") (data (i32.const 3868) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\00.\000\00\00\00\00\00\00\00") (data (i32.const 3900) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\00.\000\002\00.\000\00") - (data (i32.const 3932) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\02\00\00\00\00\00\00\90\02\00\00\00\00\00\00\b0\02\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3932) ",\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\02\00\00\00\00\00\00\90\02\00\00\00\00\00\00\b0\02\00\00\00\00\00\00\00\00\00\00") (data (i32.const 3980) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00(\00A\00=\001\00.\000\00,\00 \00B\00=\002\00.\000\00)\00") (data (i32.const 4028) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 4060) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00p\00r\00e\00f\00\00\00\00\00") @@ -95,11 +95,11 @@ (data (i32.const 4284) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00r\00e\00f\00#\00\00\00\00\00") (data (i32.const 4316) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00r\00e\00f\00#\001\00\00\00") (data (i32.const 4348) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00r\00e\00f\00#\001\00r\00e\00f\00#\002\00\00\00\00\00\00\00\00\00") - (data (i32.const 4396) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\02\00\00\00\00\00\00\90\02\00\00\00\00\00\00\b0\02\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4396) ",\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\02\00\00\00\00\00\00\90\02\00\00\00\00\00\00\b0\02\00\00\00\00\00\00\00\00\00\00") (data (i32.const 4444) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00(\00A\00=\00r\00e\00f\00#\001\00,\00 \00B\00=\00r\00e\00f\00#\002\00)\00\00\00\00\00\00\00\00\00") (data (i32.const 4508) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 4540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4572) ",\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00\a0\00\00\00\00\00\00\00\d0\11\00\00\00\00\00\00\a0\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4572) ",\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00\a0\00\00\00\00\00\00\00\d0\11\00\00\00\00\00\00\a0\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 4620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00a\00:\00b\00:\00c\00\00\00") (data (i32.const 4656) "\06\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04A\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 1 funcref) diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index e3d333710a..72396b9688 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -56,8 +56,7 @@ (data (i32.const 1672) "\01\00\00\00\08\00\00\00,\00 \00B\00=") (data (i32.const 1692) "\1c") (data (i32.const 1704) "\01\00\00\00\02\00\00\00)") - (data (i32.const 1724) ",") - (data (i32.const 1736) "\03\00\00\00\14\00\00\00p\06\00\00\00\00\00\00\90\06\00\00\00\00\00\00\b0\06") + (data (i32.const 1724) ",\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\06\00\00\00\00\00\00\90\06\00\00\00\00\00\00\b0\06") (data (i32.const 1772) ",") (data (i32.const 1784) "\01\00\00\00\14\00\00\00(\00A\00=\00a\00,\00 \00B\00=\00b\00)") (data (i32.const 1820) "|") @@ -75,8 +74,7 @@ (data (i32.const 3608) "\01\00\00\00\02\00\00\001") (data (i32.const 3628) "\1c") (data (i32.const 3640) "\01\00\00\00\04\00\00\001\002") - (data (i32.const 3660) ",") - (data (i32.const 3672) "\03\00\00\00\14\00\00\00p\06\00\00\00\00\00\00\90\06\00\00\00\00\00\00\b0\06") + (data (i32.const 3660) ",\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\06\00\00\00\00\00\00\90\06\00\00\00\00\00\00\b0\06") (data (i32.const 3708) ",") (data (i32.const 3720) "\01\00\00\00\14\00\00\00(\00A\00=\001\00,\00 \00B\00=\002\00)") (data (i32.const 3756) "\1c") @@ -94,8 +92,7 @@ (data (i32.const 4904) "\01\00\00\00\06\00\00\001\00.\000") (data (i32.const 4924) "\1c") (data (i32.const 4936) "\01\00\00\00\0c\00\00\001\00.\000\002\00.\000") - (data (i32.const 4956) ",") - (data (i32.const 4968) "\03\00\00\00\14\00\00\00p\06\00\00\00\00\00\00\90\06\00\00\00\00\00\00\b0\06") + (data (i32.const 4956) ",\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\06\00\00\00\00\00\00\90\06\00\00\00\00\00\00\b0\06") (data (i32.const 5004) ",") (data (i32.const 5016) "\01\00\00\00\1c\00\00\00(\00A\00=\001\00.\000\00,\00 \00B\00=\002\00.\000\00)") (data (i32.const 5052) "\1c") @@ -120,16 +117,14 @@ (data (i32.const 5352) "\01\00\00\00\n\00\00\00r\00e\00f\00#\001") (data (i32.const 5372) ",") (data (i32.const 5384) "\01\00\00\00\14\00\00\00r\00e\00f\00#\001\00r\00e\00f\00#\002") - (data (i32.const 5420) ",") - (data (i32.const 5432) "\03\00\00\00\14\00\00\00p\06\00\00\00\00\00\00\90\06\00\00\00\00\00\00\b0\06") + (data (i32.const 5420) ",\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00p\06\00\00\00\00\00\00\90\06\00\00\00\00\00\00\b0\06") (data (i32.const 5468) "<") (data (i32.const 5480) "\01\00\00\00$\00\00\00(\00A\00=\00r\00e\00f\00#\001\00,\00 \00B\00=\00r\00e\00f\00#\002\00)") (data (i32.const 5532) "\1c") (data (i32.const 5544) "\01\00\00\00\02\00\00\00c") (data (i32.const 5564) "\1c") (data (i32.const 5576) "\01\00\00\00\02\00\00\00:") - (data (i32.const 5596) ",") - (data (i32.const 5608) "\03\00\00\00\14\00\00\00\a0\04\00\00\00\00\00\00\d0\15\00\00\00\00\00\00\a0\04") + (data (i32.const 5596) ",\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\14\00\00\00\a0\04\00\00\00\00\00\00\d0\15\00\00\00\00\00\00\a0\04") (data (i32.const 5644) "\1c") (data (i32.const 5656) "\01\00\00\00\n\00\00\00a\00:\00b\00:\00c") (data (i32.const 5680) "\06\00\00\00 \00\00\00\00\00\00\00 ")