servo/components/script
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
..
docs
dom Auto merge of #12830 - jdm:promises, r=Ms2ger 2016-09-22 15:23:23 -05:00
parse Reorder use statements 2016-09-09 04:55:19 +02:00
task_source Implement file reading task source 2016-07-14 13:27:42 -04:00
bluetooth_blacklist.rs Add WebBluetooth Blacklist support 2016-05-31 17:05:45 +02:00
build.rs Native MSVC windows build, convert to cmake 2016-08-17 09:50:51 -04:00
Cargo.toml Implement binding support for returning and accepting Promises in WebIDL. 2016-09-22 16:16:48 -04:00
clipboard_provider.rs Remove ConstellationChan. 2016-05-19 17:13:44 +02:00
CMakeLists.txt Native MSVC windows build, convert to cmake 2016-08-17 09:50:51 -04:00
devtools.rs Reorder use statements 2016-09-09 04:55:19 +02:00
document_loader.rs Use fetch infrastructure to load external scripts 2016-09-21 11:50:55 -07:00
layout_wrapper.rs Filter non-element / non-text nodes in LayoutIterator. 2016-09-21 11:43:52 -07:00
lib.rs Put back video metadata 2016-09-09 14:03:03 +02:00
mem.rs
network_listener.rs Reorder use statements 2016-09-09 04:55:19 +02:00
origin.rs Reorder use statements 2016-09-09 04:55:19 +02:00
script_runtime.rs Support promises in workers. 2016-09-22 16:16:55 -04:00
script_thread.rs Support promises in workers. 2016-09-22 16:16:55 -04:00
serviceworker_manager.rs make structured clone an enum 2016-09-15 11:32:55 +05:30
textinput.rs Implement minlength for text inputs 2016-09-21 07:54:39 -05:00
timers.rs Support an equivalent of Trusted<T> for Rc<Promise> objects named TrustedPromise. 2016-09-22 16:16:59 -04:00
unpremultiplytable.rs
webdriver_handlers.rs Use fn pipeline_id consistently, not fn pipeline 2016-09-13 15:17:40 -04:00