Commit Graph

62 Commits

Author SHA1 Message Date
podivilov@google.com 80d8de3dda Replace 'NativeTraits' typedef with 'isNode', 'isActive', and 'isEventTarget' static boolean fields.
'isEventTarget' field is needed to implement proper GC semantics for non-node event target listeners.
'isNode'+'isActive' is a direct replacement of 'NativeTraits' typedef.

R=antonm@google.com

Review URL: https://chromiumcodereview.appspot.com//10741002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9501 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-10 10:51:46 +00:00
podivilov@google.com fb4ba0921a Cleanup attributes generation in dart:html.
R=antonm@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10704102

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9436 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-06 11:41:20 +00:00
podivilov@google.com f266bcbc9e Split backend.AddMembers call into series of backend.AddAtribute/backend.AddOperation calls.
R=antonm@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10697080

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9425 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-06 07:38:07 +00:00
podivilov@google.com a785e89775 Do not split attributes on getters and setters in databasebuilder.
So we don't have to combine them again in generator.

R=antonm@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10704100

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9414 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-05 09:00:42 +00:00
podivilov@google.com 441eb00329 Extract common FactoryProviders generation logic.
R=antonm@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10704096

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9402 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-04 12:08:57 +00:00
podivilov@google.com 1b590a6185 Unfork html events generation in dart2js and dartium.
R=antonm@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10698049

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9342 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-03 11:39:16 +00:00
antonm@google.com d28a8ee1d8 Support Chrome roll.
TBR=podivilov@chromium.org

Review URL: https://chromiumcodereview.appspot.com//10700078

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9340 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-03 11:12:07 +00:00
podivilov@google.com 793232d1eb Extract common logic for element factory constructors generation.
R=antonm@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10696035

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9292 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 15:42:56 +00:00
podivilov@google.com 0adfc6082e Create implementation file emitter in HtmlDartInterfaceGenerator.
That way we can start emitting common parts in HtmlDartInterfaceGenerator.

R=antonm@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10696033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9290 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 15:41:17 +00:00
podivilov@google.com c3977d7b22 Get rid of DOMWrapperBase and DOMTypeBase.
These types are not needed anymore.

R=antonm@google.com

Review URL: https://chromiumcodereview.appspot.com//10659033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9242 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 10:21:25 +00:00
podivilov@google.com e9e1df043e Make HtmlFrogSystem and NativeImplementationSystem the backends for HtmlInterfacesSystem and remove HtmlDartiumSystem.
This will allow easy code reuse between all existing html systems.

R=antonm@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10704008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9240 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 10:01:50 +00:00
podivilov@google.com 20fe182f7a Make per-interface generators an implementation detail of a system.
DartGenerator shouldn't know about per-interface generators
as it stiffles further refactoring and makes code reuse harder.

R=antonm@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10700006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9239 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 09:37:12 +00:00
podivilov@google.com f5a2e9cec8 Build fix for r9154.
TBR=antonm@google.com

Review URL: https://chromiumcodereview.appspot.com//10692006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9155 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 10:11:50 +00:00
antonm@google.com 756f43f13c Sort includes to follow WebKit style.
R=podivilov@chromium.org

Review URL: https://chromiumcodereview.appspot.com//10657045

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9127 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 19:16:34 +00:00
antonm@google.com 8957fb37e7 Support V8EnabledAtRuntime in constructors.
R=podivilov@chromium.org

Review URL: https://chromiumcodereview.appspot.com//10669031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9107 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 12:42:54 +00:00
antonm@google.com 918aab3705 Restore forgotten negation.
TBR=podivilov@chromium.org

Review URL: https://chromiumcodereview.appspot.com//10667019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9082 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 18:47:20 +00:00
antonm@google.com d40b9e584c Support proper propagation of enabled per context and at runtime attributes.
And support enabled per context in native generator.

R=podivilov@chromium.org

Review URL: https://chromiumcodereview.appspot.com//10636027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9072 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 17:58:03 +00:00
antonm@google.com 85a0c9635c Proper support for IDL arrays in generators.
R=podivilov@chromium.org,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10584031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8969 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 10:43:11 +00:00
sra@google.com 8931de0b9d Fix DataView constructor and byte accessors.
Custom constructor is not yet implemented for Dartium.

Try again with Dartium and FF tests suppressed.

