9d836ec64a
This patch sets `this` to be undefined when calling resolve and reject functions attached to the deferred. BUG=v8:5476 Review-Url: https://codereview.chromium.org/2399053003 Cr-Commit-Position: refs/heads/master@{#40056}
17 lines
553 B
JavaScript
17 lines
553 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.
|
|
'use strict'
|
|
|
|
class LeakyPromise extends Promise {
|
|
constructor(executor) {
|
|
super((resolve, reject) => { resolve();});
|
|
this.resolve = function() {assertEquals(this, undefined); };
|
|
this.reject = function() {assertEquals(this, undefined); };
|
|
executor(this.resolve, this.reject);
|
|
}
|
|
}
|
|
|
|
const p1 = new LeakyPromise((r) => r());
|
|
const p2 = new LeakyPromise((_, r) => r());
|