Commit Graph

78 Commits

Author SHA1 Message Date
William Chen
db2ddd0bfd Bug 828532 - Removed 'prototype' as a reserved identifier in WebIDL. r=bz 2013-01-10 11:54:13 -08:00
Boris Zbarsky
5fd2bbb94f Bug 824237. Add support for "partial interface" to WebIDL parser. r=khuey 2013-01-10 10:49:07 -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
2c128858e0 Bug 821580. Disallow [Unforgeable] on static attributes, per spec update. r=khuey 2013-01-02 22:03:25 -05:00
Boris Zbarsky
6ed64d61c5 Bug 819845. Update WebIDL bindings to spec change: sequences/arrays are no longer distinguishable from dictionaries, and conversion to a sequence works on arbitrary objects. 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
b5b96d4efa Bug 816846. Correctly call up to our superclass to resolve an identifier conflict. r=khuey 2012-12-10 14:28:02 -05:00
Benoit Jacob
f5d2c58055 Bug 816187 - make WebIDL accept nullable dictionary retvals; let getContextAttributes's retval be nullable - r=bz 2012-11-30 18:30:05 -05:00
Boris Zbarsky
29ae813b11 Bug 812783. Add support for flagging callbacks as worker-only. r=khuey 2012-11-29 11:14:40 -05:00
Eric Faust
310c02137b Bug 747289 - Part 1/2 - Update Paris bindings to expose DOM constants. r=bz 2012-11-28 16:28:36 -05:00
Boris Zbarsky
11ebd08a60 Bug 767933 part 1. Implement parser support for 'unrestricted float' and 'unrestricted double', and for the [LenientFloat] extended attribute. r=khuey 2012-11-27 15:32:05 -05:00
Boris Zbarsky
5d6259af0a Bug 779048 part 6. Handling of return values for callbacks. r=peterv 2012-11-09 07:43:58 -08:00
Boris Zbarsky
0483bf931f Bug 806033. Finish getting rid of stray [Infallible] annotation bits. r=khuey 2012-11-05 14:40:33 -05:00
Boris Zbarsky
c9690aeabf Bug 804632. Allow certain reserved words as argument names in WebIDL. r=khuey 2012-11-05 14:40:32 -05:00
Boris Zbarsky
888a7ed3bc Bug 804319. Implement parsing of the "stringifier;" shorthand. r=khuey 2012-11-05 14:40:32 -05:00
Ehsan Akhgari
463e083c2e Bug 807697 - Enable integer to float type coercion in the Web IDL parser; r=bzbarsky
--HG--
extra : rebase_source : 93907e32c1111773af0b207274aa32323aabfa03
2012-11-01 12:30:21 -04: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
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
ac7e3e09f9 Bug 796983 part 2. Add a way to generate an example class declaration for a given WebIDL interface. r=jst
We mark constructors as static in the parser because they are.  This
allows us to just use the isStatic() for the IDLMember to mark our
declarations static.

To generate an example interface implementation, just "make
interfacename-example" in $objdir/dom/bindings.  This will place files
called interfacename-example.h and interfacename-example.cpp in that
directory.  For example, "make XMLHttpRequest-example" will get you
$objdir/dom/bindings/XMLHttpRequest-example.h and
$objdir/dom/bindings/XMLHttpRequest-example.cpp.

Attribute getters currently default to const methods, while setters
and operations default to non-const methods.

--HG--
rename : dom/bindings/BindingGen.py => dom/bindings/ExampleGen.py
2012-10-17 17:01:55 -04:00
Boris Zbarsky
1ecbdb1149 Bug 792137. [TreatNonCallableAsNull] lives on the callback type now. r=peterv 2012-10-10 15:53:02 -04:00
Boris Zbarsky
bc0118a179 Bug 792980. Don't force consumers to list descriptors for interfaces that are using all teh defaults. r=peterv
The new setup is:

* Consequential interfaces with no explicit descriptor are still skipped.
* If no information is provided about an interface, an empty descriptor is
  assumed.
* If a list is provided and the only entry is a worker descriptor, an empty
  main-thread descriptor is assumed.
