n now(); } setResourceTimingBufferSize(maxSize) { validateInternalField(this, kPerformanceBrand, 'Performance'); if (arguments.length === 0) { throw new ERR_MISSING_ARGS('maxSize'); } // unsigned long maxSize = convertToInt('maxSize', maxSize, 32); return setResourceTimingBufferSize(maxSize); } get timeOrigin() { validateInternalField(this, kPerformanceBrand, 'Performance'); return getTimeOriginTimestamp(); } toJSON() { validateInternalField(this, kPerformanceBrand, 'Performance'); return { nodeTiming: this.nodeTiming, timeOrigin: this.timeOrigin, eventLoopUtilization: this.eventLoopUtilization(), }; } } ObjectDefineProperties(Performance.prototype, { clearMarks: kEnumerableProperty, clearMeasures: kEnumerableProperty, clearResourceTimings: kEnumerableProperty, getEntries: kEnumerableProperty, getEntriesByName: kEnumerableProperty, getEntriesByType: kEnumerableProperty, mark: kEnumerableProperty, measure: kEnumerableProperty, now: kEnumerableProperty, timeOrigin: kEnumerableProperty, toJSON: kEnumerableProperty, setResourceTimingBufferSize: kEnumerableProperty, [SymbolToStringTag]: { __proto__: null, writable: false, enumerable: false, configurable: true, value: 'Performance', }, // Node.js specific extensions. eventLoopUtilization: { __proto__: null, configurable: true, // Node.js specific extensions. enumerable: false, writable: true, value: eventLoopUtilization, }, nodeTiming: { __proto__: null, configurable: true, // Node.js specific extensions. enumerable: false, writable: true, value: nodeTiming, }, // In the browser, this function is not public. However, it must be used inside fetch // which is a Node.js dependency, not a internal module markResourceTiming: { __proto__: null, configurable: true, // Node.js specific extensions. enumerable: false, writable: true, value: markResourceTiming, }, timerify: { __proto__: null, configurable: true, // Node.js specific extensions. enumerable: false, writable: true, value: timerify, }, }); defineEventHandler(Performance.prototype, 'resourcetimingbufferfull'); function createPerformance() { return ReflectConstruct(function Performance() { initEventTarget(this); this[kPerformanceBrand] = true; }, [], Performance); } const performance = createPerformance(); function dispatchBufferFull(type) { const event = new Event(type, { [kTrustEvent]: true, }); performance.dispatchEvent(event); } setDispatchBufferFull(dispatchBufferFull); module.exports = { Performance, performance, };