Commit Graph

480 Commits

Author SHA1 Message Date
rmacnak@google.com 81d0f25293 Reapply "Implement an LRU cache in dart:_internal and use it for the getter/setter caches in the VM's mirrors." Reapply "Use mirror-free LRU test for dart2js"
BUG=http://dartbug.com/18445
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38167 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-11 18:59:06 +00:00
rmacnak@google.com f346a00c0f Revert r37059 and dependent r37589. This effectively reduced the size of the getter and setter caches, exposing http://dartbug.com/18284 in a C1 application.
Revert "Implement an LRU cache in dart:_internal and use it for the getter/setter caches in the VM's mirrors."
Revert "Use mirror-free LRU test for dart2js"

BUG=http://dartbug.com/19909
BUG=http://dartbug.com/18284
BUG=http://dartbug.com/18445
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38076 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-09 00:18:15 +00:00
karlklose@google.com 2e8bdd4128 Revert "Emit declarations for typedefs that are needed by reflection."
Does not work in csp-drt.

This reverts commit r37945.

R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37973 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-03 07:24:08 +00:00
karlklose@google.com 13c67faf65 Emit declarations for typedefs that are needed by reflection.
Typedefs are encoded like closure classes, but without a call-method and a superclass.

For example, the typedef `typedef int Foo(String s);` is emitted as:
  Foo: {'^': ':15'},
where `15` is the index into `init.metadata` at which the function type is emitted.

BUG= http://dartbug.com/16939
R=herhut@google.com, floitsch@google.com

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

Reverted in https://code.google.com/p/dart/source/detail?r=37848

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

Reverted in https://code.google.com/p/dart/source/detail?r=37940

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37945 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-02 12:43:13 +00:00
karlklose@google.com d8649cf725 Revert "Emit declarations for typedefs that are needed by reflection."
This reverts commit r37939.

TBR=herhut@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37940 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-02 11:04:54 +00:00
karlklose@google.com abc6e05815 Emit declarations for typedefs that are needed by reflection.
Typedefs are encoded like closure classes, but without a call-method and a superclass.

For example, the typedef `typedef int Foo(String s);` is emitted as:
  Foo: {'^': ':15'},
where `15` is the index into `init.metadata` at which the function type is emitted.

BUG= http://dartbug.com/16939
R=floitsch@google.com

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

Reverted in https://code.google.com/p/dart/source/detail?r=37848

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37939 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-02 10:51:01 +00:00
rmacnak@google.com 8c4d04d170 Adjust mirrors/regress_19731_test to avoid static warnings.
TBR=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37904 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-01 20:32:37 +00:00
rmacnak@google.com 14fcffb2b6 Hide synthetic metadata field exposed in r35926.
Also remove Object::CreateInternalMetaData.

BUG=http://dartbug.com/19731
R=iposva@google.com, regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37900 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-01 20:09:09 +00:00
herhut@google.com 9cb4631b9c Take inheritance into account when computing the elements accessible by mirrors.
BUG= http://dartbug.com/19179
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37868 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-01 12:42:51 +00:00
karlklose@google.com eaa2c4da9a Revert "Add runtime_data.dart to the whitelist of files with unused members." and "Emit declarations for typedefs that are needed by reflection."
It does not work in checked mode.

This reverts commits 37814 and 37818.

R=johnniwinther@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37848 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-01 07:40:42 +00:00
karlklose@google.com 1502b1899d Emit declarations for typedefs that are needed by reflection.
Typedefs are encoded like closure classes, but without a call-method and a superclass.

For example, the typedef `typedef int Foo(String s);` is emitted as:
  Foo: {'^': ':15'},
where `15` is the index into `init.metadata` at which the function type is emitted.

BUG= http://dartbug.com/16939
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37814 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-30 09:49:39 +00:00
herhut@google.com 80773c1452 Use mirror-free LRU test for dart2js
BUG=
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37589 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 09:42:43 +00:00
rmacnak@google.com da3b61d764 Add missing demangling to the VM's NoSuchMethodError. Ensure the VM's NoSuchMethorErrors for reflective invocation match those for non-reflective invocation.
Fix bug in VM demangling of setters.
Fix bug where test was not covering invocation on classes as intended.

