@webex/test-helper-mock-web-socket 2.59.3-next.1 → 2.59.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +6 -6
- package/README.md +31 -31
- package/babel.config.js +3 -3
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/jest.config.js +3 -3
- package/package.json +11 -12
- package/process +1 -1
- package/src/index.js +134 -134
package/.eslintrc.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const config = {
|
|
2
|
-
root: true,
|
|
3
|
-
extends: ['@webex/eslint-config-legacy'],
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
module.exports = config;
|
|
1
|
+
const config = {
|
|
2
|
+
root: true,
|
|
3
|
+
extends: ['@webex/eslint-config-legacy'],
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
module.exports = config;
|
package/README.md
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
# @webex/test-helper-mock-web-socket
|
|
2
|
-
|
|
3
|
-
[](https://github.com/RichardLitt/standard-readme)
|
|
4
|
-
|
|
5
|
-
>
|
|
6
|
-
|
|
7
|
-
- [Install](#install)
|
|
8
|
-
- [Usage](#usage)
|
|
9
|
-
- [Contribute](#contribute)
|
|
10
|
-
- [Maintainers](#maintainers)
|
|
11
|
-
- [License](#license)
|
|
12
|
-
|
|
13
|
-
## Install
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npm install --save @webex/test-helper-mock-web-socket
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Usage
|
|
20
|
-
|
|
21
|
-
## Maintainers
|
|
22
|
-
|
|
23
|
-
This package is maintained by [Cisco Webex for Developers](https://developer.webex.com/).
|
|
24
|
-
|
|
25
|
-
## Contribute
|
|
26
|
-
|
|
27
|
-
Pull requests welcome. Please see [CONTRIBUTING.md](https://github.com/webex/webex-js-sdk/blob/master/CONTRIBUTING.md) for more details.
|
|
28
|
-
|
|
29
|
-
## License
|
|
30
|
-
|
|
31
|
-
© 2016-2020 Cisco and/or its affiliates. All Rights Reserved.
|
|
1
|
+
# @webex/test-helper-mock-web-socket
|
|
2
|
+
|
|
3
|
+
[](https://github.com/RichardLitt/standard-readme)
|
|
4
|
+
|
|
5
|
+
>
|
|
6
|
+
|
|
7
|
+
- [Install](#install)
|
|
8
|
+
- [Usage](#usage)
|
|
9
|
+
- [Contribute](#contribute)
|
|
10
|
+
- [Maintainers](#maintainers)
|
|
11
|
+
- [License](#license)
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install --save @webex/test-helper-mock-web-socket
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
## Maintainers
|
|
22
|
+
|
|
23
|
+
This package is maintained by [Cisco Webex for Developers](https://developer.webex.com/).
|
|
24
|
+
|
|
25
|
+
## Contribute
|
|
26
|
+
|
|
27
|
+
Pull requests welcome. Please see [CONTRIBUTING.md](https://github.com/webex/webex-js-sdk/blob/master/CONTRIBUTING.md) for more details.
|
|
28
|
+
|
|
29
|
+
## License
|
|
30
|
+
|
|
31
|
+
© 2016-2020 Cisco and/or its affiliates. All Rights Reserved.
|
package/babel.config.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const babelConfigLegacy = require('@webex/babel-config-legacy');
|
|
2
|
-
|
|
3
|
-
module.exports = babelConfigLegacy;
|
|
1
|
+
const babelConfigLegacy = require('@webex/babel-config-legacy');
|
|
2
|
+
|
|
3
|
+
module.exports = babelConfigLegacy;
|
package/dist/index.js
CHANGED
|
@@ -39,9 +39,9 @@ function setHandler(scope, map, type, fn) {
|
|
|
39
39
|
// eslint-disable-next-line
|
|
40
40
|
function noop() {}
|
|
41
41
|
|
|
42
|
-
/**
|
|
43
|
-
* Mock of WebSocket Class
|
|
44
|
-
* @returns {MockWebSocket}
|
|
42
|
+
/**
|
|
43
|
+
* Mock of WebSocket Class
|
|
44
|
+
* @returns {MockWebSocket}
|
|
45
45
|
*/
|
|
46
46
|
var MockWebSocket = /*#__PURE__*/function (_EventEmitter) {
|
|
47
47
|
(0, _inherits2.default)(MockWebSocket, _EventEmitter);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","require","_sinon","_interopRequireDefault","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","closeHandlers","_weakMap","errorHandlers","messageHandlers","openHandlers","setHandler","scope","map","type","fn","handler","get","removeListener","set","on","noop","MockWebSocket","_EventEmitter","_inherits2","_super","url","_this","protocol","length","undefined","options","_classCallCheck2","sinon","spy","_assertThisInitialized2","sequenceNumber","_createClass2","key","value","close","code","reason","readyState","onclose","open","_this2","emit","process","nextTick","data","_stringify","id","eventType","send","obj","_this3","JSON","parse","addEventListener","removeEventListener","EventEmitter","exports"],"sources":["index.js"],"sourcesContent":["/*!\
|
|
1
|
+
{"version":3,"names":["_events","require","_sinon","_interopRequireDefault","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","closeHandlers","_weakMap","errorHandlers","messageHandlers","openHandlers","setHandler","scope","map","type","fn","handler","get","removeListener","set","on","noop","MockWebSocket","_EventEmitter","_inherits2","_super","url","_this","protocol","length","undefined","options","_classCallCheck2","sinon","spy","_assertThisInitialized2","sequenceNumber","_createClass2","key","value","close","code","reason","readyState","onclose","open","_this2","emit","process","nextTick","data","_stringify","id","eventType","send","obj","_this3","JSON","parse","addEventListener","removeEventListener","EventEmitter","exports"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {EventEmitter} from 'events';\n\nimport sinon from 'sinon';\n\n/* eslint require-jsdoc: [0] */\n\nconst closeHandlers = new WeakMap();\nconst errorHandlers = new WeakMap();\nconst messageHandlers = new WeakMap();\nconst openHandlers = new WeakMap();\n\nfunction setHandler(scope, map, type, fn) {\n const handler = map.get(scope);\n\n if (handler) {\n scope.removeListener(type, handler);\n }\n map.set(scope, fn);\n if (fn) {\n scope.on(type, fn);\n }\n}\n\n// eslint-disable-next-line\nfunction noop() {}\n\n/**\n * Mock of WebSocket Class\n * @returns {MockWebSocket}\n */\nexport default class MockWebSocket extends EventEmitter {\n constructor(url, protocol = [], options = {}) {\n super();\n this.url = url;\n this.protocol = protocol;\n this.options = options;\n\n sinon.spy(this, 'send');\n sinon.spy(this, 'close');\n\n this.sequenceNumber = 0;\n\n this.on('message', () => {\n this.sequenceNumber += 1;\n });\n }\n\n get onclose() {\n return closeHandlers.get(this) || noop;\n }\n\n set onclose(fn) {\n setHandler(this, closeHandlers, 'close', fn);\n }\n\n get onerror() {\n return errorHandlers.get(this) || noop;\n }\n\n set onerror(fn) {\n setHandler(this, errorHandlers, 'error', fn);\n }\n\n get onmessage() {\n return messageHandlers.get(this) || noop;\n }\n\n set onmessage(fn) {\n setHandler(this, messageHandlers, 'message', fn);\n }\n\n get onopen() {\n return openHandlers.get(this) || noop;\n }\n\n set onopen(fn) {\n setHandler(this, openHandlers, 'open', fn);\n }\n\n close(code, reason) {\n this.readyState = 3;\n this.readyState = 4;\n this.onclose({\n code,\n reason,\n });\n }\n\n open() {\n this.readyState = 1;\n this.emit('open');\n process.nextTick(() => {\n this.emit('message', {\n data: JSON.stringify({\n id: 'mockid',\n data: {\n eventType: 'mercury.buffer_state',\n },\n }),\n });\n });\n }\n\n send(obj) {\n try {\n obj = JSON.parse(obj);\n } catch (e) {\n // ignore\n }\n if (obj.type === 'ping') {\n process.nextTick(() => {\n this.emit('message', {\n data: JSON.stringify({\n id: obj.id,\n type: 'pong',\n sequenceNumber: this.sequenceNumber,\n }),\n });\n });\n }\n }\n\n addEventListener(...args) {\n return this.on(...args);\n }\n\n removeEventListener(...args) {\n return this.removeListener(...args);\n }\n}\n"],"mappings":"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"}
|
package/jest.config.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const config = require('@webex/jest-config-legacy');
|
|
2
|
-
|
|
3
|
-
module.exports = config;
|
|
1
|
+
const config = require('@webex/jest-config-legacy');
|
|
2
|
+
|
|
3
|
+
module.exports = config;
|
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/test-helper-mock-web-socket",
|
|
3
|
+
"version": "2.59.4",
|
|
3
4
|
"description": "",
|
|
4
5
|
"license": "MIT",
|
|
5
6
|
"main": "dist/index.js",
|
|
@@ -20,14 +21,14 @@
|
|
|
20
21
|
},
|
|
21
22
|
"devDependencies": {
|
|
22
23
|
"@babel/core": "^7.17.10",
|
|
23
|
-
"@webex/babel-config-legacy": "
|
|
24
|
-
"@webex/eslint-config-legacy": "
|
|
25
|
-
"@webex/jest-config-legacy": "
|
|
26
|
-
"@webex/legacy-tools": "
|
|
27
|
-
"@webex/test-helper-chai": "
|
|
28
|
-
"@webex/test-helper-mocha": "
|
|
29
|
-
"@webex/test-helper-mock-webex": "
|
|
30
|
-
"@webex/test-helper-test-users": "
|
|
24
|
+
"@webex/babel-config-legacy": "2.59.4",
|
|
25
|
+
"@webex/eslint-config-legacy": "2.59.4",
|
|
26
|
+
"@webex/jest-config-legacy": "2.59.4",
|
|
27
|
+
"@webex/legacy-tools": "2.59.4",
|
|
28
|
+
"@webex/test-helper-chai": "2.59.4",
|
|
29
|
+
"@webex/test-helper-mocha": "2.59.4",
|
|
30
|
+
"@webex/test-helper-mock-webex": "2.59.4",
|
|
31
|
+
"@webex/test-helper-test-users": "2.59.4",
|
|
31
32
|
"eslint": "^8.24.0",
|
|
32
33
|
"prettier": "^2.7.1",
|
|
33
34
|
"sinon": "^9.2.4"
|
|
@@ -35,12 +36,10 @@
|
|
|
35
36
|
"scripts": {
|
|
36
37
|
"build": "yarn build:src",
|
|
37
38
|
"build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
|
|
38
|
-
"deploy:npm": "yarn npm publish",
|
|
39
39
|
"test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
|
|
40
40
|
"test:browser": "webex-legacy-tools test --integration --unit --runner karma",
|
|
41
41
|
"test:integration": "webex-legacy-tools test --integration --runner mocha",
|
|
42
42
|
"test:style": "eslint ./src/**/*.*",
|
|
43
43
|
"test:unit": "webex-legacy-tools test --unit --runner jest"
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
}
|
|
44
|
+
}
|
|
45
|
+
}
|
package/process
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = {browser: true};
|
|
1
|
+
module.exports = {browser: true};
|
package/src/index.js
CHANGED
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import {EventEmitter} from 'events';
|
|
6
|
-
|
|
7
|
-
import sinon from 'sinon';
|
|
8
|
-
|
|
9
|
-
/* eslint require-jsdoc: [0] */
|
|
10
|
-
|
|
11
|
-
const closeHandlers = new WeakMap();
|
|
12
|
-
const errorHandlers = new WeakMap();
|
|
13
|
-
const messageHandlers = new WeakMap();
|
|
14
|
-
const openHandlers = new WeakMap();
|
|
15
|
-
|
|
16
|
-
function setHandler(scope, map, type, fn) {
|
|
17
|
-
const handler = map.get(scope);
|
|
18
|
-
|
|
19
|
-
if (handler) {
|
|
20
|
-
scope.removeListener(type, handler);
|
|
21
|
-
}
|
|
22
|
-
map.set(scope, fn);
|
|
23
|
-
if (fn) {
|
|
24
|
-
scope.on(type, fn);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// eslint-disable-next-line
|
|
29
|
-
function noop() {}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Mock of WebSocket Class
|
|
33
|
-
* @returns {MockWebSocket}
|
|
34
|
-
*/
|
|
35
|
-
export default class MockWebSocket extends EventEmitter {
|
|
36
|
-
constructor(url, protocol = [], options = {}) {
|
|
37
|
-
super();
|
|
38
|
-
this.url = url;
|
|
39
|
-
this.protocol = protocol;
|
|
40
|
-
this.options = options;
|
|
41
|
-
|
|
42
|
-
sinon.spy(this, 'send');
|
|
43
|
-
sinon.spy(this, 'close');
|
|
44
|
-
|
|
45
|
-
this.sequenceNumber = 0;
|
|
46
|
-
|
|
47
|
-
this.on('message', () => {
|
|
48
|
-
this.sequenceNumber += 1;
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
get onclose() {
|
|
53
|
-
return closeHandlers.get(this) || noop;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
set onclose(fn) {
|
|
57
|
-
setHandler(this, closeHandlers, 'close', fn);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
get onerror() {
|
|
61
|
-
return errorHandlers.get(this) || noop;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
set onerror(fn) {
|
|
65
|
-
setHandler(this, errorHandlers, 'error', fn);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
get onmessage() {
|
|
69
|
-
return messageHandlers.get(this) || noop;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
set onmessage(fn) {
|
|
73
|
-
setHandler(this, messageHandlers, 'message', fn);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
get onopen() {
|
|
77
|
-
return openHandlers.get(this) || noop;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
set onopen(fn) {
|
|
81
|
-
setHandler(this, openHandlers, 'open', fn);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
close(code, reason) {
|
|
85
|
-
this.readyState = 3;
|
|
86
|
-
this.readyState = 4;
|
|
87
|
-
this.onclose({
|
|
88
|
-
code,
|
|
89
|
-
reason,
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
open() {
|
|
94
|
-
this.readyState = 1;
|
|
95
|
-
this.emit('open');
|
|
96
|
-
process.nextTick(() => {
|
|
97
|
-
this.emit('message', {
|
|
98
|
-
data: JSON.stringify({
|
|
99
|
-
id: 'mockid',
|
|
100
|
-
data: {
|
|
101
|
-
eventType: 'mercury.buffer_state',
|
|
102
|
-
},
|
|
103
|
-
}),
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
send(obj) {
|
|
109
|
-
try {
|
|
110
|
-
obj = JSON.parse(obj);
|
|
111
|
-
} catch (e) {
|
|
112
|
-
// ignore
|
|
113
|
-
}
|
|
114
|
-
if (obj.type === 'ping') {
|
|
115
|
-
process.nextTick(() => {
|
|
116
|
-
this.emit('message', {
|
|
117
|
-
data: JSON.stringify({
|
|
118
|
-
id: obj.id,
|
|
119
|
-
type: 'pong',
|
|
120
|
-
sequenceNumber: this.sequenceNumber,
|
|
121
|
-
}),
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
addEventListener(...args) {
|
|
128
|
-
return this.on(...args);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
removeEventListener(...args) {
|
|
132
|
-
return this.removeListener(...args);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import {EventEmitter} from 'events';
|
|
6
|
+
|
|
7
|
+
import sinon from 'sinon';
|
|
8
|
+
|
|
9
|
+
/* eslint require-jsdoc: [0] */
|
|
10
|
+
|
|
11
|
+
const closeHandlers = new WeakMap();
|
|
12
|
+
const errorHandlers = new WeakMap();
|
|
13
|
+
const messageHandlers = new WeakMap();
|
|
14
|
+
const openHandlers = new WeakMap();
|
|
15
|
+
|
|
16
|
+
function setHandler(scope, map, type, fn) {
|
|
17
|
+
const handler = map.get(scope);
|
|
18
|
+
|
|
19
|
+
if (handler) {
|
|
20
|
+
scope.removeListener(type, handler);
|
|
21
|
+
}
|
|
22
|
+
map.set(scope, fn);
|
|
23
|
+
if (fn) {
|
|
24
|
+
scope.on(type, fn);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// eslint-disable-next-line
|
|
29
|
+
function noop() {}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Mock of WebSocket Class
|
|
33
|
+
* @returns {MockWebSocket}
|
|
34
|
+
*/
|
|
35
|
+
export default class MockWebSocket extends EventEmitter {
|
|
36
|
+
constructor(url, protocol = [], options = {}) {
|
|
37
|
+
super();
|
|
38
|
+
this.url = url;
|
|
39
|
+
this.protocol = protocol;
|
|
40
|
+
this.options = options;
|
|
41
|
+
|
|
42
|
+
sinon.spy(this, 'send');
|
|
43
|
+
sinon.spy(this, 'close');
|
|
44
|
+
|
|
45
|
+
this.sequenceNumber = 0;
|
|
46
|
+
|
|
47
|
+
this.on('message', () => {
|
|
48
|
+
this.sequenceNumber += 1;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
get onclose() {
|
|
53
|
+
return closeHandlers.get(this) || noop;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
set onclose(fn) {
|
|
57
|
+
setHandler(this, closeHandlers, 'close', fn);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
get onerror() {
|
|
61
|
+
return errorHandlers.get(this) || noop;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
set onerror(fn) {
|
|
65
|
+
setHandler(this, errorHandlers, 'error', fn);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
get onmessage() {
|
|
69
|
+
return messageHandlers.get(this) || noop;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
set onmessage(fn) {
|
|
73
|
+
setHandler(this, messageHandlers, 'message', fn);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
get onopen() {
|
|
77
|
+
return openHandlers.get(this) || noop;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
set onopen(fn) {
|
|
81
|
+
setHandler(this, openHandlers, 'open', fn);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
close(code, reason) {
|
|
85
|
+
this.readyState = 3;
|
|
86
|
+
this.readyState = 4;
|
|
87
|
+
this.onclose({
|
|
88
|
+
code,
|
|
89
|
+
reason,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
open() {
|
|
94
|
+
this.readyState = 1;
|
|
95
|
+
this.emit('open');
|
|
96
|
+
process.nextTick(() => {
|
|
97
|
+
this.emit('message', {
|
|
98
|
+
data: JSON.stringify({
|
|
99
|
+
id: 'mockid',
|
|
100
|
+
data: {
|
|
101
|
+
eventType: 'mercury.buffer_state',
|
|
102
|
+
},
|
|
103
|
+
}),
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
send(obj) {
|
|
109
|
+
try {
|
|
110
|
+
obj = JSON.parse(obj);
|
|
111
|
+
} catch (e) {
|
|
112
|
+
// ignore
|
|
113
|
+
}
|
|
114
|
+
if (obj.type === 'ping') {
|
|
115
|
+
process.nextTick(() => {
|
|
116
|
+
this.emit('message', {
|
|
117
|
+
data: JSON.stringify({
|
|
118
|
+
id: obj.id,
|
|
119
|
+
type: 'pong',
|
|
120
|
+
sequenceNumber: this.sequenceNumber,
|
|
121
|
+
}),
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
addEventListener(...args) {
|
|
128
|
+
return this.on(...args);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
removeEventListener(...args) {
|
|
132
|
+
return this.removeListener(...args);
|
|
133
|
+
}
|
|
134
|
+
}
|