2012-10-01 08:56:31 -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
Boris Zbarsky
c0a96f3008 Bug 790273. Add support for [LenientThis] in WebIDL. r=peterv 2012-09-12 17:24:58 +01:00
Boris Zbarsky
591d969173 Bug 742144. Implement support for typedefs in WebIDL. r=khuey 2012-09-06 10:23:51 -04:00
Ms2ger
6b6c1230f5 Bug 763367 - Add support for [EnforceRange] and [Clamp]; r=bz 2012-09-06 09:25:03 +02:00
Boris Zbarsky
437a27a6d1 Bug 778044. Add a way to pref off Paris binding constructor objects. r=peterv 2012-09-05 13:37:28 -04:00
Boris Zbarsky
a17389cd6f Bug 778150 part 2. Default methods to infallible. Allow annotation of fallible methods in WebIDL using [Throws]. r=peterv
[Throws] can either take no value, or can take MainThread or Workers if the
throwing behavior is only happening on main thread or in workers.
2012-09-05 09:21:33 -04:00
Boris Zbarsky
a9228f3218 Bug 786105. Setting inline style properties to null should remove them, just like setting them to empty string does. r=peterv 2012-08-31 20:59:46 -04:00
Ehsan Akhgari
869f171923 Bug 785459 follow-up: use the python 2.5 syntax 2012-08-24 16:47:45 -04:00
Ehsan Akhgari
0ab97da3c8 Bug 785472 - The Web IDL parser should not allow inheriting from an interface that is only forward declared; r=khuey 2012-08-24 15:23:21 -04:00
Ehsan Akhgari
b1634fb871 Backout changeset 1142882b6c0b (bug 785472) because it breaks the build 2012-08-24 16:22:42 -04:00
Ehsan Akhgari
28893c29cf Bug 785472 - The Web IDL parser should not allow inheriting from an interface that is only forward declared; r=khuey 2012-08-24 15:23:21 -04:00
Ehsan Akhgari
aad48fec30 Bug 785459 - Enable the WebIDL parser to be used stand-alone for syntax checking; r=khuey 2012-08-24 14:51:45 -04:00
Peter Van der Beken
82dbb096f7 Fix for bug 742195 (Implement the extended attributes for null and undefined handling on strings in Paris bindings). r=bz. 2012-07-12 15:55:30 +02:00
Peter Van der Beken
13f425b97c Fix for bug 768692 (Move DOM list binding generation to the new DOM binding codegen). r=bzbarsky.
--HG--
extra : rebase_source : 651a0fac4c9a87ef1c0a9cd91588c6421fd050c4
2012-05-22 15:46:20 +02:00
Boris Zbarsky
f9ac7c28ba Bug 771636 part 2. Implement default values for WebIDL enums. r=peterv 2012-07-31 00:22:23 -04:00
Boris Zbarsky
5186d5c397 Bug 771636 part 1. Rearrange default-value handling so we actually set C++ values directly instead of round-tripping through jsval. r=peterv 2012-07-31 00:22:22 -04:00
Boris Zbarsky
1aab881a5b Bug 775844. Make sure to examine constructor signatures when looking for union types. r=peterv 2012-07-27 00:09:10 -04:00
Boris Zbarsky
a64bcb8bb8 Bug 777415. Disallow GetterInfallible/SetterInfallible annotations where they don't make sense. r=khuey 2012-07-27 00:09:10 -04:00
Boris Zbarsky
3268be0569 Bug 764456 part 5. Actually look at hasConcreteDescendant in hasInterfacePrototypeObject() so that we can avoid codegen for [NoInterfaceObject] interfaces hat are only implemented via "implements". r=peterv 2012-07-19 14:48:58 -04:00
Boris Zbarsky
8e925299c6 Bug 768537 part 1. Update parser support for dictionaries to spec changes. r=jlebar
There are several parts here:

1)  Enforce the requirement that dictionary arguments not followed by a required argument are optional.
2)  Make dictionaries no longer be distinguishable from nullable types.
3)  Disallow dictionaries or unions containing dictionaries inside a nullable type.
4)  Force optional dictionaries to have a default value of null so that codegen doesn't have to worry about dealing with
    optional arguments that have no default value in the IDL but need to be treated as if they were null.
2012-07-17 12:18:53 -04:00
Ed Morley
8a2ea81bc5 Backout 9deb8edb5070 (bug 773519), ea5a243a60f1 & 0cad1e553bea (bug 768537) for compilation failures 2012-07-17 17:48:11 +01:00
Boris Zbarsky
56133baee1 Bug 768537 part 1. Update parser support for dictionaries to spec changes. r=jlebar
There are several parts here:

1)  Enforce the requirement that dictionary arguments not followed by a required argument are optional.
2)  Make dictionaries no longer be distinguishable from nullable types.
3)  Disallow dictionaries or unions containing dictionaries inside a nullable type.
4)  Force optional dictionaries to have a default value of null so that codegen doesn't have to worry about dealing with
    optional arguments that have no default value in the IDL but need to be treated as if they were null.
2012-07-17 12:18:53 -04:00
Boris Zbarsky
43d3bd71ac Bug 757164. Move infallibility annotations into webidl. r=peterv
In this new setup, there are three new extended attributes: Infallible,
GetterInfallible, SetterInfallible.  The first one applies to both methods and
attributes, while the last two apply only to attributes.  Each one can be
either set with no value specified (in which case it applies both on main
thread and in workers) or can be set to MainThread or Workers to limit where it
applies.

If Infallible is set on an attribute, then GetterInfallible and
SetterInfallible will be ignored.  So if you want to specify, for example, an
attribute that's infallible on the main thread and has an infallible getter in
workers, the right way to do that is [GetterInfallible,
SetterInfallible=MainThread].
2012-07-13 19:29:14 -04:00
Boris Zbarsky
425f8c73e4 Bug 767352. Keep track of a method's overloads in a list of IDLMethodOverload objects. r=jlebar 2012-07-06 12:21:24 -04:00
Boris Zbarsky
7d734037c4 Bug 768190. Don't allow [TreatNullAs] or [TreatUndefinedAs] on dictionary members. r=jlebar 2012-06-30 01:53:32 -04:00
Boris Zbarsky
7f6400efa5 Bug 767546. Make the WebIDLError constructor take a list of locations. r=jlebar 2012-06-30 01:53:28 -04:00
Boris Zbarsky
6ced091cef Bug 768085. Speed up WebIDL tests and make them more usable by pickling the datastructures Yacc produces for the grammar and shutting up the logging it does in the debug mode we force it into. r=khuey 2012-06-25 23:35:42 -04:00