Commit Graph

595 Commits

Author SHA1 Message Date
regis@google.com 139187ae5f Add javascript compatibility warnings for strings that are not identical, but
equal. The vm does not canonicalize all strings as javascript does.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37013 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-04 20:47:54 +00:00
rmacnak@google.com 443faa9700 Add accessors for Maps to the embedding API.
(To be used by Dartium.)

R=koda@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36840 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-30 21:49:28 +00:00
asiva@google.com de6a12ce6a - Add Dart_EmptyString to return the canonical empty string similar to how
Null, True and False are done
- Removed check for current isolate from Dart_Null, Dart_True, Dart_False,
  Dart_EmptyString as these are returning singleton objects.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36823 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-30 17:33:15 +00:00
zra@google.com f01161d76c Tries to fix mips build.
Review URL: https://codereview.chromium.org//292333004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36500 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-22 14:40:41 +00:00
asiva@google.com d5fbbd593a Add a new API function to extract all the native arguments into an array
passed in by the caller.

This call can be used in DOM bindings patterns as follows:
Old code -

Dart_Handle exception = 0;
{
        WebGL* receiver = DartDOMWrapper::receiver< WebGL >(args);
        unsigned srcRGB = DartUtilities::dartToUnsigned(args, 1, exception);
        if (exception)
            goto fail;
        unsigned dstRGB = DartUtilities::dartToUnsigned(args, 2, exception);
        if (exception)
            goto fail;
        unsigned srcAlpha = DartUtilities::dartToUnsigned(args, 3, exception);
        if (exception)
            goto fail;
        unsigned dstAlpha = DartUtilities::dartToUnsigned(args, 4, exception);
        if (exception)
            goto fail;
        receiver->blendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
        return;
}
fail:
    Dart_ThrowException(exception);
    ASSERT_NOT_REACHED();


Proposed new code -

/**
 * One time initialization code for setting up argument descriptors
 */
const int kNumArgs = 5;
const int kNumNativeFields = 2;
static const uint8_t native_arg_descriptor[kNumArgs] = {
  DART_NATIVE_ARG_DESCRIPTOR(Dart_NativeArgument_kNativeFields, 0),
  DART_NATIVE_ARG_DESCRIPTOR(Dart_NativeArgument_kUint32, 1),
  DART_NATIVE_ARG_DESCRIPTOR(Dart_NativeArgument_kUint32, 2),
  DART_NATIVE_ARG_DESCRIPTOR(Dart_NativeArgument_kUint32, 3),
  DART_NATIVE_ARG_DESCRIPTOR(Dart_NativeArgument_kUint32, 4),
};
Dart_NativeArgument_Value native_args[kNumArgs];
intptr_t native_fields[kNumNativeFields];
native_args[0].as_native_fields.num_fields = kNumNativeFields;
native_args[0].as_native_fields.values = native_fields;

/**
 * Code executed for each invocation of the binding method
 */
Dart_Handle result = Dart_GetNativeArguments(args, kNumArgs, native_arg_descriptor, native_args);
if (Dart_IsError(result)) {
    Dart_ThrowException(result);
}
WebGL* receiver = DartDOMWrapper::receiver< WebGL >(native_args[0].as_native_fields.values);
unsigned srcRGB = native_args[1].as_uint32;
unsigned dstRGB = native_args[2].as_uint32;
unsigned srcAlpha = native_args[3].as_uint32;
unsigned dstAlpha = native_args[4].as_uint32;
receiver->blendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
return;

R=iposva@google.com, vsm@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36464 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-22 00:08:23 +00:00
hausner@google.com 12c56b29c7 Eliminate unused url mapping parameter in dartutils
Change the LibraryTagHandler used in unit tests to match
the real tag handler better, eliminating special treatment
of url canonicalization. This required changing the library
url of tests so tests don’t get loaded using dart scheme urls,
since builtin.dart doesn’t handle dart: urls.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35987 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-09 18:25:41 +00:00
rmacnak@google.com 92996516ed Add Dart_IdentityHash to the embedding API.
(For use in ScriptObjectTraits.)

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35750 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-05 17:32:21 +00:00
zra@google.com 7d0b680f95 Adds Simulator Longjmp and enables many tests for arm64.
R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35603 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-30 23:07:47 +00:00
asiva@google.com 4eb6d5f7d8 Modify the Weak Reference Set creation API to make it easier to create
these sets in the GC Prologue code.

When this new API is not used in dartium:
  Without prolog callbacks in New  gen GC:
    dom-modify createElement runs-per-second 260.94890510948903
    dom-modify createTextNode runs-per-second 172.0

  With prolog callbacks in New  gen GC:
    dom-modify createElement runs-per-second 316.0
    dom-modify createTextNode runs-per-second 197.60479041916167


