-
Notifications
You must be signed in to change notification settings - Fork 47
/
ve.js
31 lines (28 loc) · 816 Bytes
/
ve.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*!
* VisualEditor namespace.
*
* @copyright See AUTHORS.txt
*/
/**
* Namespace for all VisualEditor classes, static methods and static properties.
*
* @namespace ve
*/
window.ve = {};
/**
* Get the current time, measured in milliseconds since January 1, 1970 (UTC).
*
* @return {number} Current time, monotonic in modern browsers (via Performance Timeline API)
*/
ve.now = function () {
// Based on `mw.now` in MediaWiki core.
// Optimisation: Cache and re-use the chosen implementation.
// Optimisation: Avoid startup overhead by re-defining on first call instead of IIFE.
const perf = window.performance;
const navStart = perf && perf.timing && perf.timing.navigationStart;
ve.now = navStart && perf.now ?
function () {
return navStart + perf.now();
} : Date.now;
return ve.now();
};