f06db79c67
This makes sure that typed array constructors (e.g. Int8Array, ...) used within an asm.js module are considered uses of stdlib values, and hence are checked during module instantiation. R=clemensh@chromium.org TEST=mjsunit/regress/regress-6280 BUG=v8:6280,chromium:714537 Change-Id: Ic5d689f5319c4dac4e9df3dca4a8cf5a4edd890b Reviewed-on: https://chromium-review.googlesource.com/485521 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44800}
23 lines
607 B
JavaScript
23 lines
607 B
JavaScript
// 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, imports, buffer) {
|
|
"use asm";
|
|
var x = new stdlib.Int8Array(buffer);
|
|
function f() {
|
|
return x[0] | 0;
|
|
}
|
|
return { f:f };
|
|
}
|
|
|
|
var b = new ArrayBuffer(1024);
|
|
var m1 = Module({ Int8Array:Int8Array }, {}, b);
|
|
assertEquals(0, m1.f());
|
|
|
|
var was_called = 0;
|
|
function observer() { was_called++; return [23]; }
|
|
var m2 = Module({ Int8Array:observer }, {}, b);
|
|
assertEquals(1, was_called);
|
|
assertEquals(23, m2.f());
|