Commit Graph

128 Commits

Author SHA1 Message Date
scheglov@google.com 54c5f79d42 Check that interface constructors and default class constructors are compatible.
1. Number of required parameters.
2. Names and order of named parameters.
3. [disabled] type warning for non-identical types.
4. [wait for Eric, not implemented] type parameters check.

R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8786002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2124 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-06 14:58:16 +00:00
devoncarew@google.com 21e0fc247c Added code to associate a dart doc comment with a dart declaration node.
Review URL: http://codereview.chromium.org//8769044

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2090 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-05 21:15:28 +00:00
mmendez@google.com 734ac5a5a4 JS tree shaking for incremental builds.
This patch does two things:
1) Introduces the infrastructure that is needed by dart-level tree shaking so that it can properly deal with native JS code and thereby prune both dart and JS code.
2) Leverages the infrastructure above to enable JS-level tree shaking of the output of incremental builds by default.  Non-incremental builds are not impacted and neither are libraries without entry points.

Prior to this patch an empty application compiled to 558,508 bytes, but with it the size is reduced to 103,679 bytes.  It is important to note that the large lower bound is driven by the dependency chain introduced by isolate$processWorkerMessage in corelib/implementation/isolate.js.

For applications like total the savings are much bigger.  Prior to this patch Total compiled to 12,151,122 bytes, but with it the size is reduced to 3,758,174.  For an app the size of total this additional tree shaking takes about 2 seconds.

Once this patch lands the plan is to thread it into the pending dart-level tree shaking work if needed.  This second arc of work will allow us to further compress the output during non-incremental builds by eliding RTT, native JS code, dart methods exposed to native JS code and do dead code elimination.

Review URL: http://codereview.chromium.org//8676041

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2077 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-05 16:12:08 +00:00
mmendez@google.com 0a54d3b612 Revert r2061.
r2061 caused a OOME in one of the co19 tests in debug mode for dartc and caused one of the dart editor tests to fail.  Rolling back while I take a look.

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2062 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-05 03:30:08 +00:00
mmendez@google.com 01999e7f7d Patched change from bad branch.
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2061 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-05 03:13:01 +00:00
mmendez@google.com 5e54419eb9 Revert r2058 - incomplete commit.
TBR=codefu,fabiomfv,zundel

Review URL: http://codereview.chromium.org//8799003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2060 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-05 02:50:42 +00:00
mmendez@google.com 6456939045 I run the JS treeshaking and pass the complete file size.
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2058 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-05 02:43:43 +00:00
zundel@google.com 7e210b682a Trying to unbreak dart editor build - new use of rollback messes up code completion
Review URL: http://codereview.chromium.org//8788001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2038 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-02 22:18:17 +00:00
brianwilkerson@google.com d8d90a89de Add support for ignoring a string after the native keyword in a method, needed for compatability with frog
Review URL: http://codereview.chromium.org//8769023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2029 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-02 18:55:49 +00:00
zundel@google.com f8c0479aaf Parse method names that include type variables.
As a first step to allow factory methods to specify type variables, this
allows the parser to accept statements similar to the form:

  class A {
    factory B<T>.create() { }
  }

http://code.google.com/p/dart/issues/detail?id=417

Committed: https://code.google.com/p/dart/source/detail?r=2004

Review URL: http://codereview.chromium.org//8774024

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2024 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-02 14:50:10 +00:00
zundel@google.com 8455d926f6 Parse method names that include type variables.
As a first step to allow factory methods to specify type variables, this
allows the parser to accept statements similar to the form:

  class A {
    factory B<T>.create() { }
  }

http://code.google.com/p/dart/issues/detail?id=417

Review URL: http://codereview.chromium.org//8774024

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2004 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-01 23:46:25 +00:00
zundel@google.com b721a2962a Puts JsScope on a diet
Lazy initialization of the names field and interning the description field
reduces memory consumption from > 128M to < 64 M in a unit test that was
suffering from OOM problems.

Review URL: http://codereview.chromium.org//8659022

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1986 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-01 15:42:32 +00:00
scheglov@google.com bb1c53ac58 Fix for resolving interface constructors in factory, issue 521.
http://code.google.com/p/dart/issues/detail?id=521

R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8747016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1945 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-30 21:37:44 +00:00
mmendez@google.com 61dd161180 Simplify named method trampolines if named parameters are not involved.
There is no need to declare seen and def for methods that don't have named arguments.  Saves ~25k for an empty app and ~416k for Total.

