Basic Interface test for High Resolution Time APIs.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Performance
PASS Performance is defined.
PASS Performance.prototype.now is defined.
PASS new Performance() threw exception TypeError: function is not a constructor (evaluating 'new Performance()').
performance
PASS performance is defined.
PASS performance instanceof Performance is true
PASS typeof performance.now() === "number" is true
PASS performance.now() <= performance.now() is true
PASS delta >= 95 && delta <= 120 is true

Starting worker: resources/now-api.js
[Worker] Performance
PASS [Worker] Performance is defined.
PASS [Worker] Performance.prototype.now is defined.
PASS [Worker] new Performance() threw exception TypeError: function is not a constructor (evaluating 'new Performance()').
[Worker] performance
PASS [Worker] performance is defined.
PASS [Worker] performance instanceof Performance is true
PASS [Worker] typeof performance.now() === "number" is true
PASS [Worker] performance.now() <= performance.now() is true
PASS [Worker] delta >= 95 && delta <= 120 is true
PASS successfullyParsed is true

TEST COMPLETE