Review URL: https://chromiumcodereview.appspot.com//10540175

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8707 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-15 04:01:40 +00:00
sra@google.com f13edb18ec Revert "Fix DataView constructor and byte accessors."
Review URL: https://chromiumcodereview.appspot.com//10548065

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8706 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-15 03:24:23 +00:00
sra@google.com 790589d941 Fix DataView constructor and byte accessors.
Custom constructor is not yet implemented for Dartium.

Review URL: https://chromiumcodereview.appspot.com//10539170

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8705 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-15 03:10:07 +00:00
podivilov@google.com a93c755ea2 Use original WebKit IDL database for dart:html generation.
This will allow us to use the same database to generate both frog and native implementations.

R=antonm@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10542036

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8458 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-08 18:03:10 +00:00
podivilov@google.com 0b807ba37b Move interface members traverse logic to BaseGenerator.
AddMembers(merged_interface) will be used by systemhtml to add
all the members from HTMLElement to Element.

R=antonm@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10532027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8438 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-08 13:47:01 +00:00
podivilov@google.com 3ace6e9de0 Fix dart to native dispatch.
R=antonm@google.com,sra@google.com
TEST=indexeddb_3_test

Review URL: https://chromiumcodereview.appspot.com//10543023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8341 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-06 15:12:18 +00:00
podivilov@google.com c7106faf0c Map operator [] directly to native implementation.
R=antonm@google.com

Review URL: https://chromiumcodereview.appspot.com//10540007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8319 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-06 09:37:24 +00:00
podivilov@google.com 16391d794c Implement v8-like overload resolving.
This is needed to fix indexeddb_3_test and several bugs related to overload dispatching.

R=antonm@google.com
BUG=3353
TEST=indexeddb_3_test

Review URL: https://chromiumcodereview.appspot.com//10513004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8278 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-05 13:08:16 +00:00
podivilov@google.com d699e26bae Move splitting operations with optional arguments to generator.
To generate v8-like overload resolver we need original list of overloads.
It is much easier to slit operations in generator where needed than to split
them in databasebuilder and then combine again in generator.

R=antonm@google.com

Review URL: https://chromiumcodereview.appspot.com//10517004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8277 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-05 12:02:53 +00:00
podivilov@google.com de9c46909b Cleanup NodeSelectors.
Currently, query and queryAll methods generation in dart:html is somehow affected by a combination of the following factors:
1) Document, DocumentFragment, and Element are declared to inherit from NodeSelector interface in dart.idl
2) NodeSelector methods for some of these interfaces are present in_private_html_members, but not all, resulting in generation of $dom_* variants
3) querySelector is renamed to query via _html_library_renames for all interfaces except for Document
4) Some of these methods and their private variants have custom implementations in impl_*.darttemplate's

This patch aims to simplify that logic.

R=jacobr@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10447091

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8240 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-04 09:34:20 +00:00
sra@google.com 4b4991d659 Revert "Revert "Rework Element constructors""
This CL is r8182 plus some other bug fixes to get to green.

The main change is that the first parent of an interface could be a
pure interface.  In that case, it should be treated as a secondary parent
interface, not as the primary implementation inheritance parent.

Review URL: https://chromiumcodereview.appspot.com//10443122

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8184 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-01 07:14:14 +00:00
sra@google.com b4b0bae90d Revert "Rework Element constructors"
Review URL: https://chromiumcodereview.appspot.com//10451105

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8183 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-01 04:25:29 +00:00
sra@google.com 3614cf1500 Rework Element constructors
It turns out we want different types in the frog vs dartium bodies.
We want the implementation type for frog to help with live type analysis.
We can't use the only slightly less general interface type because the language mandates a warning.

So we now generate the factory constructors for each implementation system rather than once for the interfaces system.

I also extended the mechanism to handle multiple element constructors
and used it to generate HeadingElement.h1() through
HeadingElement.h6()

Review URL: https://chromiumcodereview.appspot.com//10442125

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8182 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-01 03:44:47 +00:00
podivilov@google.com aa58f2ceee Wrapperless dart:html for Dartium.
R=antonm@google.com,sra@google.com,vsm@google.com

Review URL: https://chromiumcodereview.appspot.com//10456006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8113 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-30 16:19:05 +00:00
podivilov@google.com eaef938e51 Fix a bug in overload dispatch.
R=sra@google.com,vsm@google.com
BUG=3261
TEST=html/audiocontext_test

Review URL: https://chromiumcodereview.appspot.com//10451054

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8068 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-29 16:06:36 +00:00
podivilov@google.com 9b936e6283 Native wrappers should implement dart:html interfaces.
This is the next step towards wrapperless dart:html.

R=antonm@google.com,vsm@google.com

