Commit Graph

146 Commits

Author SHA1 Message Date
Boris Zbarsky
b291d17548 Bug 945788. Add support for dictionary return values to example codegen and js-implemented codegen. r=smaug 2013-12-05 11:39:50 -05:00
Boris Zbarsky
bc7799238c Bug 942631 part 5. Add C++ API for clearing the cached value of a [Cached] property or regetting a [StoreInSlot] property. r=peterv 2013-12-04 08:02:18 -05:00
Boris Zbarsky
83ab298b53 Bug 942631 part 4. Allow WebIDL attributes to return a sequence if it's cached. r=peterv 2013-12-04 08:02:18 -05:00
Boris Zbarsky
52853729f6 Bug 942631 part 1. Add support for a [Cached] WebIDL annotation. r=peterv 2013-12-04 08:02:17 -05:00
Boris Zbarsky
4eb56cc9c3 Bug 882541 part 4. Treat undefined as missing for optional WebIDL arguments. r=khuey,ms2ger 2013-10-11 12:28:24 -04:00
Boris Zbarsky
156b3eac57 Bug 882541 part 3. Rework the overload resolution algorithm to WebIDL spec changes in handling of optional arguments. r=khuey
The major changes are as follows:

1) The new algorithm no longer adjusts "argcount" based on the
   interaction of trailing undefined and [TreatUndefinedAs=Missing]
   arguments.  We never implemented this; just asserted that we didn't
   have to deal with this situation.

2) If the distinguishing argument is undefined and there is an
   overload that has an optional argument at the distinguishing
   argument index, that overload is selected.
2013-10-11 12:28:24 -04:00
Boris Zbarsky
25cf962b2d Bug 882541 part 2. Fix a bug that crept in with overloading a string and a nullable number and then passing in null, due to the number conversion being conditional on the input type in that case. r=khuey
Also removes a footgun conversion operator on Nullable that was causing it to silently convert to int32_t.
2013-10-11 12:28:23 -04:00
Boris Zbarsky
2eadd266c9 Bug 929512. Fix null default values for non-nullable unions containing a nullable type. r=dzbarsky, r=smaug pending 2013-10-28 00:33:15 -04:00
Peter Van der Beken
b50d1036df Bug 922159 - Rename Creator WebIDL extended attribute to NewObject. r=bz.
--HG--
extra : rebase_source : 80791f28acbf8e2cc21946b0d62bb8555b53fc99
2013-09-30 18:32:22 +02:00
Ed Morley
bf1cce39c0 Backed out changeset 64a19bc0e198 (bug 922159) for compilation failures on a CLOSED TREE 2013-10-23 15:51:48 +01:00
Peter Van der Beken
2833cfc42b Bug 922159 - Rename Creator WebIDL extended attribute to NewObject. r=bz.
--HG--
extra : rebase_source : 2c09c54f42a111d27b0d57346ca7d80f440eca09
2013-09-30 18:32:22 +02:00
Ed Morley
c7cd6440df Backed out changeset d8636e485e85 (bug 882541) 2013-10-14 17:30:49 +01:00
Ed Morley
a2b751decd Backed out changeset 61092280cb2a (bug 882541) 2013-10-14 17:30:46 +01:00
Ed Morley
566ebb2848 Backed out changeset ccf11ae08ba2 (bug 882541) 2013-10-14 17:30:43 +01:00
Boris Zbarsky
cf941f0cb7 Bug 882541 part 4. Treat undefined as missing for optional WebIDL arguments. r=khuey,ms2ger 2013-10-11 12:28:24 -04:00
Boris Zbarsky
52f5e9cc62 Bug 882541 part 3. Rework the overload resolution algorithm to WebIDL spec changes in handling of optional arguments. r=khuey
The major changes are as follows:

1) The new algorithm no longer adjusts "argcount" based on the
   interaction of trailing undefined and [TreatUndefinedAs=Missing]
   arguments.  We never implemented this; just asserted that we didn't
   have to deal with this situation.

2) If the distinguishing argument is undefined and there is an
   overload that has an optional argument at the distinguishing
   argument index, that overload is selected.
