Commit Graph

1016 Commits

Author SHA1 Message Date
ngeoffray@google.com 03b948e409 Re-apply: "Fix http://code.google.com/p/dart/issues/detail?id=13007 by introducing a new Marker value in the SsaValueRangeAnalyzer."
R=kasperl@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27382 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-11 13:33:49 +00:00
johnniwinther@google.com effefe0e10 Create type masks lazily.
R=ngeoffray@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27379 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-11 12:48:39 +00:00
sra@google.com 39bad23b40 Native abstract classes may be instantiated as a proxy for undeclared native subclasses.
Native classes can have subclasses that are not declared to the program, for example, some browsers have subclasses of HTMLElement that are not present on other browsers.  Instances of these subclasses are treated as instances of the known class (HTMLElement).

What this means is that abstract native classes can appear to have instances, so abstract native classes can appear to be instantiated.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27314 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-09 22:21:41 +00:00
ngeoffray@google.com 72e13620a7 Turn a Dart String + String into a JavaScript String + String.
R=ahe@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27281 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-09 09:37:08 +00:00
sra@google.com b5e50f8de4 Revert "Revert "Fix casts and type assertions on mixins used in native classes.""
Fix typo

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27274 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-07 00:53:14 +00:00
sra@google.com b32607aa83 Revert "Fix casts and type assertions on mixins used in native classes."
Review URL: https://codereview.chromium.org//23493026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27273 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-07 00:47:00 +00:00
sra@google.com e749bcf929 Fix casts and type assertions on mixins used in native classes.
The tests are more complex with mixins and subtypes of native types.

We must avoid calling getCheckedModeHelper and friends during resolution because the type queries required to identify the static helper function might access unresolved types.

R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27272 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-07 00:35:26 +00:00
ngeoffray@google.com 14b3a168e0 Revert r27232: some checked mode tests fail.
Review URL: https://codereview.chromium.org//23625009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27238 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-06 09:19:11 +00:00
ngeoffray@google.com 11edf0efcb Fix bug in inferrer for the computation of callers: we need to keep track of what is the called node to ensure another call does not accidentally remove a caller.
The bug was in the following code:
Iterable<Element> untypedTargets = allFuctions.filter(selector.asUntyped);
Iterable<Element> typedTargets = allFuctions.filter(selector);

for (callee in untypedTargets) {
  if (!typedTargets.contains(callee)) {
    callee.removeCall(caller);
  } else {
    callee.addCall(caller);
  }
}

The "removeCall" here is not correct because the relation caller-> callee could have been made by another call, with the same selector name but a different typedTargets set.

R=kasperl@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27233 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-06 08:42:50 +00:00
ngeoffray@google.com 9d598a47a0 Fix http://code.google.com/p/dart/issues/detail?id=13007 by introducing a new Marker value in the SsaValueRangeAnalyzer.
R=kasperl@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27232 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-06 08:41:03 +00:00
johnniwinther@google.com 89707c39c9 Check for non-final field in the face of const constructors.
BUG=http://dartbug.com/12900,http://dartbug.com/12901
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27227 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-06 06:19:38 +00:00
ngeoffray@google.com f53a51c11c Is checks on the right hand side of an || used in an 'if' do not apply to the then branch of that if.
R=lrn@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27177 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-05 07:34:05 +00:00
ngeoffray@google.com 8007683eb5 Ensure UnionTypeMask.operator== works in the presence of nullability.
R=kasperl@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27173 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-05 07:01:06 +00:00
ngeoffray@google.com 0d12e827d9 Fix bug http://code.google.com/p/dart/issues/detail?id=12941 by doing speculative optimizations even if one class in the system implements the speculated type, but does not implement all its members.
R=kasperl@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27128 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-04 13:37:07 +00:00
johnniwinther@google.com a24216b972 Remove use of deprecatedFutureValue.
BUG=
R=ahe@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27119 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-04 12:22:54 +00:00
ngeoffray@google.com 057210724f Fix the merge of locals handler logic.
This currently works because there is no inferrer that make use of the creation of phis. I'm working on an experimental one that found these problems.

