| Index: test/mjsunit/wasm/wasm-module-builder.js | 
| diff --git a/test/mjsunit/wasm/wasm-module-builder.js b/test/mjsunit/wasm/wasm-module-builder.js | 
| index 7ccd2a42c151acb01f7ee9348dc7d2cd205ee141..61e074b13deeb10fe73e5ce6fc507947fd5db460 100644 | 
| --- a/test/mjsunit/wasm/wasm-module-builder.js | 
| +++ b/test/mjsunit/wasm/wasm-module-builder.js | 
| @@ -2,11 +2,6 @@ | 
| // Use of this source code is governed by a BSD-style license that can be | 
| // found in the LICENSE file. | 
|  | 
| -function StringRef(string) { | 
| -    this.pos = -1; | 
| -    this.string = string; | 
| -} | 
| - | 
| function DataRef(data) { | 
| this.pos = -1; | 
| this.data = data; | 
| @@ -117,10 +112,10 @@ function emit_u32(bytes, val) { | 
| } | 
|  | 
| function emit_string(bytes, string) { | 
| -    bytes.push(new StringRef(string)); | 
| -    bytes.push(0); | 
| -    bytes.push(0); | 
| -    bytes.push(0); | 
| +    emit_varint(bytes, string.length); | 
| +    for (var i = 0; i < string.length; i++) { | 
| +      emit_u8(bytes, string.charCodeAt(i)); | 
| +    } | 
| } | 
|  | 
| function emit_data_ref(bytes, string) { | 
| @@ -179,11 +174,7 @@ WasmModuleBuilder.prototype.toArray = function(debug) { | 
| for (imp of this.imports) { | 
| emit_varint(bytes, imp.sig_index); | 
| emit_string(bytes, imp.module); | 
| -            if (imp.name == undefined) { | 
| -              emit_u32(bytes, 0); | 
| -            } else { | 
| -              emit_string(bytes, imp.name); | 
| -            } | 
| +            emit_string(bytes, imp.name || ''); | 
| } | 
| } | 
|  | 
| @@ -297,21 +288,12 @@ WasmModuleBuilder.prototype.toArray = function(debug) { | 
| if (debug) print("emitting end @ " + bytes.length); | 
| emit_u8(bytes, kDeclEnd); | 
|  | 
| -    // Collect references and canonicalize strings. | 
| +    // Collect references. | 
| var strings = new Object(); | 
| var data_segments = []; | 
| var count = 0; | 
| for (var i = 0; i < bytes.length; i++) { | 
| var b = bytes[i]; | 
| -        if (b instanceof StringRef) { | 
| -            count++; | 
| -            var prev = strings[b.string]; | 
| -            if (prev) { | 
| -                bytes[i] = prev; | 
| -            } else { | 
| -                strings[b.string] = b; | 
| -            } | 
| -        } | 
| if (b instanceof DataRef) { | 
| data_segments.push(b); | 
| count++; | 
| @@ -319,18 +301,6 @@ WasmModuleBuilder.prototype.toArray = function(debug) { | 
| } | 
|  | 
| if (count > 0) { | 
| -        // Emit strings. | 
| -        if (debug) print("emitting strings @ " + bytes.length); | 
| -        for (str in strings) { | 
| -            var ref = strings[str]; | 
| -            if (!(ref instanceof StringRef)) continue; | 
| -            if (debug) print("  \"" + str + "\" @ " + bytes.length); | 
| -            ref.pos = bytes.length; | 
| -            for (var i = 0; i < str.length; i++) { | 
| -                emit_u8(bytes, str.charCodeAt(i)); | 
| -            } | 
| -            emit_u8(bytes, 0);  // null terminator. | 
| -        } | 
| // Emit data. | 
| if (debug) print("emitting data @ " + bytes.length); | 
| for (ref of data_segments) { | 
| @@ -342,7 +312,7 @@ WasmModuleBuilder.prototype.toArray = function(debug) { | 
| // Update references to strings and data. | 
| for (var i = 0; i < bytes.length; i++) { | 
| var b = bytes[i]; | 
| -            if (b instanceof StringRef || b instanceof DataRef) { | 
| +            if (b instanceof DataRef) { | 
| bytes[i] = b.pos & 0xFF; | 
| bytes[i + 1] = (b.pos >> 8) & 0xFF; | 
| bytes[i + 2] = (b.pos >> 16) & 0xFF; | 
|  |