Review URL: http://codereview.chromium.org//8746017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1938 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-30 19:49:41 +00:00
mmendez@google.com d63b9d0ad1 Fix recursion bug when adding members to native JS objects.
Review URL: http://codereview.chromium.org//8659041

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1896 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-29 16:15:18 +00:00
jacobr@google.com 2dbe767ed6 Split html library into html and html_impl
BUG=
TEST=

Review URL: http://codereview.chromium.org//8548007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1879 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-28 22:16:54 +00:00
mmendez@google.com 7fb21ee64a Adds a class for computing the dependencies that a given JS AstNode has.
Review URL: http://codereview.chromium.org//8561015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1874 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-28 19:35:15 +00:00
zundel@google.com 6089e32a26 Reduces output & memory usage of compiler by using prototype chain for inherits
The setting of $inherits for superclasses in each class is redundant,
since this property is set on the prototype.   This reduces the JS output
of co19 test LangSpecTest/13_Types/13_4_Interface_Types/A11/t01 from
43 MB to 1.6 MB.

http://code.google.com/p/dart/issues/detail?id=611

Review URL: http://codereview.chromium.org//8698021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1868 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-28 18:22:21 +00:00
scheglov@google.com 73cf5451f1 Support for parsing returning qualified type. Issue 513.
http://code.google.com/p/dart/issues/detail?id=513

R=codefu@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8662019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1805 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-23 18:52:33 +00:00
zundel@google.com ccad2889cd Don't allow invoking a constructor as 'const' if it wasn't declared 'const'.
BUG=5142545

Review URL: http://codereview.chromium.org//8624001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1751 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-22 17:07:49 +00:00
zundel@google.com 7287d25eac Makes an error message friendlier when trying to invoke
a field as a method.

BUG=395

Review URL: http://codereview.chromium.org//8643001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1750 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-22 16:59:44 +00:00
scheglov@google.com 2f84543a8b Forgot to commit ParserException
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1669 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-18 19:03:16 +00:00
scheglov@google.com e52594eddd Expect 'extends' in type parameters declaration and recover, issue 341
http://code.google.com/p/dart/issues/detail?id=341

R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8576007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1668 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-18 18:58:00 +00:00
zundel@google.com 0ea6fba5fd Addresses a ClassCastException seen in the editor from MemberBuilder
Added a simple test to protect against the class cast exception and a JUnit test to
exercise it.

BUG=413

Review URL: http://codereview.chromium.org//8588038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1663 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-18 17:49:40 +00:00
mmendez@google.com f739bfb992 This is not meant to be a general purpose indexer, but it is meant to be sufficient for conservative tree shaking of dartc generated JS code and the native code of the various libraries.
Review URL: http://codereview.chromium.org//8486015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1656 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-18 14:03:33 +00:00
zundel@google.com 5c0361579f Compile Time Constants cycle check
http://code.google.com/p/dart/issues/detail?id=120

This adds a check to compile time constants to make sure there
are no cycles.  This turned out to be a bit more difficult than
I had hoped, due to interaction with incremenatal compile, when
only a diet parse tree was available for modules that did not
need a full compile. To fix this, I added a lite resolution step
(CompileTimeConstantResolver) to be performed on all units.

Review URL: http://codereview.chromium.org//8523034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1625 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-17 20:52:48 +00:00
shauvik@google.com 5491527d87 Added support for dumping AST to console, text file or dot file
Review URL: http://codereview.chromium.org//8566019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1587 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-16 22:33:55 +00:00
codefu@google.com efcbffc225 Handle NPE case for 'dart:typo'
http://code.google.com/p/dart/issues/detail?id=203

R=jwren@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8572026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1553 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-15 22:36:03 +00:00
scheglov@google.com f53a4aa109 Report errors for default parameter values, issue 351
http://code.google.com/p/dart/issues/detail?id=351

R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8564027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1536 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-15 16:58:28 +00:00
mmendez@google.com 8274140bb5 Sort the file members.
TBR=codefu

Review URL: http://codereview.chromium.org//8566008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1512 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-14 16:27:53 +00:00
scheglov@google.com 7cea876fef Better redirecting constructor and initializers problems reporting.
Preparation for work on http://code.google.com/p/dart/issues/detail?id=351

R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8527005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1511 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-14 16:18:08 +00:00
scheglov@google.com 88d9638bcb Convert top level factory into method
http://code.google.com/p/dart/issues/detail?id=345

