Commit Graph

89 Commits

Author SHA1 Message Date
Boris Zbarsky
bb2222c08c Bug 865969 part 2. Better rooting in bindings for 'any' arguments. r=smaug 2013-05-03 19:29:07 -04:00
Boris Zbarsky
4d5cf6450f Bug 865969 part 1. Better rooting in bindings for 'object' arguments, as well as for worker interface arguments passed as JSObject*. r=smaug 2013-05-03 19:29:07 -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
aa284f1a66 Bug 766583 part 6. Stop declaring unions as const on the stack in bindings code. r=smaug 2013-04-25 19:03:07 -04:00
Boris Zbarsky
a4e95d314b Bug 766583 part 3. Stop declaring nullable things as const on the stack in bindings code. r=smaug 2013-04-25 19:03:06 -04:00
Boris Zbarsky
9ba2beac5c Bug 766583 part 1. Stop declaring dictionaries as const on the stack in bindings code. r=smaug 2013-04-25 19:03:06 -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
9c1973b5d2 Bug 864727 part 5. Make all the WrapObject methods take a handle for the scope object. r=ms2ger 2013-04-25 12:29:54 -04:00
Andrew McCreight
e8ee5e30f6 Bug 863880 - Take a less ad hoc approach to forward declarations in bindings generation. r=bz 2013-04-25 08:42:43 -07: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
Olli Pettay
b1ddad7f2c Bug 863094 - Infinity/-Infinity/NaN defaults for unrestricted types, r=bz
--HG--
extra : rebase_source : c2495008be9b084656222e6a0773c72d5224e9cc
2013-04-18 19:58:01 +03:00
Olli Pettay
568cea39db Bug 862991 - If dictionary member needs cx, so should dictionary itself, r=bz
--HG--
extra : rebase_source : a495d79df021e896d3b7695a7d11da8d52559c28
2013-04-17 23:40:54 +03:00
Boris Zbarsky
1f72f2ad4e 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
Boris Zbarsky
c6e9532834 Bug 827158 part 8. Implement legacycaller support in WebIDL. r=peterv 2013-03-04 14:08:24 -05:00
Boris Zbarsky
09a15646fc Bug 845666. Add support for sequences containing other sequences (or dictionaries containing sequences) to WebIDL. r=peterv
This keeps simple sequence arguments and variadics using an auto array, while everything else uses a non-auto array.
2013-03-02 01:07:43 -05:00
Peter Van der Beken
c485f6afee Fix for bug 825628 (Implement NamedConstructor) - add codegen support for NamedConstructor. r=bz.
--HG--
extra : rebase_source : 8393995dca6f65cb49512874c1916ee745436638
2013-01-22 11:51:15 +01:00
Boris Zbarsky
0859cd46af Bug 838691 part 4. Add tests for pref-controlled and function-controlled properties. r=peterv
I've manually verified that the generated code for this looks like it should.
2013-02-19 11:54:41 -05:00
Peter Van der Beken
d07b3d8eef Fix for bug 838269 (Support cross-global |... instanceof DOMInterface|). r=bz.
--HG--
extra : rebase_source : e5ad1d7da8029394e3ecb38909eca406a675dbe9
2013-01-08 19:05:36 +01:00
Peter Van der Beken
b9d2ae906f Fix for bug 816088 (webIDL bindings try to extract nsISupports from the global object in static properties in workers). r=bz.
--HG--
extra : rebase_source : 5668d9e01bff0fe7831d98018428856e5940a620
2012-12-03 17:07:49 +01:00
Boris Zbarsky
fd94476421 Bug 822470 part 7. Use new callback codegen for conversion to and from JS. r=peterv
NodeFilter, EventListener, and DOMTransaction will be updated to use the new codegen once we've fixed the consumers.
2013-01-28 08:34:31 -05:00
Boris Zbarsky
1ddbf2e612 Bug 822470 part 6. Hook up callback interface codegen. r=peterv 2013-01-28 08:34:30 -05:00
Ed Morley
bc0702d0d7 Backout f3c145bd1dd2 & 5075690572a9 for OS X startup failures 2013-01-28 11:08:21 +00:00
Peter Van der Beken
b46afdef94 Fix for bug 816088 (webIDL bindings try to extract nsISupports from the global object in static properties in workers). r=bz.
--HG--
extra : rebase_source : 68e5630591f6209e2af9c5cd2321fed8edd3de24
2012-12-03 17:07:49 +01:00
Boris Zbarsky
3bff400090 Bug 820665 part 3. WebIDL spec updates to changes in how callback interfaces work. r=khuey
Specifically, any object that's not a Date or RegExp can implement a callback interface.
2013-01-03 14:03:11 -05:00
Boris Zbarsky
d19479dcd6 Bug 820665 part 1. More WebIDL spec updates to changes in how dictionaries work. r=khuey
Specifically, the following changes:

1) A union that includes a dictionary and is the last non-optional
   argument must actually be marked optional, just like a dictionary
   argument.
2) Disallow a union from containing both a nullable type and a dictionary.
3) Now all non-Date and non-RegExp objects can be used as dictionaries,
   including from overload resolution and union conversion.

