diff options
author | Dmitry Sharshakov <sh7dm@outlook.com> | 2019-02-02 09:27:42 +0300 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-02-02 01:27:42 -0500 |
commit | 16ed1f2545b34851ebdb9095251236fb51e39f5d (patch) | |
tree | ef88386129adefaf0ed22f150dff01b1f134563e /js/performance.ts | |
parent | e5899b14e268b6b636b04b8f5a78df4c23e00478 (diff) |
Add performance.now (#1633)
Diffstat (limited to 'js/performance.ts')
-rw-r--r-- | js/performance.ts | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/js/performance.ts b/js/performance.ts new file mode 100644 index 000000000..73378b15c --- /dev/null +++ b/js/performance.ts @@ -0,0 +1,29 @@ +// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. +import * as msg from "gen/msg_generated"; +import { sendSync } from "./dispatch"; +import * as flatbuffers from "./flatbuffers"; +import { assert } from "./util"; + +export class Performance { + timeOrigin = 0; + + constructor() { + this.timeOrigin = new Date().getTime(); + } + + /** Returns a current time from Deno's start + * + * const t = performance.now(); + * console.log(`${t} ms since start!`); + */ + now(): number { + const builder = flatbuffers.createBuilder(); + msg.Now.startNow(builder); + const inner = msg.Now.endNow(builder); + const baseRes = sendSync(builder, msg.Any.Now, inner)!; + assert(msg.Any.NowRes === baseRes.innerType()); + const res = new msg.NowRes(); + assert(baseRes.inner(res) != null); + return res.time().toFloat64() - this.timeOrigin; + } +} |