blob: eb1068ffec2b7a15b2cf3696233cdd74c26ec7c5 [file] [log] [blame]
<!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>