fune/servo/components
Igor Matuszewski 8d9de62f85 servo: Merge #20314 - Don't use unsafe Heap::new constructor (from Xanewok:remove-heap-constructor); r=jdm
<!-- 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
2018-03-18 15:22:23 -04:00
..
allocator
atoms servo: Merge #20181 - Fire the pageshow event at the end of the page load (from fabricedesre:end-load-pageshow); r=jdm 2018-03-06 10:49:51 -05:00
bluetooth servo: Merge #20182 - Prompt URL on Cmd/Ctrl-L (from paulrouget:ctrl_l); r=jdm 2018-03-04 12:48:30 -05:00
bluetooth_traits
canvas servo: Merge #20262 - constellation: Make setting up the WebGL state fallible (from emilio:webgl-fallible); r=jdm 2018-03-09 18:24:56 -05:00
canvas_traits servo: Merge #20144 - Add WebGL function glGetTexParameter (from mkollaro:gettexparameter); r=jdm 2018-03-06 09:48:56 -05:00
compositing servo: Merge #20071 - Use typed coordinates more (from paulrouget:typedsize); r=glennw 2018-03-16 17:18:24 -04:00
config servo: Merge #20310 - Update the MULTIPROCESS static when changing default options (from fabricedesre:opt-multiprocess); r=jdm 2018-03-15 23:23:54 -04:00
constellation servo: Merge #20262 - constellation: Make setting up the WebGL state fallible (from emilio:webgl-fallible); r=jdm 2018-03-09 18:24:56 -05:00
debugger
deny_public_fields servo: Merge #20022 - Update syn, quote and synstructure (from Eijebong:syn); r=nox 2018-02-13 11:15:54 -05:00
devtools
devtools_traits
dom_struct servo: Merge #19476 - Use workspace.default-members to specify default crates for cargo build (from servo:default-members); r=nox 2017-12-07 06:53:07 -06:00
domobject_derive servo: Merge #20022 - Update syn, quote and synstructure (from Eijebong:syn); r=nox 2018-02-13 11:15:54 -05:00
fallible
geometry servo: Merge #20071 - Use typed coordinates more (from paulrouget:typedsize); r=glennw 2018-03-16 17:18:24 -04:00
gfx servo: Merge #20311 - Update WR (local clip API change, texture cache optimizations) (from glennw:update-wr-pic); r=mbrubeck 2018-03-15 22:19:31 -04:00
gfx_traits servo: Merge #19933 - Update WebRender (from mrobinson:update-wr); r=emilio 2018-02-06 09:12:58 -05:00
hashglobe servo: Merge #20027 - style: Back out ordermap (from emilio:bye-ordermap); r=nox 2018-02-12 07:36:04 -05:00
jstraceable_derive servo: Merge #20022 - Update syn, quote and synstructure (from Eijebong:syn); r=nox 2018-02-13 11:15:54 -05:00
layout servo: Merge #20311 - Update WR (local clip API change, texture cache optimizations) (from glennw:update-wr-pic); r=mbrubeck 2018-03-15 22:19:31 -04:00
layout_thread servo: Merge #20243 - style: add infrastructure to match the :host selector (from emilio:host-selector-on-the-way); r=SimonSapin 2018-03-14 10:38:45 -04:00
layout_traits
malloc_size_of servo: Merge #20314 - Don't use unsafe Heap::new constructor (from Xanewok:remove-heap-constructor); r=jdm 2018-03-18 15:22:23 -04:00
malloc_size_of_derive servo: Merge #20022 - Update syn, quote and synstructure (from Eijebong:syn); r=nox 2018-02-13 11:15:54 -05:00
metrics servo: Merge #19755 - Decouple metrics and gfx (from streichgeorg:decoupling_metrics_gfx); r=jdm 2018-01-17 07:28:01 -06:00
msg servo: Merge #19975 - Kill browserhtml (from paulrouget:killbhtml); r=mbrubeck,emilio 2018-02-13 04:54:47 -05:00
net servo: Merge #20182 - Prompt URL on Cmd/Ctrl-L (from paulrouget:ctrl_l); r=jdm 2018-03-04 12:48:30 -05:00
net_traits servo: Merge #20143 - Bump itertools, image, flate2 and caseless (from Eijebong:bump); r=nox 2018-02-28 13:10:59 -05:00
nonzero
profile servo: Merge #20251 - Chart memory reports over time (from jdm:memchart); r=ajeffrey 2018-03-08 22:47:49 -05:00
profile_traits
rand
range
remutex servo: Merge #19819 - Merge some test crates in their corresponding components (from servo:rm-test-crates); r=<try> 2018-01-20 08:51:27 -06:00
script servo: Merge #20314 - Don't use unsafe Heap::new constructor (from Xanewok:remove-heap-constructor); r=jdm 2018-03-18 15:22:23 -04:00
script_layout_interface servo: Merge #20140 - Bump euclid to 0.17 (from Eijebong:euclid); r=SimonSapin 2018-02-28 04:14:32 -05:00
script_plugins
script_traits servo: Merge #20071 - Use typed coordinates more (from paulrouget:typedsize); r=glennw 2018-03-16 17:18:24 -04:00
selectors servo: Merge #20243 - style: add infrastructure to match the :host selector (from emilio:host-selector-on-the-way); r=SimonSapin 2018-03-14 10:38:45 -04:00
servo servo: Merge #20316 - Windows: Add icon to servo.exe (from UK992:win32-icon); r=jdm 2018-03-18 14:31:35 -04:00
servo_arc servo: Merge #20088 - Fix license metadata for servo_arc crate (from mbrubeck:license); r=SimonSapin 2018-02-21 19:35:55 -05:00
size_of_test
style servo: Merge #20302 - Include some traversal statistics in style tracing marker (from upsuper:traversal-stats); r=bholley 2018-03-14 21:01:08 -04:00
style_derive servo: Merge #20275 - Finish cleaning up trait bounds generation in style_derive (from servo:derive-all-the-things); r=emilio 2018-03-12 04:52:02 -04:00
style_traits servo: Merge #20236 - Introduce #[css(skip_if)] (from emilio:to-css-skip-if); r=nox 2018-03-08 09:16:55 -05:00
url
webdriver_server servo: Merge #20071 - Use typed coordinates more (from paulrouget:typedsize); r=glennw 2018-03-16 17:18:24 -04:00
webvr servo: Merge #20140 - Bump euclid to 0.17 (from Eijebong:euclid); r=SimonSapin 2018-02-28 04:14:32 -05:00
webvr_traits