Commit Graph

5559 Commits

Author SHA1 Message Date
ngeoffray@google.com 4faf51d44f Fix issue 5517 by setting the successors the right way in a try/catch.
Review URL: https://codereview.chromium.org//10987073

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12998 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 09:12:04 +00:00
ngeoffray@google.com aa5abf7c3a Enable runtime type when it's being hit at resolution.
Review URL: https://codereview.chromium.org//10993075

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12993 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 08:08:18 +00:00
zerny@google.com e116cbf63c Fix incorrect type annotation in new test.
TBR=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12991 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 07:37:50 +00:00
zerny@google.com 02822c775b Inlining functions with control flow.
Functions containing control flow are now inlined and incrementally extend the graph in SSA form. For the special case of a function with only one exit, we locally update the dominator tree. If multiple exits occur, we currently recompute the dominator tree for the full resulting graph.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12990 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 07:10:06 +00:00
regis@google.com 957be60140 Skip flaky negative tests for factory redirection on dartc (issue 5538).
Review URL: https://codereview.chromium.org//10982083

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12987 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 23:34:42 +00:00
iposva@google.com baf87f3a43 Update test expectations:
- Passing tests for dart2dart.
- Failing test for dart2js.
Review URL: https://codereview.chromium.org//10993068

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12984 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 22:20:30 +00:00
iposva@google.com b85f604f66 - Implement first class types in the VM.
- Make AbstractType a subclass of Instance and map it and its subclasses
  to private Dart classes in dart:core implementing the Type interface.
- Avoid dispatching through statics in Object if not strictly needed.
Review URL: https://codereview.chromium.org//10979058

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12981 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 21:19:00 +00:00
regis@google.com 32e21214af Change dartc test status from Fail to Crash for a newly added test.
Review URL: https://codereview.chromium.org//10986070

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12979 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 18:06:04 +00:00
scheglov@google.com a7a4a4411f Issue 5447. Wern when concrete class has unimplemented members
http://code.google.com/p/dart/issues/detail?id=5447

R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12977 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 18:01:10 +00:00
regis@google.com ccacc62ec6 Change many instance creation errors from compile-time errors to dynamic errors
per revised spec (issue 3801).
Add negative tests for factory redirection.
Review URL: https://codereview.chromium.org//10979053

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12975 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 17:52:35 +00:00
ngeoffray@google.com 3d095ba4a6 Update status file to fix the bot.
Review URL: https://codereview.chromium.org//10990082

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12967 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 14:54:51 +00:00
ahe@google.com 1c518f6169 Separate compile-time and runtime errors.
Review URL: https://codereview.chromium.org//10977054

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12964 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 14:31:05 +00:00
sgjesse@google.com 5a1a2831e8 Change the type inference for fields in dart2js
The type inference for fields now uses the same mechanism as is
used for type inference for arguments and return types. That
means that compilation is optimistically taking the current
inferred type for a field. When an inferred type for a field
changes all functions previously compiled under the previous type
assumption are scheduled for recompilation.

There is special handling of constructors where fields which are
always set in a constructor is identified. This is done to avoid
having to combine with the null type which can be set by the
initializer list.

This change removes the two phase compilation previously used for
inferring field types.

R=kasperl@google.com, ngeoffray@google.com

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12956 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 13:21:05 +00:00
lrn@google.com 37197c2553 Stop using the Hashable interface.
All objects have a hashCode method, so there is no need for a Hashable
interface.
The interface itself is retained for at least two weeks, to give time for
code to remove uses of it.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12955 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 13:07:54 +00:00
ngeoffray@google.com 6b3b096ad4 Fix dart2dart bot
Review URL: https://codereview.chromium.org//10984068

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12954 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 13:01:15 +00:00
ngeoffray@google.com 04637e33be Fix dartium bots.
Review URL: https://codereview.chromium.org//10982063

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12949 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 11:53:05 +00:00
ngeoffray@google.com dc6d97e2d4 Update test to new API and have the _test suffix.
Review URL: https://codereview.chromium.org//10996043

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12947 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 11:36:18 +00:00
hausner@google.com 5411a33a48 Address Siva's review comment
Review URL: https://codereview.chromium.org//10985054

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12932 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-26 21:26:44 +00:00
srdjan@google.com 0c9dd53739 More compact code for strict compare with 0.
Noticed while tracking mysterious Bubblesort performance degradation.
Review URL: https://codereview.chromium.org//10984051

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12929 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-26 21:00:51 +00:00
hausner@google.com a241a7bae6 Make throw an expression
Throw e is now an expression rather than a statement. The language
spec says that throw without an expression (i.e. rethrowing the
current exception) is an expression as well. I have not implemented
this. It is rather difficult to determine at expression level whether
the keyword "throw" is followed by an expression or not. Thus,
throw without an expression is only allowed at statement level.

