node/test/parallel/test-eventtarget-brandcheck.js
Daeyeon Jeong cbbd91d804
events: add CustomEvent
This implements the Web API `CustomEvent` in `internal/event_target`.

Signed-off-by: Daeyeon Jeong daeyeon.dev@gmail.com

PR-URL: https://github.com/nodejs/node/pull/43514
Refs: https://github.com/nodejs/node/issues/40678
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2022-07-17 12:27:49 +01:00

98 lines
1.8 KiB
JavaScript

// Flags: --expose-internals
'use strict';
require('../common');
const assert = require('assert');
const {
Event,
CustomEvent,
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',
});
});
[
'target',
'currentTarget',
'srcElement',
'type',
'cancelable',
'defaultPrevented',
'timeStamp',
'returnValue',
'bubbles',
'composed',
'eventPhase',
'detail',
].forEach((i) => {
assert.throws(() => Reflect.get(CustomEvent.prototype, i, {}), {
code: 'ERR_INVALID_THIS',
});
});
[
'stopImmediatePropagation',
'preventDefault',
'composedPath',
'cancelBubble',
'stopPropagation',
].forEach((i) => {
assert.throws(() => Reflect.apply(CustomEvent.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',
});
});