Review URL: https://chromiumcodereview.appspot.com//10442057

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8063 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-29 14:52:26 +00:00
podivilov@google.com 66914f8bd2 Remove unused code and templates.
R=antonm@google.com,vsm@google.com

Review URL: https://chromiumcodereview.appspot.com//10447032

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8030 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-28 13:26:37 +00:00
podivilov@google.com 473bedc1ff Apply html renames to native wrappers.
R=antonm@google.com

Review URL: https://chromiumcodereview.appspot.com//10448009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7992 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-25 12:38:23 +00:00
sra@google.com d64766aa6c Revert "Revert "Dispatch changes to be more like V8.""
This time don't update html_dartium.html

Review URL: https://chromiumcodereview.appspot.com//10446031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7976 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-25 02:12:38 +00:00
sra@google.com c803857d01 Revert "Dispatch changes to be more like V8."
Review URL: https://chromiumcodereview.appspot.com//10449019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7975 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-25 01:55:34 +00:00
sra@google.com 2830a2bba0 Dispatch changes to be more like V8.
Overloads are tested in turn, and overloads that differ only by optional arguments are grouped into one native method where possible.

Review URL: https://chromiumcodereview.appspot.com//10387170

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7974 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-25 01:39:43 +00:00
podivilov@google.com 1df52df3ed Move dart:dom implementation classes to dart:html library.
Rename dom implementation classes to _<Interface>DOMImpl to avoid clashes with html
implementation classes, and import dom implementation classes directly into dart:html.
Temporary introduce fake dom interfaces for overload dispatching (dom implementation classes
don't implement html interfaces yet).

R=antonm@google.com

Review URL: https://chromiumcodereview.appspot.com//10383302

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7954 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-24 17:05:23 +00:00
podivilov@google.com 91e5b9d239 Move systems creation to dartdomgenerator.py.
Wrapperless htmldartium system should use a database with html renames
for interface generation, and original database for c++ code generation.
This is hard to achieve with current layout because specific knowledge about html/dom
and frog/native is spread between dartdomgenerator and dartgenerator.

This patch moves all system creation logic to dartdomgenerator while dartgenerator
becomes a collection of helper methods for traversing idl database.

R=antonm@google.com,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10392147

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7739 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 13:31:39 +00:00
podivilov@google.com c5a1152664 Move html events generation to domimpl.
R=antonm@chromium.org

Review URL: https://chromiumcodereview.appspot.com//10332144

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7692 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-16 15:20:55 +00:00
antonm@google.com 3639e3ab3a Better support for the case of typed arrays inheriting from other typed arrays.
R=podivilov@chromium.org,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10388084

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7580 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-12 08:52:09 +00:00
podivilov@google.com 5ab3ca32ef Merge wrapping system into native system.
R=antonm@chromium.org

Review URL: https://chromiumcodereview.appspot.com//10388085

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7546 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-11 14:28:20 +00:00
podivilov@google.com 93e5b49bab Remove ParameterAdapters for bindings classes.
R=antonm@chromium.org

Review URL: https://chromiumcodereview.appspot.com//10331015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7325 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 13:45:56 +00:00
antonm@google.com e46a8f0d96 Properly count number of arguments for statics.
R=podivilov@chromium.org
TEST=dom/indexeddb_4_test

Review URL: https://chromiumcodereview.appspot.com//10379010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7324 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 13:44:40 +00:00
antonm@google.com 2806978be7 Rework static method support.
For now I just nuke them from all generators except for systemnative.

However, that remove two methods from DOMURL.  One of those should probably be a ctor.
The second one is funnier as it looks like legetimate static methods.

R=podivilov@chromium.org,sra@google.com

Review URL: https://chromiumcodereview.appspot.com//10334003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7320 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 11:05:29 +00:00
podivilov@google.com 4f4665ea97 Cleanup ParameterAdapter for bindings classes.
ParameterAdapters should have just one template parameter - Dart bindings class.

R=antonm@chromium.org

Review URL: https://chromiumcodereview.appspot.com//10314005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7271 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-03 09:12:39 +00:00
antonm@google.com 6f7c53bff4 Remove per interface getter/setter suppressions.
R=podivilov@chromium.org

Review URL: https://chromiumcodereview.appspot.com//10134061

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6958 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 17:16:22 +00:00
antonm@google.com 3b27f458fc Remove FileReader for custom getter suppression list.
R=podivilov@chromium.org
BUG=2723

Review URL: https://chromiumcodereview.appspot.com//10174018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6949 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 15:32:23 +00:00