We don't support dictionaries inside unions yet, or unions as
distinguishing args, so the spec changes to do with converting null to
dictionaries inside a union or picking the union overload if there is
a union containing a dictionary and null is the distinguishing arg
value are not relevant to us so far.
2013-01-03 14:03:00 -05:00
Boris Zbarsky
a491bdc004 Bug 821177. [TreatNonCallableAsNull] should only affect attribute setters. r=khuey 2013-01-02 22:03:25 -05:00
Boris Zbarsky
675e9c743e Bug 821438. Allow inheritance from interfaces with Unforgeable attributes. r=peterv 2012-12-14 14:10:50 -05:00
Boris Zbarsky
4240d9a262 Bug 815502. Implement support for variadic arguments in WebIDL. r=peterv 2012-12-11 17:50:56 -05:00
Boris Zbarsky
1c31e545ec Bug 767933 part 2. Implement codegen for 'unrestricted float' and 'unrestricted double', as aliases for float and double for now. r=khuey 2012-11-27 15:32:05 -05:00
Boris Zbarsky
6451b2a018 Bug 812742. Fix sequence codegen to not do AppendElement multiple times by accident. r=peterv 2012-11-27 15:20:40 -05:00
Boris Zbarsky
c8deffa677 Bug 809260. Example codegen should include ErrorResult.h in the header. r=mccr8 2012-11-09 08:24:32 -08:00
Boris Zbarsky
b44862af8b Bug 779048 part 10. Start using the new callback codegen in argument and return value conversion. r=peterv,smaug 2012-11-09 07:43:58 -08:00
Boris Zbarsky
499ff69d95 Bug 779048 part 8. Handling of arguments for callbacks. r=peterv
Note that we're now using the array object as the "obj" when wrapping
sequence members, because we don't have an 'obj' around in our
code... and every single existing sequence-of-interfaces consumer
relied on there being an 'obj' floating about.

Also note that I needed to rearrange the various wrapping helpers so
that we can wrap things that are hanging out in const smartpointers or
in const OwningNonNull or in plain object references.
2012-11-09 07:43:58 -08:00
Boris Zbarsky
3ca527fe47 Bug 804738 part 1. Fix codegen for named operations to be consistent about the naming of the string argument. r=peterv 2012-11-06 08:00:57 -08:00
Boris Zbarsky
888a7ed3bc Bug 804319. Implement parsing of the "stringifier;" shorthand. r=khuey 2012-11-05 14:40:32 -05:00
Boris Zbarsky
f054cbef56 Bug 803519. Require indexed/named getters if we have creators/deleters/setters. r=peterv 2012-11-05 11:58:03 -05:00
Boris Zbarsky
da22cd5b71 Bug 772869. Make getOwnPropertyNames work correctly for WebIDL proxy bindings. r=peterv,ms2ger 2012-11-05 11:58:03 -05:00
Boris Zbarsky
42cdade779 Bug 788225. Implement WebIDL deleters. r=peterv 2012-11-05 11:58:02 -05:00
Vendelin Ruzicka
80dae24d12 Bug 806184 - Can't use 'delete' method in WebIDL. r=bz 2012-10-31 13:36:20 +01:00
Peter Van der Beken
9e18022b7d Fix for bug 763643 (Implement static operations and attributes for WebIDL). r=bz.
--HG--
extra : rebase_source : d9dd5450af5d2b1f3e7e3a738ec2efdc7f7053da
2012-10-19 09:34:28 +02:00
Peter Van der Beken
d7322eea5c Fix for bug 785277 (Implement PutForwards in the new DOM bindings). r=bz.
--HG--
extra : rebase_source : 5153ebab17a9637946d0f0c322997c0c3d118190
2012-08-13 14:20:49 +02:00
Boris Zbarsky
82bd188144 Bug 804725. Use the right type name for interface arguments for binding example codegen. r=jst 2012-10-24 16:10:49 -04:00
Boris Zbarsky
f2b84a3ae9 Bug 793267. Add support for [Unforgeable] in WebIDL. r=peterv
Unforgeable attributes are defined directly on the object, not on the
prototype.  So we keep them in a separate spec array and define them
during object creation as needed.

This means that we have to pass that separate spec array to the Xray
helpers, unfortunately, which somewhat complicates those.
2012-10-24 16:10:49 -04:00
Boris Zbarsky
640f21eb69 Bug 798187 part 1. Add support for dictionary return values. r=peterv 2012-10-22 13:08:52 -04:00
Boris Zbarsky
7e68ba84af Bug 796983 part 1. Switch nullable primitives to using a const Nullable. r=jst 2012-10-17 17:01:55 -04:00
Boris Zbarsky
3e1f7e4e46 Bug 792890. Fix JS-wrapping of callback interfaces to just return the underlying JS object. r=peterv
There are several changes here:

1) When wrapping a callback interface object for JS, just extract the
   underlying JSObject from inside it and hand that object out.

2) Flag callback interface descriptors as "not concrete" (only matters
   for cases when they have constants on the interface object) and not
   wrappercached (will catch bugs if someone tries to treat them as a
   Gecko object).

3) Fix a preexisting bug in sequence wrapping where we'd try to
   JS_DefineElement twice if we were wrapping a null value for a
   sequence of nullable interface objects.
2012-10-10 15:57:57 -04:00
Boris Zbarsky
1ecbdb1149 Bug 792137. [TreatNonCallableAsNull] lives on the callback type now. r=peterv 2012-10-10 15:53:02 -04:00
Kyle Huey
c4cca57ccf Bug 793025: Convert FileReaderSync to WebIDL bindings. r=bz 2012-09-20 19:47:47 -07:00
Boris Zbarsky
0735897dff Bug 790975. Support sequences as dictionary members in WebIDL. r=peterv 2012-09-18 23:24:27 -04:00
Peter Van der Beken
0aab5147fc Fix for bug 768684 (Fix sequence<any> return type in WebIDL). r=bz.
--HG--
extra : rebase_source : acbd2ce77f62146e9bd7fc285a8042073ed95722
2012-06-13 17:15:05 +02:00