Commit Graph

20 Commits

Author SHA1 Message Date
Anthony Ramine
97fe8f9af3 servo: Merge #14225 - Update js (from servo:update-js); r=jdm,Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d69f53794c9f823d524d0d4382c04c4a57bea65
2016-11-27 05:03:15 -08:00
Anthony Ramine
7df8d8040c servo: Merge #13185 - Make console a namespace (fixes #13010) (from nox:namespaces); r=jdm,Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 84f3cf22bfa3a8897a687e9282b1a9df1cbcb8cc
2016-09-10 07:33:25 -05:00
Anthony Ramine
8b69f20ab7 servo: Merge #13183 - Clean up stuff in bindings::interface (from nox:cleanup-interface); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 628c644feeb2ba72b17ec5d74e559223accabbf3
2016-09-06 08:48:15 -05:00
Anthony Ramine
1dc02a75bb servo: Merge #13030 - Improve prototypes of global objects (from nox:global); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 8b84566097c6cce549f4ce3c6eba803dc8a537b4
2016-08-25 07:45:39 -05:00
Ms2ger
7b9e0474eb servo: Merge #12255 - Update SpiderMonkey to m-c bcf4ff0c3eef (from servo:smup); r=jdm
This currently breaks Servo on Android, because there are a number of interdependent changes that cannot easily land serially in a way that keeps it working throughout. We expect to fix this in the near future.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5ae1fcd6fe35f942f1cb29fd0efdc9c2de393ee6
2016-07-28 06:58:59 -05:00
Ms2ger
0e47523e7e servo: Merge #12353 - Implement [Exposed] (from Ms2ger:expose); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 6d59be17bedbf9a96915b854df8ae8a0cd371831
2016-07-12 04:35:53 -07:00
Eduard Burtescu
8567ba029a servo: Merge #11872 - Replace return_address usage for rooting with stack guards and convenience macros (from eddyb:back-to-roots); r=Ms2ger
The existing `Rooted` and `RootedVec` users were migrated the the following two macros:
```rust
let x = Rooted::new(cx, value);
// Was changed to:
rooted!(in(cx) let x = value);
// Which expands to:
let mut __root = Rooted::new_unrooted(value);
let x = RootedGuard::new(cx, &mut __root);
```
```rust
let mut v = RootedVec::new();
v.extend(iterator);
// Was changed to:
rooted_vec!(let v <- iterator);
// Which expands to:
let mut __root = RootableVec::new();
let v = RootedVec::new(&mut __root, iterator);
```

The `rooted!` macro depends on servo/rust-mozjs#272.
These APIs based on two types, a container to be rooted and a rooting guard, allow implementing both `Rooted`-style rooting and `Traceable`-based rooting in stable Rust, without abusing `return_address`.

Such macros may have been tried before, but in 1.9 their hygiene is broken, they work only since 1.10.

Sadly, `Rooted` is a FFI type and completely exposed, so I cannot prevent anyone from creating their own, although all fields but the value get overwritten by `RootedGuard::new` anyway.
`RootableVec` OTOH is *guaranteed* to be empty when not rooted, which makes it harmless AFAICT.

By fixing rust-lang/rust#34227, this PR enables Servo to build with `-Zorbit`.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix rust-lang/rust#34227
- [x] These changes do not require tests because they are not functional changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 80cb0cf8214fd52d2884724614c40cb278ee7575
2016-07-04 11:03:35 -07:00
Anthony Ramine
2f12cba14d servo: Merge #11620 - Implement [Unscopable] (fixes #11583) (from nox:unscopable); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: f56848a0e8a9137f128088d1dd0f86e11fad841a
2016-06-07 09:04:15 -05:00
Anthony Ramine
8783f275db servo: Merge #11308 - Implement [Func] (from nox:guarded); r=jdm
First part of #11292, this just includes support of `[Func]`.

Source-Repo: https://github.com/servo/servo
Source-Revision: 073c5e3b6b8950c01c9e5691925d24787fd06d53
2016-05-27 04:45:06 -05:00
Anthony Ramine
6485eb1b34 servo: Merge #11188 - Use JS_NewStringCopyN for the representation of interface objects (from nox:n-better-than-z); r=Ms2ger
This removes the need for the final null byte and we can make NonCallbackInterfaceObjectClass::new safe again I guess.

