Commit Graph

142 Commits

Author SHA1 Message Date
Boris Zbarsky
7690d94087 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
b4b08a6e79 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
c0b03f21a5 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
77ea872b8d 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
18359b69c9 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
68a54dcb54 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
985a143c28 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
b578555c28 Backed out changeset d8636e485e85 (bug 882541) 2013-10-14 17:30:49 +01:00
Ed Morley
225d596527 Backed out changeset 61092280cb2a (bug 882541) 2013-10-14 17:30:46 +01:00
Ed Morley
da83085a5c Backed out changeset ccf11ae08ba2 (bug 882541) 2013-10-14 17:30:43 +01:00
Boris Zbarsky
316fae665f 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
97cf5fdfe4 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
093911dd1c 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
0eb0be4a04 Bug 918011 part 4. Support dictionaries in unions. r=smaug 2013-09-26 00:05:00 -04:00
Boris Zbarsky
5ffa4d1286 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
b0ce18e505 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
84d48a8c9f 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
1304d99cb9 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
7a1dc33163 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
426663fc36 Bug 903277. Support default values other than null for WebIDL unions. r=bzbarsky 2013-08-29 23:29:38 -04:00
Boris Zbarsky
e077229d95 Bug 868799 part 3. Use RootedTypedArray in codegen. r=smaug 2013-08-29 00:30:05 -04:00
Boris Zbarsky
3a9063d67a Bug 900898 part 4. Support typed arrays inside sequences and variadics. r=smaug 2013-08-05 13:40:02 -04:00
Boris Zbarsky
5506e8ee8f Bug 900898 part 3. Support typed arrays inside dictionaries. r=smaug 2013-08-05 13:40:01 -04:00
Ryan VanderMeulen
2a93f2cff1 Merge m-c to inbound. 2013-07-30 15:41:57 -04:00
Mina Almasry
cb2423ca33 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
93e6a9f666 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
d05c7d0e2f 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
a4a3a95214 Bug 865998: Implement WebIDL union return values r=bz 2013-07-26 11:25:54 -07:00
Mina Almasry
d88dc366d5 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
76a7d33bf7 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
4033000ea2 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
a0654061a1 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
520e6c7b89 Bug 884373. Align WebIDL handling of default parameters with ES6. r=khuey 2013-06-26 10:59:46 -04:00
James Kitchener
6d46bd7a62 Bug 796850 - Implement Code Generation for Bytestring in WebIDL bindings r=bz 2013-06-13 01:18:35 -04:00
Boris Zbarsky
4c44f5a456 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
5be6cc599a 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
df4472c441 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
4d7c90ddd3 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
42db4b4213 Bug 868715 part 9. Add tracing to WebIDL dictionary return values. r=peterv 2013-05-16 12:36:56 -04:00
Boris Zbarsky
acedcb302c Bug 868715 part 7. Add tracing to dictionaries. r=peterv 2013-05-16 12:36:55 -04:00
Boris Zbarsky
e77d64048d Bug 868715 part 6. Add the ability to trace sequence arguments. r=peterv 2013-05-16 12:36:55 -04:00
Boris Zbarsky
4ef50b8af7 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
386bc8fd74 Bug 742206 part 3. Implement type conversions for Date in WebIDL. r=smaug 2013-05-02 14:38:20 -04:00
Boris Zbarsky
7041704c76 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
21fbfb1e31 Bug 843264. Allow returning sequences of non-primitive types from callback methods. r=mccr8 2013-04-24 14:59:14 -04:00
Boris Zbarsky
afd40a2989 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
Olli Pettay
90a4da3e6f Bug 863094 - Infinity/-Infinity/NaN defaults for unrestricted types, r=bz
--HG--
extra : rebase_source : c2495008be9b084656222e6a0773c72d5224e9cc
2013-04-18 19:58:01 +03:00
Boris Zbarsky
4c038bb2cd Bug 856215. Fix conversion of sequences of sequences to JS to not screw up its indexing. r=khuey 2013-04-02 20:20:38 -04:00
Andrew McCreight
46921f5eb1 Bug 827486, part 7 - add basic code gen test. r=bz 2013-03-18 16:08:50 -07:00
Kyle Huey
95b9d46c8a Back out Bug 827486 for PGO bustage. CLOSED TREE 2013-03-18 13:00:00 -07:00