2017-07-14 17:37:24 +02:00
|
|
|
// Copyright (C) 2017 Ecma International. All rights reserved.
|
|
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
|
|
description: |
|
|
|
|
Used in website/scripts/sth.js
|
2019-09-25 02:22:26 +02:00
|
|
|
defines: [setTimeout]
|
2017-07-14 17:37:24 +02:00
|
|
|
---*/
|
2014-07-15 22:47:59 +02:00
|
|
|
//setTimeout is not available, hence this script was loaded
|
2017-04-13 16:37:32 +02:00
|
|
|
if (Promise === undefined && this.setTimeout === undefined) {
|
|
|
|
if(/\$DONE()/.test(code))
|
|
|
|
$ERROR("Async test capability is not supported in your test environment");
|
2014-07-15 22:47:59 +02:00
|
|
|
}
|
|
|
|
|
2017-04-13 16:37:32 +02:00
|
|
|
if (Promise !== undefined && this.setTimeout === undefined) {
|
|
|
|
(function(that) {
|
|
|
|
that.setTimeout = function(callback, delay) {
|
|
|
|
var p = Promise.resolve();
|
|
|
|
var start = Date.now();
|
|
|
|
var end = start + delay;
|
|
|
|
function check(){
|
|
|
|
var timeLeft = end - Date.now();
|
|
|
|
if(timeLeft > 0)
|
|
|
|
p.then(check);
|
|
|
|
else
|
|
|
|
callback();
|
|
|
|
}
|
|
|
|
p.then(check);
|
|
|
|
}
|
|
|
|
})(this);
|
|
|
|
}
|