R=kasperl@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27104 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-04 09:25:14 +00:00
johnniwinther@google.com 0bfd98da46 Add order to DartType.
BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27098 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-04 08:09:41 +00:00
johnniwinther@google.com c8f4cbb263 Support symbol literals.
BUG=
R=ahe@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27095 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-04 06:32:44 +00:00
kasperl@google.com b09b4808db Mark analyze_dart2js_test as slow and remove slow marker for the test affected by issue 6658 (fixed).
R=ricow@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27091 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-04 05:37:30 +00:00
sra@google.com f48399f435 Test for JS objects spoofing Dart objects.
It should not be possible to mistake native objects for Dart objects.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27089 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-04 03:38:14 +00:00
kustermann@google.com 0d19469e7b dart2js_extra/mirror_invalid_field_access{2,4} are passing now
R=ahe@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27068 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 16:45:30 +00:00
ngeoffray@google.com a74e1255e0 Make sure we're not trying to optimize an int check if the input can be a number.
R=kasperl@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27034 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 10:23:45 +00:00
ahe@google.com eb5906ef01 Remove dart2js_foreign.
R=kustermann@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27032 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 08:41:32 +00:00
johnniwinther@google.com 3d22a350b3 First pass at asynchronous input loading in dart2js.
R=ahe@google.com, johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27028 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 08:04:38 +00:00
ngeoffray@google.com 3d04f309e5 Do not do global optimizations on fields and parameters when invokeOn is enabled.
R=ahe@google.com, johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27026 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 07:50:35 +00:00
ahe@google.com 96c9333b16 Mark mirror_type_inference_field2_test as failing in CSP mode
Review URL: https://codereview.chromium.org//23461016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27023 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-02 20:37:11 +00:00
ahe@google.com 0c09e2ef51 Update syntax and disable dart2js_foreign.
Review URL: https://codereview.chromium.org//23876002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27019 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-02 18:46:54 +00:00
ahe@google.com 7222569e4f Fix various parser bugs related to modifiers of top-level and class members.
BUG=http://dartbug.com/5852
BUG=http://dartbug.com/12805
BUG=http://dartbug.com/12887
BUG=http://dartbug.com/12898
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27016 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-02 17:50:42 +00:00
ngeoffray@google.com bc3d9f0f12 Couple of backend fixes:
- Remove the field check for reflection in the type inferrer to be in backend.canBeUsedForGlobalOptimizations.
- Move registering of noSuchMethod helpers in backend.

R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26995 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-02 08:17:24 +00:00
ahe@google.com 0d1742a223 Temporarily skip deferred load tests on IE9.
Review URL: https://codereview.chromium.org//23845002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26977 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-31 11:31:14 +00:00
ahe@google.com 11d37b171e Don't rely on script.async in deferred loading.
BUG=http://dartbug.com/12635
R=blois@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26971 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-31 09:11:52 +00:00
ahe@google.com d99c0de126 Update status for mirror_type_inference_field_test, no mirrors in CSP yet
Review URL: https://codereview.chromium.org//23499008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26968 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-31 08:46:44 +00:00
ahe@google.com 65f0be776d Temporarily skip deferred tests.
Review URL: https://codereview.chromium.org//23531022

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26942 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-30 21:08:01 +00:00
ahe@google.com 7f8c9a5911 Fix type error.
Review URL: https://codereview.chromium.org//23447008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26939 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-30 20:08:29 +00:00
karlklose@google.com e1f68cd818 Enable type inference when using mirrors.
This reapplies https://codereview.chromium.org//22640009.

R=ngeoffray@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26922 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-30 15:51:04 +00:00
ahe@google.com 41518b2ddf Update status file for CSP mode, and clear the HTML document to avoid confusing test.dart.
R=kustermann@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26920 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-30 15:31:40 +00:00
floitsch@google.com 1866e87ddd Switch to async_helper package.
R=kustermann@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26918 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-30 14:19:57 +00:00
ahe@google.com fc33814344 Mirror printer test.
BUG=http://dartbug.com/12134
R=karlklose@google.com, ngeoffray@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26916 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-30 13:51:54 +00:00
ahe@google.com 62ef9aea7c Address a number of issues related to computation of currentScript and deferred loading.
* Store currentScript on init, as it is a cross-isolate shared value.

* Clean up deferred loading.

* Fix deferred loading tests so they inform the test runner about asynchronous operations.

BUG=http://dartbug.com/12635
BUG=http://dartbug.com/10622
BUG=http://dartbug.com/9158
R=blois@google.com, ngeoffray@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26903 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-30 06:57:27 +00:00
ngeoffray@google.com 5379a59284 Fix red buildbot for csp.
Review URL: https://codereview.chromium.org//23484012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26902 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-30 06:42:05 +00:00
karlklose@google.com 0e2d435ab0 Revert "Enable type inference when using mirrors."
This reverts commit r26882.

TBR=ngeoffray@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26884 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-29 18:02:27 +00:00
karlklose@google.com 5b37b42938 Enable type inference when using mirrors.
For potentially invoked functions, infer dynamic for all parameters.

R=ngeoffray@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26882 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-29 17:11:03 +00:00
karlklose@google.com 17adcbec35 Throw when reflecting on elements not covered by a MirrorsUsed annotation.
BUG=
R=ngeoffray@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26874 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-29 15:55:01 +00:00
zarah@google.com 9dfe997f8e Only emit members in mirror helper symbolsmap.
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26771 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-28 08:46:48 +00:00
ngeoffray@google.com 867e9d8bb4 Getters and setters must also be added to the list of intercepted names, to make invocations through Function.apply and mirrors know the right calling convetion.
R=ahe@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26763 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-28 06:25:34 +00:00
zarah@google.com 1823463b97 Add renames in output when using the mirror helper library.
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26623 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-26 08:21:33 +00:00
johnniwinther@google.com 1eb5e57347 Revert "Extract interceptor calls from raw is-checks."
This reverts commit r26620.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26621 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-26 07:33:21 +00:00
johnniwinther@google.com 4bba0b877a Extract interceptor calls from raw is-checks.
BUG=
R=ngeoffray@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26620 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-26 07:10:38 +00:00
johnniwinther@google.com c6dc37da3d Use predicates to check simple function types.
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26590 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-23 10:15:24 +00:00
floitsch@google.com 7714545fd9 Add timeout to flaky test.
Review URL: https://codereview.chromium.org//22909035

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26523 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-22 14:14:03 +00:00