User Timing IDL tests


PASS Partial interface Performance: original interface defined
PASS Partial interface Performance: member names are unique
PASS Performance interface: operation mark(DOMString)
PASS Performance interface: operation clearMarks(optional DOMString)
PASS Performance interface: operation measure(DOMString, optional DOMString, optional DOMString)
PASS Performance interface: operation clearMeasures(optional DOMString)
PASS Performance interface: window.performance must inherit property "mark(DOMString)" with the proper type
PASS Performance interface: calling mark(DOMString) on window.performance with too few arguments must throw TypeError
PASS Performance interface: window.performance must inherit property "clearMarks(optional DOMString)" with the proper type
PASS Performance interface: calling clearMarks(optional DOMString) on window.performance with too few arguments must throw TypeError
PASS Performance interface: window.performance must inherit property "measure(DOMString, optional DOMString, optional DOMString)" with the proper type
PASS Performance interface: calling measure(DOMString, optional DOMString, optional DOMString) on window.performance with too few arguments must throw TypeError
PASS Performance interface: window.performance must inherit property "clearMeasures(optional DOMString)" with the proper type
PASS Performance interface: calling clearMeasures(optional DOMString) on window.performance with too few arguments must throw TypeError
PASS PerformanceMark interface: existence and properties of interface object
PASS PerformanceMark interface object length
PASS PerformanceMark interface object name
PASS PerformanceMark interface: existence and properties of interface prototype object
PASS PerformanceMark interface: existence and properties of interface prototype object's "constructor" property
PASS PerformanceMark interface: existence and properties of interface prototype object's @@unscopables property
PASS PerformanceMeasure interface: existence and properties of interface object
PASS PerformanceMeasure interface object length
PASS PerformanceMeasure interface object name
PASS PerformanceMeasure interface: existence and properties of interface prototype object
PASS PerformanceMeasure interface: existence and properties of interface prototype object's "constructor" property
PASS PerformanceMeasure interface: existence and properties of interface prototype object's @@unscopables property
partial interface Performance {
    void mark(DOMString markName);
    void clearMarks(optional  DOMString markName);

    void measure(DOMString measureName, optional DOMString startMark, optional DOMString endMark);
    void clearMeasures(optional DOMString measureName);
};

[Exposed=(Window,Worker)]
interface PerformanceMark : PerformanceEntry {
};

[Exposed=(Window,Worker)]
interface PerformanceMeasure : PerformanceEntry {
};


