// Copyright 2017 the V8 project 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 module(stdlib,foreign,buffer) { "use asm"; var fl = new stdlib.Uint32Array(buffer); function f1(x) { x = x | 0; fl[0] = x; fl[0x10000] = x; fl[0x100000] = x; } return f1; } var global = {Uint32Array:Uint32Array}; var env = {}; memory = new WebAssembly.Memory({initial:128}); var buffer = memory.buffer; evil_f = module(global,env,buffer); zz = {}; zz.toString = function() { Array.prototype.slice.call([]); return 0xffffffff; } evil_f(3); assertThrows(() => memory.grow(1), RangeError); evil_f(zz);