ac73e1d52b
This is a reland of a9e93572d4
Original change's description:
> [test] Check for illegal uses of mjsunit methods
>
> The assertThrows and assertDoesNotThrow methods expect either a
> function to execute, or a string to eval. In several tests however we
> accidentally passed the *result* of the statement to be tested instead
> of the code.
> This CL adds check to catch such error early, and removes wrong uses.
> In most places, we do not need to use assertDoesNotThrow anyway,
> because exceptions are handled as test failures.
>
> Drive-by: Unify catch syntax in mjsunit.js and make sure to propagate
> MjsUnitAssertionErrors correctly.
>
> R=mathias@chromium.org
>
> Bug: v8:8562
> Change-Id: I88894a667cbe0570774f748a9a23e8a527887a49
> Reviewed-on: https://chromium-review.googlesource.com/c/1439238
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59277}
Bug: v8:8562
Change-Id: I3b26935f7b35302d499266155273ea271bf8151d
Reviewed-on: https://chromium-review.googlesource.com/c/1449792
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59328}
26 lines
710 B
JavaScript
26 lines
710 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.
|
|
|
|
// Flags: --allow-natives-syntax
|
|
|
|
function MODULE() {
|
|
"use asm";
|
|
function f() {
|
|
bogus_function_table[0 & LIMIT]();
|
|
}
|
|
return { f:f };
|
|
}
|
|
|
|
var bogus_function_table = [ Object ];
|
|
var test_set = [ 0x3fffffff, 0x7fffffff, 0xffffffff ];
|
|
for (var i = 0; i < test_set.length; ++i) {
|
|
bogus_function_table[i] = Object;
|
|
var src = MODULE.toString();
|
|
src = src.replace(/MODULE/g, "Module" + i);
|
|
src = src.replace(/LIMIT/g, test_set[i]);
|
|
var module = eval("(" + src + ")");
|
|
module(this).f();
|
|
assertFalse(%IsAsmWasmCode(module));
|
|
}
|