1'use strict'; 2const common = require('../common'); 3const assert = require('assert'); 4const { promiseHooks } = require('v8'); 5 6assert.throws(() => { 7 promiseHooks.onBefore(async function() { }); 8}, /The "beforeHook" argument must be of type function/); 9 10assert.throws(() => { 11 promiseHooks.onBefore(async function*() { }); 12}, /The "beforeHook" argument must be of type function/); 13 14let seen; 15 16const stop = promiseHooks.onBefore(common.mustCall((promise) => { 17 seen = promise; 18}, 1)); 19 20const promise = Promise.resolve().then(() => { 21 assert.strictEqual(seen, promise); 22 stop(); 23}); 24 25promise.then(); 26 27assert.strictEqual(seen, undefined); 28