When this new API is used in dartium:
  Without prolog callbacks in New  gen GC:
    dom-modify createElement runs-per-second 310.0
    dom-modify createTextNode runs-per-second 174.4765702891326

  With prolog callbacks in New  gen GC:
    dom-modify createElement runs-per-second 416.0
    dom-modify createTextNode runs-per-second 241.75824175824175

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35215 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-21 18:31:15 +00:00
koda@google.com 4843e329e3 Fix x64 GC test: ensure huge is huge enough.
TBR=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35180 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-18 20:01:41 +00:00
koda@google.com 718752bfe9 Simpler, more consistent triggering of old GC; also, use external in policy.
Consistently use PageSpace::NeedsGarbageCollection:
(a) After every scavenge, instead of tracking promotion failures.
(b) When creating weak handles with external allocations.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35174 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-18 18:23:35 +00:00
johnmccutchan@google.com ef666553a1 Add runtime and native entry tags
- Split runtime and native entry tags.
- Set runtime / native entry address as vm tag in stubs.
- Add reverse native entry resolver (pc to name) to public API (breaking change).
- Hookup reverse resolver for standalone VM (io + bootstrap + builtin natives).
- Runtime entries are registered with tags.
- Profiler queries for tag names via the reverse native entry resolver.
- Profiler outputs named entry tags as children under parent tag (runtime or native).

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34941 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 20:26:45 +00:00
zra@google.com 2fe51715e5 Begins work on ARM64, first assembler test.
Most new code is in constants_arm64.h and
{assembler,disassembler,simulator}_arm64.{h,cc}

The rest of the CL just #def's out tests, modifies status files,
and adds UNIMPLEMENTED functions, etc.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34654 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 17:39:32 +00:00
koda@google.com 79725661a7 Reduce GC from external allocation.
Before, external allocs artificially reduced new space capacity.
Now, we separately limit on total external size in new space.

Makes scavenges less frequent, while still limiting total footprint.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34485 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-27 22:11:39 +00:00
asiva@google.com d302dc431a Auto delete persistent weak handles during finalization after invoking the callback associated with the weak handle.
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34208 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-20 21:45:43 +00:00
asiva@google.com 76b153643c Remove Dart_AddGcPrologueCallback and Dart_RemoveGcPrologueCallback from the Dart API.
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33657 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-13 18:10:06 +00:00
asiva@google.com a611f736e0 Remove the ability to allow multiple gc prologue and gc epilogue callbacks
to be registered at any given time. Dartium seems to use only one.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33622 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-12 22:39:15 +00:00
koda@google.com 94b8e1b30a Fix external size accounting for prologue weak persistent handles.
Include prologue weak persistent handles (PWPH) when checking for promotion.

Since pointers have already been updated for PWPHs, use a bit in the handle to
remember whether the referent used to be in new space.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33552 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-11 20:27:44 +00:00
koda@google.com a69d028eb3 Track external allocated memory for weak persistent handles.
The amount of external allocation is tracked per generation
and informs GC policy.

BUG=dart:11471
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33467 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-07 23:53:32 +00:00
koda@google.com 87fbe42a46 Pretenure large external typed data and strings.
Also fix an incorrect API comment about handle return type.

BUG=dart:17284
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33344 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-05 21:09:19 +00:00
asiva@google.com e380b175f8 Pass in the isolate parameter to the weak persistent callback handler so that
there is no need to access the current isolate in the callback and delete
path (this code is run while a GC is in progress).

See https://codereview.chromium.org/185643003/ for corresponding changes
in dartium

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33282 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-04 18:11:19 +00:00
asiva@google.com 8e0129970c Use a tag bit for indicating prologue weak persistent handles, this avoids
the costly lookup to determine if a handle is a prologue weak persistent
handle or a regular weak persistent handle in Dart_DeleteWeakPersistentHandle

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33254 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-04 00:35:45 +00:00
fschneider@google.com 16857e0b13 Revert r32930 (Add more timing information in the VM to track time...)
It caused severe performance regressions that should be addressed.

TBR=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32959 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-24 12:15:55 +00:00
iposva@google.com edd82bc688 - Restore the better error message.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32939 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-21 22:44:39 +00:00
asiva@google.com 6d313d3797 Add more timing information in the VM to track time spent is dart code Vs native code.
R=johnmccutchan@google.com, turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32930 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-21 21:30:29 +00:00
asiva@google.com 04d7a5350f Add Dart_GetNativeFieldsOfArgument to get all the native fields of a dart
object. This is especially useful for dartium which has two native fields
the type id and the native implementation field for the wrapper. This allows
for both values to be extracted in one call.