BUG=http://dartbug.com/18042
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37294 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 22:53:00 +00:00
herhut@google.com 91f5940dbf Handle metadata in the magic [^] property of class descriptions correctly.
BUG= http://dartbug.com/19173
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37256 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 08:34:35 +00:00
rmacnak@google.com ce490637b2 Censor dart:_blink and dart:builtin from the enumeration of libraries in the isolate and from import lists. Note we are not censoring dart:_internal.
For the moment, this doesn't seem to break any language invariants, but that may happen if
a) the censored libraries start producing instances, whose classes would claim to have no library
b) types from the censored libraries are used in type annotations in the privileged libraries that can import them, resulting in types other than dynamic that claim to belong to no library

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37238 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-11 17:58:17 +00:00
rmacnak@google.com 7f84fb2b7f Implement an LRU cache in dart:_internal and use it for the getter/setter caches in the VM's mirrors.
BUG=http://dartbug.com/18445
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37059 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-06 00:45:01 +00:00
rmacnak@google.com 3b5ff25469 Lay waste to ClosureMirror.findInContext.
BUG=http://dartbug.com/18741
R=gbracha@google.com, iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36704 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 19:35:58 +00:00
floitsch@google.com 5708ec2d9e Allow delegate calls even though the target is not reflectable.
BUG= http://dartbug.com/15138
BUG= http://dartbug.com/17451
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36621 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-26 08:56:44 +00:00
rmacnak@google.com d14dc6c502 Fix crash when parsing metadata that refers to a static getter.
BUG=http://dartbug.com/18949
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36522 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-22 18:56:08 +00:00
sigurdm@google.com 21a9788738 When mirrors are used with deferred loading we now go through all
elements and query compiler.backend.isNeededForReflection for each of
them.

R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36092 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-13 08:29:14 +00:00
floitsch@google.com 5e176f17a8 Avoid prototype properties in JS-Object caches.
Make sure to create caches with Object.create.

BUG= http://dartbug.com/18754
R=kasperl@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36037 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-12 15:50:07 +00:00
floitsch@google.com a4908c7368 Assume a method can be torn off, if it's accessible through reflection.
BUG= http://dartbug.com/18673
R=herhut@google.com, johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35962 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-09 07:55:45 +00:00
rmacnak@google.com f4f4713eb8 Put metadata fields in their owner class to maintain the class-field bidirectional relationship asserted Field::PrintJSON.
Extended metadata scope test based on suspicions regarding the ordering of adding type parameters metadata fields versus ordinary fields of a class.

BUG=http://dartbug.com/18652
R=iposva@google.com, regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35926 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-08 18:15:33 +00:00
rmacnak@google.com f0d289599c VM: Fix TypedefMirror.isPrivate and TypeVariableMirror.isPrivate.
BUG=http://dartbug.com/18271
R=asiva@google.com, gbracha@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35758 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-05 19:45:58 +00:00
floitsch@google.com bcb3c3e8ba Don't hide interceptors in mirrors.
The special code for mirrors was brittle and was the reason for several bugs.

BUG= http://dartbug.com/18076
BUG= http://dartbug.com/15405
BUG= http://dartbug.com/14025
BUG= http://dartbug.com/13842
BUG= http://dartbug.com/16804
BUG= http://dartbug.com/15555
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35586 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-30 18:21:11 +00:00
rmacnak@google.com f848586f7f Prevent unbounded growth of the getField/setField closure caches.
BUG=http://dartbug.com/16539
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35433 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-25 17:47:15 +00:00
rmacnak@google.com a8eacc8abf Blacklist SystemEncoding.decode/encode.
Review URL: https://codereview.chromium.org//248133006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35293 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 00:58:47 +00:00
rmacnak@google.com 7ba8ca5753 Reapply "Mark private functions in dart:* that are native or constructors as not visible (omitted from stack traces and ineligible for reflective enumeration or invocation)."
With fix for uninitialized is_dart_scheme_ when read from snapshot.

BUG=http://dartbug.com/15274
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35289 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 00:05:08 +00:00
rmacnak@google.com 7840906011 Revert "Mark private functions in dart:* that are native or constructors as not visible (omitted from stack traces and ineligible for reflective enumeration or invocation)."
Review URL: https://codereview.chromium.org//246173002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35238 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-22 00:08:52 +00:00
rmacnak@google.com 69d82c334b Mark private functions in dart:* that are native or constructors as not visible (omitted from stack traces and ineligible for reflective enumeration or invocation).
Ensure invocation_fuzz_test doesn't exit prematurely.

Also visit instance methods defined in superclasses.

Complete blacklist so invocation_fuzz_test passes on the VM.

