Commit ad7939e7 authored by machenbach's avatar machenbach Committed by Commit bot

Revert of [test] add tests for async function stacktraces (patchset #1 id:1 of...

Revert of [test] add tests for async function stacktraces (patchset #1 id:1 of https://codereview.chromium.org/1995723004/ )

Reason for revert:
Breaks gc stress:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/3575

Original issue's description:
> [test] add tests for async function stacktraces
>
> BUG=v8:4483
> R=littledan@chromium.org
>
> Committed: https://crrev.com/02f228eccdfcfab4081c2494ade52e54702b692c
> Cr-Commit-Position: refs/heads/master@{#36365}

TBR=littledan@chromium.org,caitpotter88@gmail.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4483

Review-Url: https://codereview.chromium.org/1997453004
Cr-Commit-Position: refs/heads/master@{#36369}
parent 3f6b081a
// Copyright 2016 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: --harmony-async-await
async function test(func, funcs) {
try {
await func();
throw new Error("Expected " + func.toString() + " to throw");
} catch (e) {
var stack = e.stack.split('\n').
slice(1).
map(line => line.trim()).
map(line => line.match(/at (?:(.*) )?.*$/)[1]).
filter(x => typeof x === 'string' && x.length);
assertEquals(funcs, stack, `Unexpected stack trace ${e.stack}`);
}
}
function thrower() { throw new Error("NOPE"); }
function reject() { return Promise.reject(new Error("NOPE")); }
async function runTests() {
await test(async function a() {
throw new Error("FAIL");
},
["a", "test", "runTests"]);
await test(async function a2() {
await 1;
throw new Error("FAIL");
}, ["a2"]);
await test(async function a3() {
await 1;
try { await thrower(); } catch (e) { throw new Error("FAIL"); }
}, ["a3"]);
await test(async function a4() {
await 1;
try { await reject(); } catch (e) { throw new Error("FAIL"); }
}, ["a4"]);
await test({ async b() {
throw new Error("FAIL");
}}.b,
["b", "test", "runTests"]);
await test({ async b2() {
await 1;
throw new Error("FAIL");
}}.b2, ["b2"]);
await test({ async b3() {
await 1;
try { await thrower(); } catch (e) { throw new Error("FAIL"); }
} }.b3, ["b3"]);
await test({ async b4() {
await 1;
try { await reject(); } catch (e) { throw new Error("FAIL"); }
} }.b4, ["b4"]);
await test((new class { async c() {
throw new Error("FAIL");
} }).c,
["c", "test", "runTests"]);
await test((new class { async c2() {
await 1;
throw new Error("FAIL");
} }).c2, ["c2"]);
await test((new class { async c3() {
await 1;
try { await thrower(); } catch (e) { throw new Error("FAIL"); }
} }).c3, ["c3"]);
await test((new class { async c4() {
await 1;
try { await reject(); } catch (e) { throw new Error("FAIL"); }
} }).c4, ["c4"]);
// TODO(caitp): `async` probably shouldn't be the inferred name for async
// arrow functions...
await test(async() => { throw new Error("FAIL") },
["async", "test", "runTests"]);
await test(async() => { await 1; throw new Error("FAIL") }, ["async"]);
await test(async() => {
await 1;
try {
await thrower();
} catch (e) {
throw new Error("FAIL");
}
}, ["e"]); // TODO(caitp): FuncNameInferer is doing some weird stuff...
await test(async() => {
await 1;
try {
await reject();
} catch (e) {
throw new Error("FAIL");
}
}, ["e"]);
}
runTests().catch(e => {
print(e);
quit(1);
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment