Files
servo/components/script/dom
bors-servo 2b1a39c2ae Auto merge of #12830 - jdm:promises, r=Ms2ger
Implement promise bindings

This implements support for using Promises in WebIDL, executing promise callbacks in batches (equivalent to running all enqueued jobs from a setTimeout(0)), and attaching native callbacks to promise objects. This is the combined work of myself, @dati91, and @mmatyas based on the following prior work in Gecko:
* Codegen.py
* Promise.webidl
* Promise.cpp/Promise.h
* PromiseNativeHandler.h

This does not implement microtasks per #4283. This allows us to make progress on testing code that requires the use of Promises right now; the microtasks work is more complicated, but also largely orthogonal to implement.

Requires https://github.com/servo/mozjs/pull/89, https://github.com/servo/rust-mozjs/pull/287, and https://github.com/servo/rust-mozjs/pull/294.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #4282
- [X] There are tests for these changes

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12830)
<!-- Reviewable:end -->
2016-09-22 15:23:23 -05:00
..
2016-09-09 04:55:19 +02:00
2016-09-09 04:55:19 +02:00
2016-05-24 10:54:57 +02:00
2016-05-24 10:54:57 +02:00
2016-05-24 10:54:57 +02:00
2016-05-24 10:54:57 +02:00
2016-05-24 10:54:57 +02:00
2016-09-09 04:55:19 +02:00
2016-09-15 00:16:42 +01:00
2016-09-09 04:55:19 +02:00
2016-09-18 07:12:39 -05:00
2016-09-18 07:12:39 -05:00
2016-05-24 10:54:57 +02:00
2016-09-17 20:31:46 -05:00
2016-07-31 09:19:39 +02:00
2016-05-24 10:54:57 +02:00
2016-08-10 12:58:35 +02:00
2016-07-28 21:07:21 -03:00
2016-05-03 18:05:27 -04:00
2016-09-22 16:16:52 -04:00
2016-05-24 10:54:57 +02:00
2016-08-30 19:07:19 +02:00
2016-05-24 10:54:57 +02:00
2016-05-24 10:54:57 +02:00
2016-09-09 04:55:19 +02:00
2016-09-06 19:58:32 -07:00
2016-09-15 11:32:55 +05:30
2016-09-18 07:12:39 -05:00
2016-05-24 10:54:57 +02:00
2016-09-09 04:55:19 +02:00
2016-09-09 04:55:19 +02:00
2016-09-18 07:12:39 -05:00
2016-09-18 07:12:39 -05:00
2016-06-28 20:11:55 +02:00
2016-06-28 20:11:55 +02:00
2016-06-28 20:11:55 +02:00
2016-06-28 20:11:55 +02:00
2016-09-18 07:12:39 -05:00
2016-09-18 07:12:39 -05:00