62 lines
1.5 KiB
HTML
62 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<div id="description"></div>
|
|
<div id="console"></div>
|
|
<script>
|
|
window.jsTestIsAsync = true;
|
|
|
|
description('Test Promise.');
|
|
|
|
var thisInOnFulfilledSloppy;
|
|
var thisInOnRejectedSloppy;
|
|
|
|
var thisInOnFulfilledStrict;
|
|
var thisInOnRejectedStrict;
|
|
|
|
Promise.resolve().then(function () {
|
|
return Promise.resolve(42).then(function () {
|
|
testPassed('fulfilled');
|
|
window.thisInOnFulfilledSloppy = this;
|
|
shouldBe('thisInOnFulfilledSloppy', 'window');
|
|
}, function () {
|
|
testFailed('rejected');
|
|
});
|
|
}).then(function () {
|
|
return Promise.reject(42).then(function () {
|
|
testFailed('fulfilled');
|
|
}, function () {
|
|
testPassed('rejected');
|
|
window.thisInOnRejectedSloppy = this;
|
|
shouldBe('thisInOnRejectedSloppy', 'window');
|
|
});
|
|
}).then(function () {
|
|
return Promise.resolve(42).then(function () {
|
|
'use strict';
|
|
testPassed('fulfilled');
|
|
window.thisInOnFulfilledStrict = this;
|
|
shouldBe('thisInOnFulfilledStrict', 'undefined');
|
|
}, function () {
|
|
'use strict';
|
|
testFailed('rejected');
|
|
});
|
|
}).then(function () {
|
|
return Promise.reject(42).then(function () {
|
|
'use strict';
|
|
testFailed('fulfilled');
|
|
}, function () {
|
|
'use strict';
|
|
testPassed('rejected');
|
|
window.thisInOnRejectedStrict = this;
|
|
shouldBe('thisInOnRejectedStrict', 'undefined');
|
|
});
|
|
}).then(finishJSTest, finishJSTest);
|
|
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|