| description('Test Promise nested microtasks.'); |
| |
| var globalObject = this; |
| globalObject.jsTestIsAsync = true; |
| |
| var value1; |
| var value2; |
| var result; |
| Promise.resolve(42).then(function (v1) { |
| value1 = v1; |
| shouldBe('value1', '42'); |
| shouldBeUndefined('value2'); |
| shouldBeUndefined('result'); |
| return Promise.resolve(84).then(function (v2) { |
| value2 = v2; |
| shouldBe('value2', '84'); |
| shouldBeUndefined('result'); |
| return v2 * v1; |
| }); |
| }).then(function (r) { |
| result = r; |
| shouldBe('result', '3528'); |
| finishJSTest(); |
| }); |
| |
| debug('The promise is not fulfilled until after this function call executes.'); |