diff options
author | Bartek Iwańczuk <biwanczuk@gmail.com> | 2023-08-20 12:02:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-20 10:02:47 +0000 |
commit | 32bbba3db29d503a681ad1617901ce9a0e908e86 (patch) | |
tree | 2632bed2404893619440c7c43488a64a4c25454d | |
parent | 7847de0974889ac265f9c1ce246588f6c7ddde22 (diff) |
perf(ext/event): always set timeStamp to 0 (#20191)
```js
Deno.bench(function eventNew() {
new Event("foo");
});
```
<b>main</b>
```
./target/release/deno bench event_bench.js
cpu: Apple M1 Max
runtime: deno 1.36.1 (aarch64-apple-darwin)
file:///Users/ib/dev/deno/event_bench.js
benchmark time (avg) iter/s (min … max) p75 p99 p995
--------------------------------------------------------------- -----------------------------
eventNew 36.43 ns/iter 27,451,874.9 (35.15 ns … 46.98 ns) 37.68 ns 40.7 ns 41.69 ns
```
<b>this PR</b>
```
./target/release/deno bench event_bench.js
cpu: Apple M1 Max
runtime: deno 1.36.1 (aarch64-apple-darwin)
file:///Users/ib/dev/deno/event_bench.js
benchmark time (avg) iter/s (min … max) p75 p99 p995
--------------------------------------------------------------- -----------------------------
eventNew 13.71 ns/iter 72,958,970.0 (12.85 ns … 31.79 ns) 15.11 ns 16.49 ns 17.5 ns
```
Towards #20167
-rw-r--r-- | ext/web/02_event.js | 22 | ||||
-rw-r--r-- | ext/websocket/01_websocket.js | 2 |
2 files changed, 1 insertions, 23 deletions
diff --git a/ext/web/02_event.js b/ext/web/02_event.js index 2be800367..80dc4ffc7 100644 --- a/ext/web/02_event.js +++ b/ext/web/02_event.js @@ -21,7 +21,6 @@ const { ArrayPrototypeSplice, ArrayPrototypeUnshift, Boolean, - DateNow, Error, FunctionPrototypeCall, MapPrototypeGet, @@ -123,8 +122,6 @@ const _inPassiveListener = Symbol("[[inPassiveListener]]"); const _dispatched = Symbol("[[dispatched]]"); const _isTrusted = Symbol("[[isTrusted]]"); const _path = Symbol("[[path]]"); -// internal. -const _skipInternalInit = Symbol("[[skipSlowInit]]"); class Event { constructor(type, eventInitDict = {}) { @@ -138,21 +135,6 @@ class Event { this[_isTrusted] = false; this[_path] = []; - if (eventInitDict?.[_skipInternalInit]) { - this[_attributes] = { - type, - data: eventInitDict.data ?? null, - bubbles: eventInitDict.bubbles ?? false, - cancelable: eventInitDict.cancelable ?? false, - composed: eventInitDict.composed ?? false, - currentTarget: null, - eventPhase: Event.NONE, - target: null, - timeStamp: 0, - }; - return; - } - webidl.requiredArguments( arguments.length, 1, @@ -172,7 +154,7 @@ class Event { currentTarget: null, eventPhase: Event.NONE, target: null, - timeStamp: DateNow(), + timeStamp: 0, }; } @@ -1205,7 +1187,6 @@ class MessageEvent extends Event { bubbles: eventInitDict?.bubbles ?? false, cancelable: eventInitDict?.cancelable ?? false, composed: eventInitDict?.composed ?? false, - [_skipInternalInit]: eventInitDict?.[_skipInternalInit], }); this.data = eventInitDict?.data ?? null; @@ -1494,7 +1475,6 @@ function reportError(error) { } export { - _skipInternalInit, CloseEvent, CustomEvent, defineEventHandler, diff --git a/ext/websocket/01_websocket.js b/ext/websocket/01_websocket.js index 71abb0830..bb1624f22 100644 --- a/ext/websocket/01_websocket.js +++ b/ext/websocket/01_websocket.js @@ -9,7 +9,6 @@ import * as webidl from "ext:deno_webidl/00_webidl.js"; import { HTTP_TOKEN_CODE_POINT_RE } from "ext:deno_web/00_infra.js"; import DOMException from "ext:deno_web/01_dom_exception.js"; import { - _skipInternalInit, CloseEvent, defineEventHandler, dispatch, @@ -450,7 +449,6 @@ class WebSocket extends EventTarget { const event = new MessageEvent("message", { data, origin: this[_url], - [_skipInternalInit]: true, }); setIsTrusted(event, true); dispatch(this, event); |