Source-Repo: https://github.com/servo/servo
Source-Revision: 252b0d8fa53f0ffff247f38743627b6e5ffb74e9
2016-05-16 06:26:13 -07:00
Anthony Ramine
195ce9ea2b servo: Merge #10756 - Update SpiderMonkey (from servo:smup); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 2c69278067a23703b251a69c875bee49449c6bfc
2016-05-03 15:46:40 -07:00
Josh Matthews
b0b79a7551 servo: Merge #10081 - Support controlling interface and member visibility via preferences (from jdm:interfacepref); r=nox
This was easier to throw together than per-attribute/method support, and it gets rid of some nonstandard properties from our globals.

Fixes #7626.

r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: 8255e74a61d62be94ef53caa9ebe6cd5082dcb4d
2016-05-02 11:35:38 -07:00
Anthony Ramine
465dcd55de servo: Merge #10819 - Refactor the call hook on non-callback interface objects (fixes #10744) (from nox:call-without-new); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: a92a6360cf2833c405ec668ee144db5de44c15cf
2016-04-25 02:45:29 -07:00
Guillaume Gomez
8ac1beee06 servo: Merge #10096 - Make all interface objects share the same funToString (from GuillaumeGomez:fun_to_string); r=nox
Fixes #9280

Source-Repo: https://github.com/servo/servo
Source-Revision: e95368df6297e664122da8ae15f25724be557353
2016-03-21 16:20:44 +05:00
Anthony Ramine
4acb3febf5 servo: Merge #9652 - Lazily define interface objects on globals (fixes #6419) (from nox:lazy-interface-object); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: b188cb542e92f3490b049e8db8473c7e2acf6dc9
2016-02-25 21:12:11 +05:00
Guillaume Gomez
75cb058ec0 servo: Merge #9633 - All interface objects now share the same hasInstance (from GuillaumeGomez:has_instance); r=nox
r? @nox

Source-Repo: https://github.com/servo/servo
Source-Revision: 267630779316d2291b10ed8e60d0f9f5f2100ab1
2016-02-19 19:19:33 +05:00
Anthony Ramine
41c81d644d servo: Merge #9645 - Fix the hasInstance hook of interface objects (from nox:fix-has-instance); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 87c6889f44f67e9c8a186e1b4d95066a4e67ecd3
2016-02-15 18:43:02 +05:00
nxnfufunezn
4fc3587ff8 servo: Merge #9413 - Move ConstantSpec, NonNullJSNative and define_constants from utils to interface (from nxnfufunezn:issue-9412); r=nox
Fixes #9412
r? @nox

Source-Repo: https://github.com/servo/servo
Source-Revision: e93a460db4902195ec64e6fe67817f9e3a7c1da9
2016-01-24 20:18:57 +05:00
apopiak
90b5952578 servo: Merge #9296 - implement NonCallbackInterfaceObjectClass::as_jsclass() (from apopiak:implement_as_class_9287); r=ecoal95
close #9287

Source-Repo: https://github.com/servo/servo
Source-Revision: a28b5cb43859b6300c0b157c6b3d25d78606dda8
2016-01-14 17:54:03 +05:00
Anthony Ramine
b9abb88810 servo: Merge #8954 - Fix prototypes of interface objects (fixes #2665) (from nox:protochain); r=Ms2ger
Callback interface objects' (i.e. NodeFilter's) prototype is now Object instead of
Function and non-callback interface objects' their proper ancestor, starting with
the Function prototype.

The function do_create_interface_objects is removed in favour of 4 functions:
create_callback_interface_object, create_interface_prototype_object,
create_noncallback_interface_object and create_named_constructors.

While this increases the amount of codegen'd code, this greatly improves the
readability of the code involved in this part of DOM, instead of having one function
doing 4 different things. We can always find a more adequate abstraction later.

NativeProperties and everything related to the interface objects have been removed
from the utils module.

Fixes #2665.

Source-Repo: https://github.com/servo/servo
Source-Revision: e977a6e69a06ad69e87cc235b4ede60f8fb3eca3
2016-01-12 21:30:47 +05:00