B=http://dartbug.com/15274
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35234 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-21 23:24:17 +00:00
rmacnak@google.com e321ed387f Add fuzz test for reflective invocation.
B=http://dartbug.com/15274
R=gbracha@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35155 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-17 21:48:23 +00:00
kevmoo@google.com 4283c3e41e using unittest via package import
R=sigmund@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34890 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 19:42:11 +00:00
floitsch@google.com 07b6c4739e Add support for closure calls through getters.
Support reflect(o).invoke(#bar) where bar is a getter.
library.getField(#foo) where `foo` is a method.

BUG= http://dartbug.com/15138
R=karlklose@google.com

Committed: https://code.google.com/p/dart/source/detail?r=34555
Reverted: https://code.google.com/p/dart/source/detail?r=34556

Committed: https://code.google.com/p/dart/source/detail?r=34779
Reverted: https://code.google.com/p/dart/source/detail?r=34782

Committed: https://code.google.com/p/dart/source/detail?r=34818
Reverted: https://code.google.com/p/dart/source/detail?r=34820

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34823 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 13:27:37 +00:00
floitsch@google.com 8cdf6bde8e Revert "Add support for closure calls through getters."
This reverts commit r34818.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34820 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 13:06:15 +00:00
floitsch@google.com 6c9c0642a0 Add support for closure calls through getters.
Support reflect(o).invoke(#bar) where bar is a getter.
library.getField(#foo) where `foo` is a method.

BUG= http://dartbug.com/15138
R=karlklose@google.com

Committed: https://code.google.com/p/dart/source/detail?r=34555
Reverted: https://code.google.com/p/dart/source/detail?r=34556

Committed: https://code.google.com/p/dart/source/detail?r=34779
Reverted: https://code.google.com/p/dart/source/detail?r=34782

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34818 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 11:27:00 +00:00
jwren@google.com 3f6af0d71a Fix for 15979- class aliases now have missing concrete members warnings generated on them.
This CL also changes the ErrorVerifier.visitClassTypeAlias() method to more closely resemble ErrorVerifier.visitClassDeclaration(), a change is made to tests/lib/mirrors/abstract_class_test.dart, and a bug issue is fixed in TestTypeProvider.

Is there a better way to indicate that there is a warning on a line in a test file?

R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34802 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 23:30:05 +00:00
floitsch@google.com b7fefddf34 Revert "Add support for closure calls through getters."
This reverts commit r34779.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34782 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 15:58:49 +00:00
floitsch@google.com 569e0f50ed Add support for closure calls through getters.
Support reflect(o).invoke(#bar) where bar is a getter.
library.getField(#foo) where `foo` is a method.

BUG= http://dartbug.com/15138
R=karlklose@google.com

Committed: https://code.google.com/p/dart/source/detail?r=34555
Reverted: https://code.google.com/p/dart/source/detail?r=34556

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34779 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 15:02:01 +00:00
floitsch@google.com 47a1edad2b Move mirrors-test from dart2js_extra to lib/mirrors.
R=ahe@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34728 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-04 09:48:31 +00:00
sigurdm@google.com 0d8f355788 Improve the mirror support for deferred loading by registering elements only included by mirror-usage seperately.
R=johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34685 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-03 08:01:17 +00:00
floitsch@google.com 4cf0157e5e Allow getField of methods.
BUG= http://dartbug.com/13002
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34598 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-01 14:04:49 +00:00
floitsch@google.com ff402648a2 Revert "Add support for closure calls through getters."
This reverts commit r4555.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34556 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-31 15:21:27 +00:00
floitsch@google.com 86303df642 Add support for closure calls through getters.
Support reflect(o).invoke(#bar) where bar is a getter.
library.getField(#foo) where `foo` is a method.

BUG= http://dartbug.com/15138
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34555 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-31 14:22:42 +00:00
rmacnak@google.com f0626388f5 VM: Evaluate metadata on a class in the scope of its library not the scope of the class.
BUG=http://dartbug.com/17795
R=gbracha@google.com, hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34537 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-28 22:38:32 +00:00
rmacnak@google.com 9c105f7c9c Handle creating ParameterMirrors for the parameters of forwarding constructors.
BUG=http://dartbug.com/17823
R=hausner@google.com, regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34494 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-28 01:22:03 +00:00
rmacnak@google.com 78ab60a0de Implement MethodMirror.location in the VM.
R=gbracha@google.com, hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34400 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-26 00:44:54 +00:00
sigurdm@google.com 30ac6d116d Introduces the new syntax for deferred loading
import "lib.dart" deferred as lib;

And then injecting a function of the name "loadLibrary" into the
namespace of the import prefix.

This FunctionElement is a triggers the builder to emit special code that causes _loadLibraryWrapper in js_helper to be called.

Dart2dart will not crash on deferred loading, but calls to
loadLibrary will become calls to a (not-existing) top-level function
loadLibrary.

The old syntax (using metadata) is still working

For now keeping the language tests with the old syntax in addition to
the updated tests.

R=floitsch@google.com, johnniwinther@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34230 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-21 07:50:08 +00:00
rmacnak@google.com f8c59de4d6 Clean up ClosureMirror.invoke(#call, ...).
R=asiva@google.com, gbracha@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33790 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-17 23:43:32 +00:00
rmacnak@google.com 8c0e1a602e Fix LibraryMirror.invoke to call through the contents of an implicit getter.
BUG=http://dartbug.com/17452
R=asiva@google.com, gbracha@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33682 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-14 01:14:06 +00:00
rmacnak@google.com 10ecef7968 Remove ObjectMirror.[].
R=ahe@google.com, gbracha@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33543 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-11 18:21:13 +00:00