I think we should change the language spec to that effect.
Review URL: https://codereview.chromium.org//10982051

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12928 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-26 20:53:36 +00:00
ngeoffray@google.com 3628cb7167 Order the parameters of a function at the definition site.
Review URL: https://codereview.chromium.org//10991034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12904 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-26 12:40:08 +00:00
ager@google.com 7977b42215 Update all occurrences of raw strings.
R=hausner@google.com,kasperl@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12893 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-26 06:01:23 +00:00
srdjan@google.com 51011ad470 Fix incorrect strict not-equal comparison when both arguments are constants.
Review URL: https://codereview.chromium.org//10977021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12881 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-25 20:59:37 +00:00
srdjan@google.com 8415b6e37c In strict comarison use constants instead of registers if possible.
Review URL: https://codereview.chromium.org//10977020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12879 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-25 20:34:15 +00:00
hausner@google.com 428258ff2d Convert raw strings to new syntax
Review URL: https://codereview.chromium.org//10981026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12878 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-25 20:09:34 +00:00
hausner@google.com f4dd77f9e0 Update status for dartc
Review URL: https://codereview.chromium.org//10990036

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12865 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-25 18:13:22 +00:00
hausner@google.com ffedcb612d Make assert a reserved word
Issue 5051.

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12861 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-25 17:59:35 +00:00
hausner@google.com c13e591405 Implement part header
This is the final piece in the new import syntax.
Review URL: https://codereview.chromium.org//10989010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12850 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-25 16:45:14 +00:00
scheglov@google.com 7f8731cb50 Issue 5292. Unreferenced imported identifiers should not be an error
http://code.google.com/p/dart/issues/detail?id=5292

R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12847 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-25 16:34:48 +00:00
lrn@google.com a1faa6f135 Change IllegalArgumentException to ArgumentError.
Review URL: https://codereview.chromium.org//10989013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12841 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-25 12:27:52 +00:00
ngeoffray@google.com dfdaec4442 Make sure we can use JavaScript properties on Object as classes.
Review URL: https://codereview.chromium.org//10978017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12829 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-25 09:05:22 +00:00
hausner@google.com 8b24cec548 Fix dartium-drt status
Review URL: https://codereview.chromium.org//10983014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12821 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 23:26:25 +00:00
hausner@google.com aaf9159b8a Implement part directive
This replaces the existing #source directive.
Review URL: https://codereview.chromium.org//10985005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12818 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 23:18:04 +00:00
hausner@google.com 6cb96b50e6 Fixium for dartium
Review URL: https://codereview.chromium.org//10982009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12809 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 21:29:31 +00:00
hausner@google.com 01510c327f Fix analyzer status
Review URL: https://codereview.chromium.org//10991002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12806 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 21:09:13 +00:00
hausner@google.com 201bce4219 Support for show/hide combinators
- Add a new VM object called a Namespace.
- A Namespace is a library, and two list of names to hide/show.
- Convert Library and LibraryPrefix to contain Namespace
  objects instead of Libraries in their import list.
Review URL: https://codereview.chromium.org//10967052

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12804 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 20:46:56 +00:00
regis@google.com 61297238fb Support redirecting factory constructors in the VM (issue 3969).
Add test (negative tests still missing).
Some more work is needed regarding when to throw a dynamic error and when to
report a compile-time error. Some questions are not answered by the spec.
Review URL: https://codereview.chromium.org//10964058

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12791 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 17:28:37 +00:00
antonm@google.com b7cae637a7 Support Dynamic type with a prefix.
R=smok@google.com
BUG=5398

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12786 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 16:20:41 +00:00
vegorov@google.com 6560f5c84b Fix convergence issues in range analysis.
Split it into three phases: initialization, widening and narrowing.

During widening and narrowing phi-ranges change according to classical widening and narrowing operators defined as:

Widening:
  [_|_, _|_] v [a, b] = [a, b]
  [a, b] v [c, d] = [c < a ? -inf : a, d > b ? +inf : b]

Narrowing:
  [a, b] ^ [c, d] = [(a == -inf) ? c : min(a, c), (b == +inf) ? d : max(b, d)]

R=fschneider@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12772 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 12:00:19 +00:00
antonm@google.com e71177f89d Properly process dart:core classes if dart:core is imported with prefix.
In this case we force prefix omission.  However, there is a twist: when
visit prefix.name form in send visitor later, we cannot tell it from
dynamic invocation and hence to play safe we add platform libs class name
to the set of forbidden names.

Also, most probably we need a proper support for top-level from dart:core.

R=smok@google.com
BUG=5345

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12766 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 10:09:45 +00:00
ahe@google.com c74ffeffeb Mark failing test as such
Review URL: https://codereview.chromium.org//10969056

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12745 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-22 08:48:45 +00:00
vegorov@google.com 17907d32de Implement range analysis for smi values.
And use it to eliminate overflow checks on + and - operations.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12733 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-21 20:06:31 +00:00
zerny@google.com 2f549da394 Use the inner deoptimization frame when setting incoming arguments.
This fixes issue 5318 where deoptimization of an inlined call resulted in an
incorrect value being set in the deoptimized frames.

R=vegorov@google.com
BUG=5318

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12715 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-21 14:58:30 +00:00
ahe@google.com d71bc06273 Implement Object.hashCode()
Review URL: https://codereview.chromium.org//10965034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12704 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-21 13:34:57 +00:00
ahe@google.com 0e87e95d1d Update status.
I fixed a crash with my changes to ElementListener.handleQualified in CL 10911298.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12702 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-21 13:14:32 +00:00
ngeoffray@google.com d6c843ab07 Make dartc happy.
Review URL: https://codereview.chromium.org//10969033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12699 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-21 13:01:15 +00:00
ngeoffray@google.com 701caab5de Correctly handle const constructors with type parameters.
Review URL: https://codereview.chromium.org//10970006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12697 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-21 12:45:51 +00:00
antonm@google.com 354e68432a Remove suppression for fixed issue.
TBR=smok@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12695 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-21 12:08:34 +00:00
ahe@google.com b2950833dd Update test status after implementing library syntax.
Review URL: https://codereview.chromium.org//10970036

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12694 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-21 11:44:02 +00:00
antonm@google.com 7aa87c0e60 Update dart2dart expectations after r12686 "Parse new library syntax."
TBR=ahe@google.com,smok@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12689 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-21 10:39:59 +00:00