aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
Commit message (Collapse)AuthorAgeFilesLines
* Auto merge of #13185 - nox:namespaces, r=jdm,Ms2gerbors-servo2016-09-101-23/+62
|\ | | | | | | | | | | | | | | Make console a namespace (fixes #13010) <!-- 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/13185) <!-- Reviewable:end -->
| * Implement WebIDL namespacesAnthony Ramine2016-09-081-21/+60
| |
| * Fix descriptor argument in CGCallGenerator.__init__Anthony Ramine2016-09-071-3/+3
| | | | | | | | It's a descriptor, not a descriptor provider.
* | Auto merge of #13201 - KiChjang:codegen-typedefs, r=noxbors-servo2016-09-091-3/+6
|\ \ | |/ |/| | | | | | | | | | | | | | | | | Properly generate typedef identities in unions Fixes #10605. <!-- 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/13201) <!-- Reviewable:end -->
| * Properly generate typedef identities in unionsKeith Yeung2016-09-071-3/+6
| |
* | Extract mutability out of Reflectable trait.Josh Matthews2016-09-071-0/+1
|/
* Auto merge of #13183 - nox:cleanup-interface, r=Ms2gerbors-servo2016-09-061-18/+14
|\ | | | | | | | | | | | | | | Clean up stuff in bindings::interface <!-- 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/13183) <!-- Reviewable:end -->
| * Fix case of InterfaceObjectClass in codegenAnthony Ramine2016-09-061-2/+2
| |
| * Remove NonNullJSNativeAnthony Ramine2016-09-061-3/+3
| |
| * Move WebIDL constants machinery to bindings::constantAnthony Ramine2016-09-061-9/+8
| |
| * Simplify InterfaceConstructorBehaviorAnthony Ramine2016-09-061-4/+1
| |
* | Add missing IsCallable checks.Ms2ger2016-09-061-2/+12
|/
* Use Option<T> to return from gettersAnthony Ramine2016-08-301-10/+9
| | | | | This removes the cumbersome &mut bool argument and offers overall a more readable code.
* Compile WebIDL return type "object" to NonZero<*mut JSObject>Anthony Ramine2016-08-301-1/+5
|
* Convert imports in generate_imports into one per line, so that it can easily ↵tp6vup542016-08-271-71/+195
| | | | add new ones with alphabetical order.
* Make DOMJSClass use JSClass instead of Class (fixes #13031)Tetsuharu OHZEKI2016-08-261-10/+8
|
* Implement [Replaceable] (fixes #13033)Anthony Ramine2016-08-261-8/+30
|
* Pass the receiver to get_property_on_prototype (fixes #11600)Anthony Ramine2016-08-251-1/+1
|
* Make has_property_on_prototype fallibleAnthony Ramine2016-08-251-10/+25
|
* Call JS_SetImmutablePrototype for prototypes of globals (fixes #13023)Anthony Ramine2016-08-251-21/+24
|
* Define interface members on the global object directly (fixes #4593)Anthony Ramine2016-08-251-9/+37
|
* Pass a MutableHandleObject to create_global_objectAnthony Ramine2016-08-251-6/+7
|
* Make create_global_object take a &'static ClassAnthony Ramine2016-08-251-1/+1
|
* Rename utils::create_dom_object to interface::create_global_objectAnthony Ramine2016-08-251-15/+15
|
* Split global logic out of CGWrapMethodAnthony Ramine2016-08-251-25/+40
|
* Auto merge of #12819 - jdm:iterable2, r=noxbors-servo2016-08-241-140/+380
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support pair and value iterable WebIDL bindings The actual iterator implementation and JSAPI calls related to setting up the interface are ported directly from Gecko's Codegen.py, IterableIterator.h, and IterableIterator.webidl. The changes to support multiple interfaces in one file are required because the internal iterator interface the parser generates gets associated with the original interface's WebIDL file. It seemed like a good time to address #571 in that case. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #12628 and fix #571. - [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/12819) <!-- Reviewable:end -->
| * Use named arguments for CGImports.Josh Matthews2016-08-241-3/+10
| |
| * Set up the iterator prototype as the prototype of iterator interfaces, and ↵Josh Matthews2016-08-241-4/+55
| | | | | | | | alias forEach to the entries method.
| * Implement pair iterators in WebIDL interfaces.Josh Matthews2016-08-241-11/+78
| |
| * Support value iterators in WebIDL interfaces.Josh Matthews2016-08-241-0/+40
| |
| * Support multiple WebIDL interfaces being generated in the same output ↵Josh Matthews2016-08-241-129/+204
| | | | | | | | | | | | | | | | | | | | | | | | | | binding file. Each interface gets its own module named ${Interface}Binding. Structs, enums, and callbacks continue to use the root module of the binding file. If there is only one interface in the file, we generate reexports for several public APIs and types so that existing DOM implementations don't need any modifications. When multiple interfaces exist, the reexported names get the interface name prepended (eg. FooWrap instead of Wrap). As part of this work, stop glob-importing all DOM types in every generated binding and start generating more targeted lists of relevant types based on the methods, members, etc. of WebIDL types that are in use.
* | Reformat from_jsval implementation for unions.Ms2ger2016-08-241-1/+2
|/
* Auto merge of #12954 - GuillaumeGomez:dictionary_error, r=noxbors-servo2016-08-241-32/+72
|\ | | | | | | | | | | | | | | Update rust-mozjs <!-- 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/12954) <!-- Reviewable:end -->
| * Update rust-mozjs dependencyGuillaume Gomez2016-08-241-32/+72
| |
* | Use JS_SplicePrototype to set the right proto on the global, instead of ↵Boris Zbarsky2016-08-241-2/+2
|/ | | | JS_SetPrototype, since the latter will permanently deoptimize it.
* bindings generator: support default ByteString values in dictionaryMalisa Smith2016-08-101-3/+14
|
* Update SpiderMonkey to m-c bcf4ff0c3eef.Ms2ger2016-07-281-58/+26
| | | | | | 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.
* Union types now allow ByteStringMalisa Smith2016-07-211-1/+4
|
* Auto merge of #12541 - jdm:seqseq, r=noxbors-servo2016-07-211-4/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support sequences of sequences in generated bindings. This fixes a blocker for #11897. `unroll` recursively gets the inner type of any sequence type encountered, so it's inappropriate for codegen that only wants the immediate inner type. However, if a type identifies as a sequence and is nullable, we need to reach through the nullable wrapper first. Gecko does very similar things. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #12528 (github issue number if applicable). - [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/12541) <!-- Reviewable:end -->
| * Support sequences of sequences in generated bindings.Josh Matthews2016-07-211-4/+8
| | | | | | | | unroll recursively gets the inner type of any sequence type encountered, so it's inappropriate for codegen that only wants the immediate inner type. However, if a type identifies as a sequence and is nullable, we need to reach through the nullable wrapper first. Gecko does very similar things.
* | Generate a list of supported DOM APIs from parsed WebIDLs.Josh Matthews2016-07-151-0/+34
|/
* Auto merge of #12395 - jdm:nowrap, r=Ms2gerbors-servo2016-07-121-7/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid calling JS_WrapValue for same-compartment DOM reflectors This change shaves off 15-20ns per iteration of the node.firstChild getter test in tests/html/bindings_perf.html. Based on [similar Gecko code](http://searchfox.org/mozilla-central/rev/f43c9e0ffa92e72dbdbcbf57eecf04a43d46da63/dom/bindings/BindingUtils.h#781). --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix (partially) #12358 <!-- 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/12395) <!-- Reviewable:end -->
| * Remove unused imports from codegen.Josh Matthews2016-07-121-7/+6
| |
* | Implement the [Exposed] extended attribute on interfaces.Ms2ger2016-07-121-16/+40
| | | | | | | | Fixes #2823.
* | Simplify CGConstructorEnabled.Ms2ger2016-07-121-16/+4
| |
* | Make DefineDOMInterface and ConstructorEnabled unsafe functions.Ms2ger2016-07-121-4/+6
| |
* | Add support for unsafe Rust-ABI functions to CGAbstractMethod.Ms2ger2016-07-121-3/+6
| |
* | Generate 'pub' before 'unsafe extern', if both are used.Ms2ger2016-07-121-3/+3
| |
* | Correct indentation in the DOMClass function.Ms2ger2016-07-121-9/+9
|/
* Auto merge of #11872 - eddyb:back-to-roots, r=Ms2gerbors-servo2016-07-041-99/+101
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace return_address usage for rooting with stack guards and convenience macros. 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 <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11872) <!-- Reviewable:end -->