2013-10-11 12:28:24 -04:00
Boris Zbarsky
72d31f23db Bug 882541 part 2. Fix a bug that crept in with overloading a string and a nullable number and then passing in null, due to the number conversion being conditional on the input type in that case. r=khuey
Also removes a footgun conversion operator on Nullable that was causing it to silently convert to int32_t.
2013-10-11 12:28:23 -04:00
Boris Zbarsky
c159cdefab Bug 918011 part 4. Support dictionaries in unions. r=smaug 2013-09-26 00:05:00 -04:00
Boris Zbarsky
13a0246db7 Bug 918011 part 2. Preprocess some of our test WebIDL files so we can have debug-only tests. r=khuey 2013-09-26 00:05:00 -04:00
Boris Zbarsky
81ea40a161 Bug 915419. Add support for "object" types in owning unions (so union return values and unions in dictionaries and sequences. r=dzbarsky, smaug
Adds RootedUnion and NullableRootedUnion structs that are used on the
stack for union return values when the union needs rooting.  It also
adds a TraceUnion method on union return values, which is called by
(Nullable)RootedUnion or by dictionary tracing.  TraceUnion traces
typed array and object members of unions (the only things unions can
contain so far that might need tracing).  Union return values are
changed to store raw JSObject* or typed array structs instead of
Rooted versions of both; the tracing is now handled via TraceUnion.

The wrapping code for dictionary arguments to constructors is fixed to
actually work.  This required adding GetAs* methods to union return
values that return references to the internal data.

The SetToObject method is adjusted to actually work for union return
value structs and not assume it's being generated for a
union-conversion struct, and we now generate SetToObject methods as
needed for union return values.
2013-09-12 22:34:16 -04:00
Boris Zbarsky
ee67f31014 Bug 912948 part 2. Add support for [Clamp] and [EnforceRange] on writable attributes. r=khuey 2013-09-09 22:10:45 -04:00
Boris Zbarsky
ea5f461f1b Bug 912948 part 1. Add support for [Clamp] and [EnforceRange] on dictionary members. r=khuey 2013-09-09 22:10:44 -04:00
David Zbarsky
495585d260 Bug 767926 - Implement unions as member types of sequences or dictionaries for WebIDL r=bz 2013-09-09 14:39:17 -04:00
David Zbarsky
df9126512e Bug 903277. Support default values other than null for WebIDL unions. r=bzbarsky 2013-08-29 23:29:38 -04:00
Boris Zbarsky
4b85e5c1ce Bug 868799 part 3. Use RootedTypedArray in codegen. r=smaug 2013-08-29 00:30:05 -04:00
Boris Zbarsky
659c773366 Bug 900898 part 4. Support typed arrays inside sequences and variadics. r=smaug 2013-08-05 13:40:02 -04:00
Boris Zbarsky
2145e0bf95 Bug 900898 part 3. Support typed arrays inside dictionaries. r=smaug 2013-08-05 13:40:01 -04:00
Ryan VanderMeulen
1c2e96e8f9 Merge m-c to inbound. 2013-07-30 15:41:57 -04:00
Mina Almasry
a20effda55 Bug 897185 - toJSON only deals with attributes whose types are serializable. r=bz
Now jsonifiers only include serializable attributes in their returned object, as
per spec.
2013-07-30 10:04:04 -04:00
Boris Zbarsky
052e0c5524 Bug 895728 part 4. Fix unions to work with the new boolean/numeric/string setup. r=khuey 2013-07-30 10:39:35 -07:00
Boris Zbarsky
e66bdfb7fb Bug 895728 part 3. Fix overload resolution to work with the new boolean/numeric/string setup. r=khuey 2013-07-30 10:39:34 -07:00
David Zbarsky
7837d54bf0 Bug 865998: Implement WebIDL union return values r=bz 2013-07-26 11:25:54 -07:00
Mina Almasry
d23615e4a1 Bug 760851 - Add jsonifier WebIDL declaration and add toJSON to performance.timing. r=bz
This patch adds a jsonifier declaration to WebIDL's. The declaration adds an autogenerated method toJSON() on the given webidl. This patch also adds jsonifier and toJSON() to PerformanceTiming.webidl, and performance.timing, respectively.
2013-07-26 12:00:49 -04:00
Boris Zbarsky
c3d0e79b5c Bug 895009. Don't pass in NonNull/OwningNonNull arguments to WebIDL binding consumers. r=peterv 2013-07-22 08:15:43 -04:00
Ryan VanderMeulen
cc66360dac Backed out changesets 0a196c0e9f96 (bug 895974) and 0d8aa14f5ed3 (bug 895009) for causing intermittent Linux32 mochitest-1 asserts on a CLOSED TREE. 2013-07-22 18:18:17 -04:00
Boris Zbarsky
12fbb7f6ba Bug 895009. Don't pass in NonNull/OwningNonNull arguments to WebIDL binding consumers. r=peterv 2013-07-22 08:15:43 -04:00
Boris Zbarsky
70279e1221 Bug 884373. Align WebIDL handling of default parameters with ES6. r=khuey 2013-06-26 10:59:46 -04:00
James Kitchener
411a37e6e9 Bug 796850 - Implement Code Generation for Bytestring in WebIDL bindings r=bz 2013-06-13 01:18:35 -04:00
Boris Zbarsky
a1ca41876c Bug 829248. Implement basic support for [TreatUndefinedAs=Missing] in WebIDL. r=khuey
This does not add support for [TreatUndefinedAs=Missing] in overloaded
methods, since it's not clear what that should really look like.

This also does not require that [TreatUndefinedAs=Missing] on an
argument force it on all later arguments, since it's not clear that we
want that long-term.
2013-06-05 20:51:21 -04:00
Ehsan Akhgari
917c82f714 Bug 861371 - Allow Web IDL enums to have names starting with a digit; r=bzbarsky
--HG--
extra : rebase_source : 5ebf235e9408bdfdfd37504e2f79c65978ccf51d
2013-06-03 17:54:46 -04:00
Boris Zbarsky
0ba003deb7 Bug 874154. Make sure we don't end up with uninitialized JSObject* or JS::Value in dictionaries. r=ms2ger 2013-05-21 14:15:30 -04:00
Reuben Morais
435764efee Bug 873647 - Teach codegen how to wrap Dates in constructors. r=bz
--HG--
extra : rebase_source : f4267f15b7076aacb47fb94e4173a05dac8de255
2013-05-17 13:52:32 -07:00
Boris Zbarsky
ee15d5debc Bug 868715 part 9. Add tracing to WebIDL dictionary return values. r=peterv 2013-05-16 12:36:56 -04:00
Boris Zbarsky
ac41ff38fd Bug 868715 part 7. Add tracing to dictionaries. r=peterv 2013-05-16 12:36:55 -04:00
Boris Zbarsky
070682bbbc Bug 868715 part 6. Add the ability to trace sequence arguments. r=peterv 2013-05-16 12:36:55 -04:00
Boris Zbarsky
859a9538b1 Bug 868448. Fix the successCode in dictionary to-js conversions to actually work right, and document the requirements on successCode better. r=smaug 2013-05-06 08:31:01 -04:00
Boris Zbarsky
89ac81bbf5 Bug 742206 part 3. Implement type conversions for Date in WebIDL. r=smaug 2013-05-02 14:38:20 -04:00
Boris Zbarsky
7a5392b28d Bug 861493. When passing arguments to an Xray for a WebIDL constructor, make sure to do the argument unwrapping before entering the content compartment. r=bholley,waldo
There are several changes here:

1) Adds some MutableThis methods to Optional, Nullable, and dictionaries to
   effectively allow doing a const_cast without knowing the actual type being
   templated over.  I needed this because I do not in fact know that type in
   the relevant code.  I'm open to suggestions for a better name for this
   method.
2) Adds some operator& to RootedJSValue to make it look more like a JS::Value,
   and in particular so I can JS_WrapValue the thing in it.
3) Adds a Slot() method to NonNullLazyRootedObject, just like NonNull has.
4) Adds an operator& to LazyRootedObject to make it look more like JSObject* so
   I can JS_WrapObject the thing in it.
5) Implements the actual rewrapping of the arguments into the content compartment.
6) Fixes a small preexisting bug in which we didn't look at named constructors
   in getTypesFromDescriptor (this was causing my tests to not compile).
7) Changes Xrays to not enter the content compartment when calling a WebIDL
   constructor.
8) Adds some friend API to report things as not being functions.
2013-04-25 19:03:05 -04:00
Boris Zbarsky
560478bb6b Bug 843264. Allow returning sequences of non-primitive types from callback methods. r=mccr8 2013-04-24 14:59:14 -04:00
Boris Zbarsky
18e59668bd Bug 863386. Add support for nullable enum arguments and return values. r=mccr8
This incidentally fixes bug 843355
2013-04-19 23:04:19 -04:00