%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common'); const assert = require('assert'); const { promiseHooks } = require('v8'); assert.throws(() => { promiseHooks.onSettled(async function() { }); }, /The "settledHook" argument must be of type function/); assert.throws(() => { promiseHooks.onSettled(async function*() { }); }, /The "settledHook" argument must be of type function/); let seen; const stop = promiseHooks.onSettled(common.mustCall((promise) => { seen = promise; }, 4)); // Constructor resolve triggers hook const promise = new Promise((resolve, reject) => { assert.strictEqual(seen, undefined); setImmediate(() => { resolve(); assert.strictEqual(seen, promise); seen = undefined; constructorReject(); }); }); // Constructor reject triggers hook function constructorReject() { const promise = new Promise((resolve, reject) => { assert.strictEqual(seen, undefined); setImmediate(() => { reject(); assert.strictEqual(seen, promise); seen = undefined; simpleResolveReject(); }); }); promise.catch(() => {}); } // Sync resolve/reject helpers trigger hook function simpleResolveReject() { const resolved = Promise.resolve(); assert.strictEqual(seen, resolved); seen = undefined; const rejected = Promise.reject(); assert.strictEqual(seen, rejected); seen = undefined; stop(); rejected.catch(() => {}); }