v8/test/mjsunit/harmony/async-await-no-constructor.js
gsathya 11359e331a [promises] Port ResolvePromise to TF
-- Moves promiseHasHandlerSymbol to inobject property
-- Ports PromiseResolveClosure to TF
-- Fix a non spec async-await test which fails now because we do a map
check for native promise check (instead of IsPromise). Changing the
constructor (in the test) invalidates the map check.

This patch results in a 7.1% performance improvement in the bluebird
benchmark (over 5 runs).

BUG=v8:5343

Review-Url: https://codereview.chromium.org/2541283002
Cr-Commit-Position: refs/heads/master@{#41569}
2016-12-08 06:12:48 +00:00

28 lines
564 B
JavaScript

// 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 --allow-natives-syntax
'use strict';
var resolved = Promise.resolve();
var count = 0;
Object.defineProperty(Promise.prototype, 'constructor',
{ get() { count++; return Promise; } })
async function foo() {
await resolved;
return resolved;
}
async function bar() {
throw 1;
}
foo();
bar();
%RunMicrotasks();
assertEquals(1, count);