node/test/parallel/test-eventtarget-brandcheck.js
James M Snell 4ec64e320f
events: add brand checks for detached accessors
PR-URL: https://github.com/nodejs/node/pull/39773
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2021-08-25 08:20:50 -07:00

70 lines
1.2 KiB
JavaScript

// Flags: --expose-internals
'use strict';
require('../common');
const assert = require('assert');
const {
Event,
EventTarget,
NodeEventTarget,
} = require('internal/event_target');
[
'target',
'currentTarget',
'srcElement',
'type',
'cancelable',
'defaultPrevented',
'timeStamp',
'returnValue',
'bubbles',
'composed',
'eventPhase',
].forEach((i) => {
assert.throws(() => Reflect.get(Event.prototype, i, {}), {
code: 'ERR_INVALID_THIS',
});
});
[
'stopImmediatePropagation',
'preventDefault',
'composedPath',
'cancelBubble',
'stopPropagation',
].forEach((i) => {
assert.throws(() => Reflect.apply(Event.prototype[i], [], {}), {
code: 'ERR_INVALID_THIS',
});
});
[
'addEventListener',
'removeEventListener',
'dispatchEvent',
].forEach((i) => {
assert.throws(() => Reflect.apply(EventTarget.prototype[i], [], {}), {
code: 'ERR_INVALID_THIS',
});
});
[
'setMaxListeners',
'getMaxListeners',
'eventNames',
'listenerCount',
'off',
'removeListener',
'on',
'addListener',
'once',
'emit',
'removeAllListeners',
].forEach((i) => {
assert.throws(() => Reflect.apply(NodeEventTarget.prototype[i], [], {}), {
code: 'ERR_INVALID_THIS',
});
});