v8/test/mjsunit/regress/regress-5476.js
gsathya 9d836ec64a [promises] fix deferred object leak
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}
2016-10-06 18:29:35 +00:00

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());