R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8506019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1364 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-09 18:11:04 +00:00
fabiomfv@google.com f95d52d827 https://code.google.com/p/dart/issues/detail?id=255
Review URL: http://codereview.chromium.org//8479041

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1317 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-08 15:56:45 +00:00
scheglov@google.com 59a8c89aab Provide enclosing element (method) for local function object
http://code.google.com/p/dart/issues/detail?id=145

1. I've made MethodElement an EnclosingElement to be able to return it from Element.getenclosingElement().

2. I've changed GenerateJavascriptAST.GenerateJavascriptVisitor to use directly method only if it is enclosed with Class, not just any element.

R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8479037

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1268 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-07 20:58:40 +00:00
scheglov@google.com 5b2586fd1c Fix for cyclic declaration
http://code.google.com/p/dart/issues/detail?id=348

R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8467017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1264 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-07 16:43:45 +00:00
scheglov@google.com 7d8db52436 Support for --machine-problems, tests for PrettyErrorFormatter
R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8476005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1261 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-07 15:06:56 +00:00
danrubel@google.com 1660d0e135 Ensure ClassElementImplementation removed from ThreadLocal set to prevent memory leak
Review URL: http://codereview.chromium.org//8477025

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1259 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-07 15:03:12 +00:00
scheglov@google.com d9ecbeff5b Support for --machine-problems, tests for PrettyErrorFormatter
R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8476005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1258 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-07 14:59:56 +00:00
fabiomfv@google.com d3f3a9d193 https://code.google.com/p/dart/issues/detail?id=182
Dart Spec, section "Type Void" (excerpt):
"On the other hand, it is possible to return the result of a void method from within a void method. One can also return null; or a value of type Dynamic. Returning any other result will cause a type warning (or a dynamic type error in checked mode)." (only reference to the subject - non-normative) 
Review URL: http://codereview.chromium.org//8438042

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1200 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-04 15:00:44 +00:00
scheglov@google.com 220ac6b940 Tweak shouldWarnOnNoSuchType() usage.
R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8451002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1158 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-03 18:13:07 +00:00
benl@google.com 57a533314e Review URL: http://codereview.chromium.org//8403040
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1139 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-03 10:14:19 +00:00
codefu@google.com 01d80fb5c4 Add negative test for invalid prefixes.
Update dartc's parser to validate identifier in string literal.
Add new error code.
http://code.google.com/p/dart/issues/detail?id=266

R=mmendez
BUG=
TEST=

Review URL: http://codereview.chromium.org//8441001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1099 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-02 16:54:27 +00:00
scheglov@google.com a2dfac76d7 Make some ErrorCode-s compile-time errors and some just type warnings
R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8384012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1089 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-02 13:55:53 +00:00
codefu@google.com b32b5ceb7f Constructor parameters should have this.<field> reference elements set.
R=brianwilkerson@google.com,mmendez
BUG=
TEST=

Review URL: http://codereview.chromium.org//8431008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1043 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-01 21:55:16 +00:00
fabiomfv@google.com ec78d3fce6 https://code.google.com/p/dart/issues/detail?id=223
Review URL: http://codereview.chromium.org//8384018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1036 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-01 18:42:54 +00:00
codefu@google.com 41a2b62dec Fix prefix variable parse errors
R=floitsch@google.com,mmendez
BUG=
TEST=

Review URL: http://codereview.chromium.org//8428006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1010 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-01 13:58:28 +00:00
jat@google.com 502c606b81 Add additional runtime type checks.
Review URL: http://codereview.chromium.org//8393015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@975 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-31 22:09:42 +00:00
scheglov@google.com d011f459ac New ErrorCode implementations.
R=zundel@google.com
BUG=
TEST=

Review URL: http://codereview.chromium.org//8395013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@841 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-27 17:22:32 +00:00
mmendez@google.com 959e3573d7 Fixes issue http://code.google.com/p/dart/issues/detail?id=235.
Mismatched type arguments result in an error not a type warning.

BUG=
TEST=

Review URL: http://codereview.chromium.org//8392047

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@821 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-27 13:33:45 +00:00
fabiomfv@google.com 7816675ba0 https://code.google.com/p/dart/issues/detail?id=225
moved CL. LGTM from http://codereview.chromium.org/8390059/
Review URL: http://codereview.chromium.org//8401008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@815 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-27 12:29:33 +00:00