forked from mirrors/gecko-dev
<!-- Please describe your changes on the following line: --> Pulls https://github.com/servo/rust-mozjs/pull/398 and aims to close https://github.com/servo/rust-mozjs/issues/343. We can't convert from `JSVal` to `Heap<JSVal>` safely (due to GC barriers we can't move Heap value after changing its underlying value to something meaningful, e.g. non-null or non-undefined), so I decided to also wrap the Heap values in a Box (and in dictionaries in RootedTraceableBox, see https://github.com/servo/servo/pull/20265#issuecomment-372838379 and the issue for more details) in dictionaries. Since we allocate more to be safe, I think it'd be good to also do some sort of a JS perf run, if there is any to see if there's any significant overhead. r? @jdm --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [X] These changes do not require tests because checking for not moving Heap after setting a value would require encoding a lot more info in type system (Heap) and I'm not sure how to do that and end up with an ergonomic and consistent API <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Source-Repo: https://github.com/servo/servo Source-Revision: 23b6f569d09f9b10a70ca1b5c8a48f7da45853e2 --HG-- extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear extra : subtree_revision : c609cd593bbb75cbbe584687a7caf814de3059fc |
||
|---|---|---|
| .. | ||
| docs | ||
| dom | ||
| task_source | ||
| body.rs | ||
| build.rs | ||
| Cargo.toml | ||
| clipboard_provider.rs | ||
| CMakeLists.txt | ||
| devtools.rs | ||
| document_loader.rs | ||
| fetch.rs | ||
| layout_image.rs | ||
| lib.rs | ||
| mem.rs | ||
| microtask.rs | ||
| network_listener.rs | ||
| script_runtime.rs | ||
| script_thread.rs | ||
| serviceworker_manager.rs | ||
| serviceworkerjob.rs | ||
| stylesheet_loader.rs | ||
| task.rs | ||
| test.rs | ||
| textinput.rs | ||
| timers.rs | ||
| unpremultiplytable.rs | ||
| webdriver_handlers.rs | ||