mirror of
https://github.com/denoland/deno.git
synced 2025-08-03 18:38:33 +00:00
feat: add performance user timing APIs (#6421)
This commit is contained in:
parent
d01eb6d9c5
commit
40d081d3d9
17 changed files with 536 additions and 26 deletions
|
@ -1,5 +1,10 @@
|
|||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
|
||||
import { unitTest, assert, createResolvable } from "./test_util.ts";
|
||||
import {
|
||||
unitTest,
|
||||
assert,
|
||||
assertEquals,
|
||||
createResolvable,
|
||||
} from "./test_util.ts";
|
||||
|
||||
unitTest({ perms: { hrtime: false } }, async function performanceNow(): Promise<
|
||||
void
|
||||
|
@ -13,3 +18,42 @@ unitTest({ perms: { hrtime: false } }, async function performanceNow(): Promise<
|
|||
}, 10);
|
||||
await resolvable;
|
||||
});
|
||||
|
||||
unitTest(function performanceMark() {
|
||||
const mark = performance.mark("test");
|
||||
assert(mark instanceof PerformanceMark);
|
||||
assertEquals(mark.detail, null);
|
||||
assertEquals(mark.name, "test");
|
||||
assertEquals(mark.entryType, "mark");
|
||||
assert(mark.startTime > 0);
|
||||
assertEquals(mark.duration, 0);
|
||||
const entries = performance.getEntries();
|
||||
assert(entries[entries.length - 1] === mark);
|
||||
const markEntries = performance.getEntriesByName("test", "mark");
|
||||
assert(markEntries[markEntries.length - 1] === mark);
|
||||
});
|
||||
|
||||
unitTest(function performanceMeasure() {
|
||||
const mark = performance.mark("test");
|
||||
return new Promise((resolve, reject) => {
|
||||
setTimeout(() => {
|
||||
try {
|
||||
const measure = performance.measure("test", "test");
|
||||
assert(measure instanceof PerformanceMeasure);
|
||||
assertEquals(measure.detail, null);
|
||||
assertEquals(measure.name, "test");
|
||||
assertEquals(measure.entryType, "measure");
|
||||
assert(measure.startTime > 0);
|
||||
assertEquals(mark.startTime, measure.startTime);
|
||||
assert(measure.duration >= 100 && measure.duration < 200);
|
||||
const entries = performance.getEntries();
|
||||
assert(entries[entries.length - 1] === measure);
|
||||
const measureEntries = performance.getEntriesByName("test", "measure");
|
||||
assert(measureEntries[measureEntries.length - 1] === measure);
|
||||
} catch (e) {
|
||||
return reject(e);
|
||||
}
|
||||
resolve();
|
||||
}, 100);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue