Commit Graph

2027 Commits

Author SHA1 Message Date
kasperl@google.com 102da4779f Update dart2dart test status (after throw as an expression).
R=ngeoffray@google.com
BUG=

Review URL: https://codereview.chromium.org//14268016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21933 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-24 09:18:39 +00:00
kasperl@google.com 1ae2542bae Add support for rethrow and start treating throw <expr> as an expression.
R=ngeoffray@google.com
BUG=

Review URL: https://codereview.chromium.org//14211008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21930 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-24 08:24:28 +00:00
ngeoffray@google.com a2f2eb7b96 Move test to dart2js_extra since it does not apply to VM.
Review URL: https://codereview.chromium.org//14091016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21874 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-23 12:12:55 +00:00
ngeoffray@google.com 03a65ef1fe Throw NoSuchMethod or ArgumentError instead of generating a bailout, when we know the next instruction after a type guard will throw.
Review URL: https://codereview.chromium.org//14404004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21870 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-23 11:51:45 +00:00
vegorov@google.com 2e0af6585f Ensure that type of the AssertAssignable instruction is recomputed.
If the previous type was more specific than destination type but new value type is not than we need to update outgoing type to be destination type. Otherwise a stale more specific type will be flowing out.

BUG=dart:10094
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//14034011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21809 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-22 12:30:05 +00:00
ngeoffray@google.com 4bbf678d64 Fix bug with namer: use the same encoding for an instance method, whether it is an invocation or a definition.
Review URL: https://codereview.chromium.org//14267021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21744 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-19 15:20:31 +00:00
srdjan@google.com 9b53a42536 Add flag --check-function-fingerprints, it checks all function fingerprints of the intrinsifier and method recognizer. Added flag to a test so that the fingerprints will be tested during a regular test.
Review URL: https://codereview.chromium.org//14247005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21711 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-18 23:18:13 +00:00
ahe@google.com 2abb5be5ec Implement Symbol correctly in dart2js.
Review URL: https://codereview.chromium.org//14079003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21694 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-18 19:25:22 +00:00
ahe@google.com 5d8b1a1d8c Move invokeOn to InstanceMirror.
Review URL: https://codereview.chromium.org//14251021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21636 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-17 16:39:19 +00:00
ngeoffray@google.com c48bb29f06 Fix issue https://code.google.com/p/dart/issues/detail?id=9251, by compiling for/in correctly.
Review URL: https://codereview.chromium.org//13865004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21622 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-17 15:07:52 +00:00
ngeoffray@google.com e1e0350845 Fix issue 9939 by making the body of a try block have two successors: the join block after the try/catch, and the catch (or finally) block.
Review URL: https://codereview.chromium.org//13912013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21618 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-17 12:30:09 +00:00
ngeoffray@google.com 96afd90f64 Take noSuchMethod into account when computing the potential targets of a call.
Review URL: https://codereview.chromium.org//14049010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21609 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-17 09:38:18 +00:00
ngeoffray@google.com 55c67a1fd9 Fix variable allocator in the presence of HCheck instructions.
Review URL: https://codereview.chromium.org//13877009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21607 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-17 09:05:52 +00:00
ngeoffray@google.com 3771eca383 Fix crash reported in http://code.google.com/p/dart/issues/detail?id=9949.
Review URL: https://codereview.chromium.org//14178008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21605 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-17 08:29:14 +00:00
ahe@google.com 89be2ccac8 Change memberName and namedArguments in Invocation to use Symbol.
Review URL: https://codereview.chromium.org//14066019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21602 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-17 07:54:48 +00:00
floitsch@google.com 466d6670c1 Refactor Future constructors.
BUG=

Review URL: https://codereview.chromium.org//14070010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21517 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-15 21:24:27 +00:00
ahe@google.com 5b6c0ba820 Rename InvocationMirror to Invocation.
Review URL: https://codereview.chromium.org//14049009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21465 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-15 15:42:44 +00:00
lrn@google.com 485c8a5999 Move Iterable implementation to collection.
Add IterableMixin and IterableBase to dart:collection.
For now, the implementation is duplicated, because mixins and const
constructors don't mix. We hope that mixins will be improved in the
future to allow using the mixin to define the base class.

Review URL: https://codereview.chromium.org//14022007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21457 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-15 14:32:16 +00:00
floitsch@google.com bebe3ac2cd Refactor List.setRange function.
Review URL: https://codereview.chromium.org//13863012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21452 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-15 13:52:29 +00:00
lrn@google.com 43a8774e2e Fix expectations for stack-trace tests to also match dart2dart.
Review URL: https://codereview.chromium.org//14049008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21449 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-15 13:29:34 +00:00
lrn@google.com 7164dfaafe Make dart2js language/stacktrace_test Pass or Fail.
Whether it passes or fails depends on the JS engine running the code.

Review URL: https://codereview.chromium.org//14122009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21444 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-15 12:43:15 +00:00
lrn@google.com 0f607e459c Remove methods on StackTrace class.
The API is not ready for finalization, so we remove it for further
development after M4.

Makes dart2js's StackTrace object implement dart:core's StackTrace.
Marks dart2js stack-trace tests as Fail instead of Skip.

Review URL: https://codereview.chromium.org//14009004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21437 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-15 11:44:30 +00:00
hausner@google.com 54dde7ce89 Implement rethrow statement
Or: how to turn a 5 minute task into a 2 hour ordeal.

The actual business of the change is one line in token.h and one line in parser.cc.
Review URL: https://codereview.chromium.org//14012005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21371 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-12 16:32:37 +00:00
vegorov@google.com 06ef8eafad Support IfThenElse instruction pattern for arbitrary smi constants.
Also fix bug in the IfThenElse::Canonicalize.

BUG=

Review URL: https://codereview.chromium.org//13884009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21364 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-12 15:28:29 +00:00
ahe@google.com 13bcc022e6 Correctly compile unresolved for-in loops.
BUG=http://dartbug.com/6725

Review URL: https://codereview.chromium.org//13866010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21342 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-12 10:19:51 +00:00
ajohnsen@google.com 044f0d02eb Remove Collection, Collections and clean up List/Set/Queue implementations of retain/remove.
BUG=

Review URL: https://codereview.chromium.org//14173003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21338 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-12 09:34:52 +00:00
ngeoffray@google.com 563aa07a72 Fix typos.
Review URL: https://codereview.chromium.org//14137006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21280 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-11 13:29:31 +00:00
ngeoffray@google.com ba4d23258b Fix first part on liveness analysis of bug https://code.google.com/p/dart/issues/detail?id=9687: a throw in a catch block must have the finally block as a successor.
Review URL: https://codereview.chromium.org//14071003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21278 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-11 13:20:12 +00:00
ngeoffray@google.com 7b3b80529c Fix invalid SSA graph generated by dart2js in a do/while with breaks, by removing locals that do not exist in all breaks.
Review URL: https://codereview.chromium.org//13877005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21271 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-11 12:10:49 +00:00
erikcorry@google.com 9d044d3f20 dart2js: Allow 'throw' when inlining
R=karlklose@google.com
BUG=

Review URL: https://codereview.chromium.org//13947004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21259 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-11 09:20:28 +00:00
regis@google.com bdcca76e3a Prohibit use of dynamic when extending or implementing classes (was crashing).
Added test.
Fix typos in array patch.
Cleanup factory result finalization.
Do not verify field offsets after a finalization error.
Review URL: https://codereview.chromium.org//13992002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21217 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-10 16:43:39 +00:00
vegorov@google.com 11edd87390 Convert diamond shaped control flow into a single conditional instruction.
Adds a IfConverter pass that right now recognizes two simple patterns cond ? 0 : 2^n and cond ? x : x+-1 that can be generated without branches on ia32 and x64 using setcc instruction.

R=fschneider@google.com

Review URL: https://codereview.chromium.org//14057004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21207 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-10 15:09:46 +00:00
ngeoffray@google.com 51f4e4c5ee Realize that this() is a closure send.
Review URL: https://codereview.chromium.org//13912003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21204 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-10 14:14:54 +00:00
floitsch@google.com 343fa26d65 Remove deprecated Expect from the libraries.
Review URL: https://codereview.chromium.org//13724021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21079 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 16:07:34 +00:00
karlklose@google.com b2d5c2bb62 Make sure required type arguments are given when using factories.
When a factory is used to create an instance using type arguments and these instances needed the type arguments, we did not track that requirement, because we only knew about the constructor call to the factory.

Review URL: https://codereview.chromium.org//13642002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21057 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 10:38:18 +00:00
kustermann@google.com f168de9c51 language/execute_finally{8,9}_test are passing now on safari
Review URL: https://codereview.chromium.org//13777004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21053 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 08:44:59 +00:00
floitsch@google.com 8fd6d0aafd Remove Expect from core library.
Committed: https://code.google.com/p/dart/source/detail?r=19755
Reverted: http://code.google.com/p/dart/source/detail?r=19756

Review URL: https://codereview.chromium.org//12212016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20996 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 19:43:16 +00:00
erikcorry@google.com 08e09ad2f2 Fix buildbot VM breakage caused by incorrect test
R=ahe@google.com
BUG=

Review URL: https://codereview.chromium.org//13646007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20970 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 15:02:39 +00:00
johnniwinther@google.com 843dfb2008 Handle private fields from mixins.
BUG=http://dartbug.com/9602

Review URL: https://codereview.chromium.org//13521008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20966 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 13:20:11 +00:00
erikcorry@google.com cc6db230be dart2js: Fix SSA corner case with always breaking loop and failing assert
R=johnniwinther@google.com
BUG=

Review URL: https://codereview.chromium.org//13723002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20965 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 13:06:04 +00:00
karlklose@google.com 2b1e42801d Make this available in closures if a type variable is used as expression.
Review URL: https://codereview.chromium.org//13527003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20950 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 08:32:30 +00:00
regis@google.com 158d90d50f Prevent expensive and unnecessary error formatting in the case a bound check is
postponed to run time (issue 9106).
Eliminate bound check at compile time in some cases.
Fix bound checking of mutually referencing bounds.
Added test.
Review URL: https://codereview.chromium.org//13653005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20938 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 20:24:49 +00:00
fschneider@google.com 5e0ac1419e Use range analysis to improve constant propagation.
This CL runs a second round of constant propagation after range
analysis to eliminate additional unreachable code. Range analysis
is changed to mark branches as constant if the constraints they
generate are unsatisfiable.

The second pass of constant propagation only visits branches and
removes unreachable code, but does not do full constant propagation.

This proves useful when inlining array view operations where the
following pattern occurs:

for (i = 0; i < length; i++) {
  if (i < 0 || i >= length) {
    throw 123;
  }
  foo();
}

In this example the if-statement will be eliminated completely.

Also, fix a bug in range analyis where constraints of already
constrained values were missing.
Review URL: https://codereview.chromium.org//13469013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20914 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 12:42:17 +00:00
kasperl@google.com da72ff691c Add crashing bug for issue 9602.
R=karlklose@google.com
BUG=

Review URL: https://codereview.chromium.org//13502006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20913 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 12:26:12 +00:00
kasperl@google.com 959dbef11d Fix issue 9664.
R=lrn@google.com
BUG=

Review URL: https://codereview.chromium.org//13621003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20910 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 09:17:53 +00:00
kasperl@google.com fedee176c6 Add crashing test case for for dartbug.com/9664.
R=erikcorry@google.com
BUG=

Review URL: https://codereview.chromium.org//13621002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20909 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 07:37:08 +00:00
srdjan@google.com 1441b09b0b Make type_cast test less fragile.
Review URL: https://codereview.chromium.org//13547002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20877 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 17:19:38 +00:00
srdjan@google.com ae25ca904c Fix issue 9608: When replacing call with assert assignable, transfer call's deopt_id to the new node.
Review URL: https://codereview.chromium.org//13464021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20871 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 16:22:24 +00:00
lrn@google.com 83f88eaacb Fix linenumbers in VM tests.
Review URL: https://codereview.chromium.org//13526004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20859 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 13:03:47 +00:00
johnniwinther@google.com d41baf225c Use correct compilation unit for inlined field initializers.
BUG=http://dartbug.com/9602

Review URL: https://codereview.chromium.org//13408008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20851 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 12:17:00 +00:00