| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| function createTestBuffers(limit) { |
| let builder = new WasmModuleBuilder(); |
| let body = []; |
| var fct = builder.addFunction("f", kSig_v_v); |
| |
| var l = builder.toBuffer().byteLength; |
| |
| // in the bare bones buffer, the size of the function f |
| // is 0, which is encoded in 1 byte. For the 2^12 case, |
| // we need 2 bytes. Then, the function ends in kExprEnd, |
| // so we need that accounted, too. |
| var remaining = limit - l - 3; |
| |
| for (var i = 0; i < remaining; ++i) body.push(kExprNop); |
| fct.addBody(body); |
| |
| var small_buffer = builder.toBuffer(); |
| // body is now 1 larger than before, because it has the kExpEnd at the end. |
| // replace that with kExprNop, and generate a new buffer. |
| body[body.length-1] = kExprNop; |
| fct.addBody(body); |
| var large_buffer = builder.toBuffer(); |
| return {small: small_buffer, large: large_buffer}; |
| } |