R=vsm@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32905 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-21 16:53:23 +00:00
lrn@google.com 9c7655b8d7 Remove test change after revert code change.
Review URL: https://codereview.chromium.org//167913005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32900 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-21 13:59:36 +00:00
lrn@google.com 0dbb989cb8 Add internal operation that converts a growable list to a fixed list.
The conversion breaks the original list, but doesn't copy data.
Currently only used in List.from(Iterable).

BUG= http://dartbug.com/9458
R=floitsch@google.com, iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32896 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-21 13:15:16 +00:00
asiva@google.com addb9ed934 Add new Dart API function Dart_IsolateData which returns the peer isolate data associated with an isolate.
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32397 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-07 00:43:18 +00:00
lrn@google.com 3b3e87cabc Revert "Rename internal library dart:_collection-dev to dart:_internal."
Dartium needs updating too.

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

R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31877 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-16 12:06:38 +00:00
lrn@google.com ead87f47e9 Revert "Rename internal library dart:_collection-dev to dart:_internal."
Dartium needs updating too.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31827 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 12:27:44 +00:00
lrn@google.com 0098710559 Rename internal library dart:_collection-dev to dart:_internal.
BUG= http://dartbug.com/14140
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31823 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 09:24:46 +00:00
asiva@google.com 88de88feb5 Add Dart API method Dart_SetPersistentHandle to enable setting the value of
a persistent handle.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31443 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-03 18:47:38 +00:00
asiva@google.com a576fec3c0 Allow the native resolver to setup whether it needs the Dart API scope to
be setup automatically or not when a native function is invoked.
This would allow the embedder to treat some native functions as leaf
functions whose invocation can be very light.

R=hausner@google.com, zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31286 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 17:47:56 +00:00
rmacnak@google.com af3f18fa84 Add an API function to get a debugger stack trace from an error handle.
BUG=http://dartbug.com/14322
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30323 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-15 23:42:23 +00:00
srdjan@google.com cacd63cf7b Improve indexOf for one byte string receiver to work with other string classes.
Optimize access to core class’s class-ids.

R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29610 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 23:51:42 +00:00
sgjesse@google.com 2f27215203 Remove the reply port form the native isolate handler
The handler function for a native isolate no longer gets an explicit
reply port. Instead the reply port must be sent as part of the message
if required.

The Dart_CObject structure now exposes the send ports in a message to
a native isolate.

R=asiva@google.com, floitsch@google.com, whesse@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29418 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-29 08:45:32 +00:00
jacobr@google.com 80f92dc265 Add Dart_LibraryId method unblocking landing 45613003. TBR
BUG=
R=sra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29318 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-26 22:55:43 +00:00
floitsch@google.com 6a72655d1b Very simple version of Isolates.
R=ajohnsen@google.com, iposva@google.com, kasperl@google.com, lrn@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29271 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-25 19:23:00 +00:00
asiva@google.com 1a2f236fab Fix issue 13942 - Dart_Error function invokes OS::VSNPrint with the "format" string containing data derived from the string
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28809 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-17 17:49:45 +00:00
asiva@google.com 21cefcd726 Add a new method Dart_InvokeConstructor to allow invocation of generative
constructors on an object that has already been allocated using Dart_Allocate.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28276 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-04 20:00:48 +00:00
hausner@google.com fcb84c8dc9 Fix expression evaluation in library context
- Use correct source for patch functions when class
  finalizer reports error
- Reinstate support for class in Dart_EvaluateExpr

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28064 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-30 18:49:32 +00:00
asiva@google.com 292d8c9c21 Fix 13594.
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28017 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-27 16:55:20 +00:00
ajohnsen@google.com 0cc1e648e2 Re-enable VM isolate tests.
BUG=https://code.google.com/p/dart/issues/detail?id=6890
R=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27868 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-25 09:20:40 +00:00
rmacnak@google.com c9eabbcb56 Make Dart_IdentityEqual live up to its sepc and not leak boxing implementation detail. (Reland r27542.)
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27774 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-23 16:23:06 +00:00
rmacnak@google.com 0d6cfb77bd Remove Dart_[Qualified]ClassName.
Review URL: https://codereview.chromium.org//24252014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27724 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-20 21:17:19 +00:00
rmacnak@google.com 89d5616468 Never return a Dart_Handle on a dart::Class from the embedding API.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27715 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-20 18:29:56 +00:00
rmacnak@google.com 1d83b7c8c6 Setup the pool pointer when entering Dart from C++ so the intrinsic functions may rely on it being valid.
R=asiva@google.com, zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27683 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-20 00:33:24 +00:00
ricow@google.com fab06df0eb Revert revision 27542 "Make Dart_IdentityEqual live up to its spec and not leak boxing implementation detail."
This is causing checked mode failures on all vm bots.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27545 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-17 06:29:47 +00:00
rmacnak@google.com 8ed7a0367f Make Dart_IdentityEqual live up to its spec and not leak boxing implementation detail.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27542 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-17 01:30:30 +00:00