blob: 3f84c02b10d96e4ff4c343bc73d3b774f63c053e [file] [log] [blame]
// 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};
}