iposva@google.com
de7f866c4a
- Allow patching of top-level methods and accessors.
...
Review URL: https://chromiumcodereview.appspot.com//10824209
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10409 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-08 17:29:49 +00:00
turnidge@google.com
2d70c7a5eb
Improve the stack trace output to be more readable.
...
BEFORE
Unhandled exception:
MyException
0. Function: '::baz' url: 'file:///Users/turnidge/dart/bug.dart' line:2 col:3
1. Function: '_OtherClass@11f7ef14._OtherClass@11f7ef14._named@11f7ef14' url: 'file:///Users/turnidge/dart/bug.dart' line:7 col:8
2. Function: '::set:globalVar' url: 'file:///Users/turnidge/dart/bug.dart' line:12 col:3
3. Function: '::_bar@11f7ef14' url: 'file:///Users/turnidge/dart/bug.dart' line:16 col:3
4. Function: 'MyClass.get:field' url: 'file:///Users/turnidge/dart/bug.dart' line:25 col:9
5. Function: 'MyClass.fooHelper' url: 'file:///Users/turnidge/dart/bug.dart' line:30 col:7
6. Function: 'MyClass.foo' url: 'file:///Users/turnidge/dart/bug.dart' line:32 col:14
7. Function: 'MyClass.function' url: 'file:///Users/turnidge/dart/bug.dart' line:21 col:15
8. Function: 'MyClass.MyClass.' url: 'file:///Users/turnidge/dart/bug.dart' line:21 col:18
9. Function: '::function' url: 'file:///Users/turnidge/dart/bug.dart' line:38 col:10
10. Function: '::main' url: 'file:///Users/turnidge/dart/bug.dart' line:38 col:24
AFTER
Unhandled exception:
MyException
#0 baz (file:///Users/turnidge/dart/bug.dart:2:3)
#1 _OtherClass._OtherClass._named (file:///Users/turnidge/dart/bug.dart:7:8)
#2 globalVar= (file:///Users/turnidge/dart/bug.dart:12:3)
#3 _bar (file:///Users/turnidge/dart/bug.dart:16:3)
#4 MyClass.field (file:///Users/turnidge/dart/bug.dart:25:9)
#5 MyClass.foo.fooHelper (file:///Users/turnidge/dart/bug.dart:30:7)
#6 MyClass.foo (file:///Users/turnidge/dart/bug.dart:32:14)
#7 MyClass.MyClass.<anonymous closure> (file:///Users/turnidge/dart/bug.dart:21:15)
#8 MyClass.MyClass (file:///Users/turnidge/dart/bug.dart:21:18)
#9 main.<anonymous closure> (file:///Users/turnidge/dart/bug.dart:38:10)
#10 main (file:///Users/turnidge/dart/bug.dart:38:24)
Review URL: https://chromiumcodereview.appspot.com//10826191
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10408 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-08 17:22:26 +00:00
fschneider@google.com
f3e84fc670
Reapply and fix "Remove duplicate code for smi and double comparison from the compiler.".
...
The bug fix was to always allocate the correct number of temp registers on x64.
Review URL: https://chromiumcodereview.appspot.com//10855050
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10384 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-08 14:05:53 +00:00
fschneider@google.com
4b99453183
Revert r10379: "Remove duplicate code for smi and double comparison from the compiler."
...
TBR=vegorov@google.com
Review URL: https://chromiumcodereview.appspot.com//10828208
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10382 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-08 13:15:12 +00:00
fschneider@google.com
a563957943
Remove duplicate code for smi and double comparison from the compiler.
...
Review URL: https://chromiumcodereview.appspot.com//10823228
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10379 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-08 13:04:41 +00:00
vegorov@google.com
b9aa74f3a2
Eliminate phis that do not reach any non-environment uses.
...
This takes care of phis for temporary variables like :expr_temp, lia, lix, igr, casc, alloc, sca that currently create unnecessary pressure on the back-edge of loops.
R=srdjan@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10832180
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10377 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-08 12:38:21 +00:00
rnystrom@google.com
0bc9b19740
Rename BadNumberFormatException -> FormatException.
...
Review URL: https://chromiumcodereview.appspot.com//10850034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10354 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-07 20:56:59 +00:00
srdjan@google.com
3dfabb26ea
Verify at method exit that stack size is the same as at entry, except for methods with finally clauses. Mark functions that have finally clauses as they may produce extra values on stack. Note that we currently do not optimize methods with finally clauses and therefore there are no issues related to incorrect stack size at deoptimization.
...
Review URL: https://chromiumcodereview.appspot.com//10824201
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10351 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-07 20:15:17 +00:00
srdjan@google.com
987cb14b3a
Fix a stack state error in checked mode.
...
Review URL: https://chromiumcodereview.appspot.com//10829222
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10350 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-07 20:14:53 +00:00
turnidge@google.com
6e19e3c4cb
Two edits based on feedback from whesse:
...
1. Simplify the ThrowException test to make it less confusing.
2. Provide better documentation for Dart_ThrowException and
Dart_PropagateError.
Review URL: https://chromiumcodereview.appspot.com//10823189
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10346 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-07 18:01:46 +00:00
kmillikin@google.com
4a24120c8d
Move all register allocator environment initialization into class Environment.
...
Move the register constraints and initial live ranges of environment values
out of the register allocator and into the environment class.
R=vegorov@google.com ,srdjan@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10826184
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10342 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-07 15:53:02 +00:00
kmillikin@google.com
3bdeb8f453
Add a function's initial stack check to the IL instruction stream.
...
This stack check needs a GC safepoint. It is simplest to implement
that by exposing it as an explicit instruction.
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10855019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10338 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-07 13:43:46 +00:00
vegorov@google.com
4a24eb7ad8
Add hints when resolving phies and register constraints.
...
R=fschneider@google.com
Review URL: https://chromiumcodereview.appspot.com//10829218
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10333 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-07 11:55:42 +00:00
fschneider@google.com
99e28aacb6
Refactor Instruction classes to use a template base class.
...
This change makes instructions and computations more uniform.
Also make CreateArrayComp take a register input operand. This
is done by changing the convenience DECLARE_COMPUTATION macro accordingly and use
TemplateComputation as base class for call-instructions.
Review URL: https://chromiumcodereview.appspot.com//10831178
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10330 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-07 10:34:39 +00:00
kmillikin@google.com
9f5f977732
Account for '\0' string terminator in allocated buffers.
...
OS::SNPrint takes a size in bytes argument that includes the null
terminator, it returns the number of characters printed not including
the null terminator. Unfortunately we don't have a uniform way of
writing this.
This change fixes three sites that do not account for the terminator
when writing, with the effect of dropping the last character before
the terminator.
R=srdjan@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10823181
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10329 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-07 10:19:33 +00:00
srdjan@google.com
a954183877
Do not silently convert integers to doubles in binary operations. Only when at least one of arguments is double can the result be double.
...
Review URL: https://chromiumcodereview.appspot.com//10828189
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10323 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-07 00:32:22 +00:00
regis@google.com
bf7540da98
Store pointer instead of reference to LocalVariable in ast and flow graph.
...
Address comments of already committed r10203.
Review URL: https://chromiumcodereview.appspot.com//10832126
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10321 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 23:17:04 +00:00
srdjan@google.com
38061c3a08
Forgot to save changes to comments.
...
Review URL: https://chromiumcodereview.appspot.com//10824190
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10320 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 23:10:56 +00:00
srdjan@google.com
ea8a712ca3
Fix x64 performance regression, array allocation was always going via runtime. Improvements: Havlak 70%, DeltaBlue 20%, Meteor 20%.
...
Review URL: https://chromiumcodereview.appspot.com//10828182
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10319 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 23:08:08 +00:00
asiva@google.com
05f310b207
Do not try to serialize VM objects, these are read only canonical objects and should be referred to using ids.
...
Turn VM symbols back on.
Review URL: https://chromiumcodereview.appspot.com//10834069
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10310 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 21:56:39 +00:00
srdjan@google.com
10b1928a3d
Add deopt info to code object and print it. Still missing is the code to 'execute' the deopt instructions and thus deoptimize.
...
Review URL: https://chromiumcodereview.appspot.com//10823131
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10308 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 21:15:26 +00:00
regis@google.com
6f5281c404
Get rid of ast node ids.
...
Rename cid to deopt_id.
Review URL: https://chromiumcodereview.appspot.com//10832150
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10306 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 20:24:03 +00:00
vegorov@google.com
be323c2d61
Don't mark register constraints resolution moves as prefering registers.
...
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10832159
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10293 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 15:43:03 +00:00
kmillikin@google.com
1093cf4fe5
Allocate the environment's location backing store during register allocation.
...
The code relies on the addresses of elements in this backing store. It was
correct but difficult to guarantee when it was a growable array's backing
store.
R=vegorov@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10831179
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10290 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 15:13:21 +00:00
kmillikin@google.com
9ffbf2ffce
Store variable counts in the flow graph builder.
...
Store the constant counts of copied parameters, non-copied parameters, and
(non-parameter) stack locals in the flow graph builder. This saves passing
them around to flow graph member functions.
Change usage of "fixed parameter" to "non-copied parameter" because it is
different than what fixed parameter means in other parts of the system.
R=fschneider@google.com ,zerny@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10855007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10289 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 14:33:23 +00:00
vegorov@google.com
f07819adb2
Ensure that ia32 build passes all tests with --use-ssa on.
...
Bugs fixed in register allocator:
- incorrect assertions in SplitAt;
- allocation finger should not cache positions that are owned by a sibling after split;
- UpdateFreeUntil should allow evicting live range with vreg 0;
- values expected in fixed locations should not cause an interference at the instruction itself, they can be evicted if need arises;
Bug fixed in deoptimization:
- parallel move resolver uses push/pop to free a scratch register for memory to memory moves, when using it for deoptimization we need to ensure that those push/pops do not interfere with actual moves;
R=srdjan@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10824165
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10287 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 12:24:12 +00:00
fschneider@google.com
e2c7f2449d
Make CreateArrayComp a call by using explicit push-argument instructions.
...
This enables SSA compilation of functions containing CreateArray. Currently,
we don't support call-instructions that have pushed arguments and also take
input operands in registers. This will be done in a separate CL.
Review URL: https://chromiumcodereview.appspot.com//10831176
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10284 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 11:38:45 +00:00
kmillikin@google.com
70bd677417
Reapply "Use platform-independent format specifiers when disassembling code objects."
...
This reapplies svn revision 10163 with a (tested) fix for Windows.
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10834155
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10282 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 10:50:38 +00:00
fschneider@google.com
f7963998a8
Simplify BlockEntryInstr::DiscoverBlocks a bit.
...
We can remove the case of blocks containing a single instruction because
every basic block is now terminated with a Goto or Branch (except for the graph
entry, which is handled specially).
Review URL: https://chromiumcodereview.appspot.com//10825198
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10281 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 10:43:47 +00:00
zerny@google.com
c1262fbd49
Reapply "Added support for copied parameters to the SSA compiler."
...
This reapplies svn revision 10172 with a bug fix.
Original Review URL: https://chromiumcodereview.appspot.com//10837076
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10824177
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10280 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 10:07:26 +00:00
fschneider@google.com
442b981575
Replace InstanceSetterComp instruction with a plain instance call.
...
After my last change to InstanceSetterComp we do not need a separate
IL instruction for it anymore.
Review URL: https://chromiumcodereview.appspot.com//10829164
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10278 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 08:55:13 +00:00
kmillikin@google.com
19596c8071
Change EXPECT(!Dart_IsError(...)) to EXPECT_VALID(...) in VM tests.
...
This change will give better error messages when the expectation fails
in the tests. EXPECT_VALID prints the error.
R=iposva@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10825178
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10276 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 07:55:53 +00:00
rmacnak@google.com
a3468803c5
Made it possible to distinguish between a method or top-level function and the
...
function for a closure defined in such. Addresses issue 4337.
Review URL: https://chromiumcodereview.appspot.com//10831165
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10266 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 22:56:21 +00:00
asiva@google.com
cd5b8f890c
Address review comments.
...
Review URL: https://chromiumcodereview.appspot.com//10829177
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10264 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 22:30:53 +00:00
turnidge@google.com
000ffd177c
Improve method names in the ThrowException test to make it less misleading.
...
Review URL: https://chromiumcodereview.appspot.com//10832146
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10262 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 22:15:51 +00:00
turnidge@google.com
2803d78dfd
Change the zone allocation api.
...
Instead of passing a size in bytes to the allocation function, we now
have a templatized Alloc function:
zone->Alloc<Type>(len)
This is better for security, as we can check for integer overflow in
the size computation before performing the allocation. Before, we
often failed to check this.
Review URL: https://chromiumcodereview.appspot.com//10836061
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10254 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 21:51:44 +00:00
turnidge@google.com
51a1842014
Improve the error message for handle check failure to list the actual
...
and expected types:
error: Handle check failed: saw <whatever> expected <whatever>
Review URL: https://chromiumcodereview.appspot.com//10843053
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10253 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 21:38:08 +00:00
asiva@google.com
540b01f66f
Eagerly get the function and code corresponding to the frame elements in a stack trace so that we won't be doing expensive code object lookups when setting up the stack trace.
...
Review URL: https://chromiumcodereview.appspot.com//10824128
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10248 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 20:30:08 +00:00
fschneider@google.com
04fa2e3547
Refactor our IL instruction for static setters.
...
We do not need a separate IL instruction anymore. Instead I generate
a normal static call and save the result in a temporary local if it
is needed.
Review URL: https://chromiumcodereview.appspot.com//10825176
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10222 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 11:14:07 +00:00
kmillikin@google.com
5a5c84fa06
Change TRACE_ALLOC to take a statement rather than an argument list.
...
This allows tracing things that are not arguments to OS::Print.
R=vegorov@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10825173
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10216 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 08:27:42 +00:00
ager@google.com
4531c0c770
Remove old isolate API and update all code in the repository to use
...
the new API.
R=kasperl@google.com ,sigmund@google.com ,turnidge@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10837070
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10210 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 07:24:29 +00:00
vegorov@google.com
b601fa02c7
When selecting an optimal position for SplitBetween(from, to) ensure:
...
- that loop and block structure is taken into account;
- that split sibling has proper interference with values incoming into instruction corresponding to the to position.
R=srdjan@google.com
BUG=4308
Review URL: https://chromiumcodereview.appspot.com//10850023
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10208 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 06:29:35 +00:00
cshapiro@google.com
cb1aef3bb9
Describe the reserved header bits with their own bit-field definition.
...
Review URL: https://chromiumcodereview.appspot.com//10825167
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10207 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 00:34:25 +00:00
srdjan@google.com
d9c35db17c
Allow NULL classes in inline caches (for example for ==). Fixes a 22x regression with r9762 on a benchmark provided by Ryan.
...
Review URL: https://chromiumcodereview.appspot.com//10830154
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10206 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 00:23:52 +00:00
turnidge@google.com
4288220bb2
The null tests that I added for Dart_NewString{8,16,32} were too restrictive.
...
It is okay to pass NULL codepoints if the length is zero.
This should fix the issue we were seeing in dartium.
Review URL: https://chromiumcodereview.appspot.com//10829153
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10204 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-02 23:56:16 +00:00
regis@google.com
12de02cbab
Associate the correct type to method receivers (instead of Dynamic type).
...
Properly name the first implicit parameter to factories as ':type_arguments'
(instead of 'this', which made it accessible to user code).
Various cleanup.
Review URL: https://chromiumcodereview.appspot.com//10831142
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10203 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-02 23:00:55 +00:00
srdjan@google.com
85f242dbb1
Adding deopt info to code object.
...
Review URL: https://chromiumcodereview.appspot.com//10830131
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10189 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-02 18:28:11 +00:00
fschneider@google.com
3c5c1dc4bd
Separate double binary operation into a separate instruction class.
...
Double operation are currently implemented as calls, so they need
arguments pushed on the stack. Smi and Mint operations are not calls,
so they are handled with the same instruction as before.
Review URL: https://chromiumcodereview.appspot.com//10850014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10178 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-02 16:26:46 +00:00
fschneider@google.com
e5bd4af606
Support Throw and ReThrow in SSA-based compiler.
...
This change makes them call-instructions using explicit push-arguments.
Review URL: https://chromiumcodereview.appspot.com//10829141
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10176 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-02 15:54:42 +00:00
kmillikin@google.com
effc29cd25
Revert "Use platform-independent format specifiers when disassembling code objects."
...
This is still broken on Windows.
TBR=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10826116
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10175 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-02 15:52:05 +00:00