regis@google.com
163f1c2244
Improve _toInt64() and _toUint64() conversions in TypedData.
...
Add missing conversions of exponent and modulus in Bigint.modPow().
Fix typos in Bigint Classic reduction (modPow tests coming in later cl).
Address a few more TODOs.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//916153002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43697 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 20:57:33 +00:00
rmacnak@google.com
4de5f89b99
Rename IsConstructor to IsGenerativeConstructor.
...
This matches the terminology in the spec, and it avoids confusion with the function kind kConstructor, which indicates either a generative constructor or a factory constructor.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//910313002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43673 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 00:59:19 +00:00
srdjan@google.com
81d8099650
Redesign inlining interval computation.
...
Review URL: https://codereview.chromium.org//904763003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43622 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 23:11:05 +00:00
iposva@google.com
6898a10c93
- Make sure to fail early if an non-stacktrace is passed into the VM
...
where we expect one.
Review URL: https://codereview.chromium.org//908433002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43546 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-06 09:23:57 +00:00
hausner@google.com
2487c76886
Add support for sync* and yield and yield*
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//888463004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43516 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-05 18:36:40 +00:00
fschneider@google.com
2727257bf8
VM: Fix source location in stack trace of async code.
...
This eliminates an invalid source position and allows async code
to work with the stack_traces package to a get full async stack chain.
Frames with an invalid location (file.dart:1:1) are now printed without
line/column information (file.dart)
BUG=dartbug.com/22009
R=iposva@google.com
Review URL: https://codereview.chromium.org//904443002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43497 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-05 10:26:27 +00:00
regis@google.com
a5ee233d1b
Make Bigint instances immutable by removing all setters.
...
This required rewriting a large portion of bigint.dart.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//842033005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43492 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 23:56:23 +00:00
zra@google.com
1299ad1485
Allows turning on checked mode on a per-isolate basis
...
using the embedding API.
R=regis@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//883263004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43481 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 18:32:48 +00:00
johnmccutchan@google.com
e1d3dbcd8c
Reduce isolate startup time in debug mode by 20 millis
...
Before:
CorelibIsolateStartup(RunTime): 34280
After:
CorelibIsolateStartup(RunTime): 14836
R=koda@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//884793002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43252 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-28 18:54:18 +00:00
lrn@google.com
ab51ccc9f0
Create string efficiently from Uint16List/View.
...
R=asiva@google.com , fschneider@google.com
Review URL: https://codereview.chromium.org//864463002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43235 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-28 12:44:44 +00:00
fschneider@google.com
b79f717e89
VM: Use PC offset instead of absolute PC in exception handler info.
...
Similar to the change I did for PC descriptors: We can save space by
using a uint32_t for the offset, instead of a uword for the absolute pc.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//868103002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43138 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-26 15:40:06 +00:00
rmacnak@google.com
db79e9cca6
Rename is_visible to is_reflectable; use is_debuggable instead of is_reflectable to decide whether to filter a frame from stack traces.
...
Merge verbose_stacktrace flag into show_hidden_frames.
Don't mark native functions as non-debuggable (breakpoints don't actually work there now but nothing goes wrong).
BUG=
Review URL: https://codereview.chromium.org//868453002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43121 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-23 21:16:40 +00:00
johnmccutchan@google.com
694f85ae3a
Fix Observatory disassembly view
...
BUG=
R=srdjan@google.com
Review URL: https://codereview.chromium.org//866383003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43116 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-23 18:46:14 +00:00
fschneider@google.com
dd824bd017
Store pc offset instead of absolute pc in the pc descriptors.
...
This saves space on 64-bit platforms as the offset is stored
as a uint32_t compared to a pointer-size absolute address.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//875443002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43100 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-23 12:30:11 +00:00
rmacnak@google.com
2fb0bb020b
Reapply "Mark all private functions in dart: libraries as invisible (*sniff*). Previously these functions were only marked invisible if they were also native, a constructor, or on a black list."
...
Broken assumption in Dartium fixed in blink r188698.
R=hausner@google.com
Review URL: https://codereview.chromium.org//862093003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43053 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-21 20:44:04 +00:00
vegorov@google.com
e31313efea
Refactor _ByteDataView.[set|get]<Type> methods to improve their performance.
...
- don't manually truncate values before passing them to TypedData._[set|get]<Type> - these methods already have truncating semantics;
- don't call into runtime for endianess conversion, implement it in pure Dart instead (with an intent to provide optimized version on platforms that support fast byte-swapping instructions);
- force inlining of these methods (change the order of checks in the ShouldWeInline to guarantee inlining of whitelisted methods).
Unrelated change:
- tweak output of Function::CheckSourceFingerprint to be immediately copy&paste useful.
R=fschneider@google.com
BUG=http://dartbug.com/22107
Review URL: https://codereview.chromium.org//860963002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43038 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-21 14:21:49 +00:00
rmacnak@google.com
ed88ac7f0c
Revert "Mark all private functions in dart: libraries as invisible (*sniff*). Previously these functions were only marked invisible if they were also native, a constructor, or on a black list."
...
Broke Dartium.
TBR=hausner@google.com
Review URL: https://codereview.chromium.org//863773002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43026 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-20 20:56:59 +00:00
rmacnak@google.com
045bd762d7
Mark all private functions in dart: libraries as invisible (*sniff*). Previously these functions were only marked invisible if they were also native, a constructor, or on a black list.
...
An invisible function is hidden from stack traces, will not be enumerated
by mirrors, and cannot be directly invoked by mirrors. Note that private
classes remain accessible.
Fix a few internal dart:io functions that should be private.
Fix bug where mirrors would enumerate top-level invisible functions.
Mark observatory test that was using such private functions through
mirrors as failing.
BUG=http://dartbug.com/15274
R=hausner@google.com
Review URL: https://codereview.chromium.org//816353012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43019 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-20 18:32:19 +00:00
regis@google.com
a1c9e2b6b0
Simplify double to bigint conversion.
...
Remove 3 bigint mutators.
Remove unused support to create vm internal error.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//821123003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42842 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-13 21:29:44 +00:00
asiva@google.com
ca1c3241c4
Fix for issue 21398.
...
Accept only 'literal-like' objects when sending messages to isolates
spawned using spawnURI. Allow all objects for isolates spawned using
spawnFunction.
R=iposva@google.com
Review URL: https://codereview.chromium.org//834233003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42793 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-12 23:14:30 +00:00
regis@google.com
03fa3d1ff4
Mark mutator methods of canonical constants as invisible to reflective access.
...
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//810593008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42747 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-09 18:03:31 +00:00
koda@google.com
85907b42ae
Make helper functions static to avoid accidental collision and potentially aid optimization.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//838663003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42650 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-07 01:02:40 +00:00
koda@google.com
0b85873fc8
Deletion barrier preparation: validate overwritten references.
...
With the upcoming deletion barrier, every update of a pointer field must know whether the previous value was a valid pointer.
Currently, we always use StorePointer/StoreSmi, both for initialization and updates.
Initialization, and thus the potential for overwriting garbage values, appears in three places:
1. Object::Allocate/Foo::New.
2. Creating isolate from full snapshot.
3. Allocation in generated code.
Case 1 already null-initializes all underlying memory.
Case 2 is addressed by this CL by exploiting that:
i) fresh pages are zero-filled by OS, and
ii) freelist headers use only even values.
Case 3 is remains a TODO for future CLs.
(An alternative solution for case 2 would have been to add an init_foo method for every set_foo called.)
R=iposva@google.com
Review URL: https://codereview.chromium.org//792163003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42584 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-02 18:16:13 +00:00
hausner@google.com
ab3af6ec00
Introduce is_debuggable state bit on function objects
...
Simplify debugger logic. Any function can be marked as
non-debuggable when is is created. The debugger no longer
needs a heuristic which functions are debuggable.
Mostly used for synthetic, generated functions that
have no source code, e.g. async code, implicit getters and
setters, implicit constructors, forwarding constructors,
dispatcher functions.
Review URL: https://codereview.chromium.org//789643006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42570 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-29 22:31:17 +00:00
regis@google.com
4dc4caa34d
Modify Bigint _mulAdd, _sqrAdd, _estQuotientDigit, and Montgomery _mulMod
...
methods to return the number of digits processed, so that their intrinsified
versions on 64-bit platforms can process digit pairs.
R=zra@google.com
Review URL: https://codereview.chromium.org//811763004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42568 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-29 18:40:44 +00:00
srdjan@google.com
71df57b247
Fix crash in observatory: stub code do not have inlined intervals information. Added more comments to inline cache stub code.
...
Review URL: https://codereview.chromium.org//818443003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42547 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-22 13:24:31 +00:00
srdjan@google.com
4c8545557a
Add inlining ranges/intervals to code objects so that we can map a pc to the inlined stack. The mapping is not fast, used only for disassembly.
...
Copied from other CL: https://codereview.chromium.org/790213004/
Review URL: https://codereview.chromium.org//817823002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42522 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-19 20:03:27 +00:00
koda@google.com
1480e901d9
Use compare and swap when updating tag word in all C++ runtime code that might run concurrently.
...
This was done back in r39731, but then partially reverted in r39734, and has been broken ever since.
Also distinguish between sync/unsync versions. While old-space GC marker is non-concurrent, it uses unsync versions for efficiency.
Add a template to share code between sync versions and avoid unintentional discrepancies.
R=iposva@google.com
Review URL: https://codereview.chromium.org//804673003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42409 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-16 21:31:29 +00:00
vegorov@google.com
0e1479d2cb
Merge RawICData::range_feedback_ field into RawICData::state_bits_.
...
We were using a lot of bits in state_bits for recording deoptimization reasons, never asked about presence of those bits.
Ultimately optimizer cares only about 3 different deopts, so most all of those bits were wasted.
R=srdjan@google.com , zra@google.com
BUG=
Review URL: https://codereview.chromium.org//807593002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42388 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-16 13:12:35 +00:00
vegorov@google.com
aa48bd4759
Range feedback for arithmetic operations.
...
In addition to tracking input and output ranges in the IC-stubs with a Smi fastpath (SmiAdd and SmiSub, currently) this CL also introduces two IC stubs that have no fast-path by still track ranges and update the range feedback.
We are able to distinguish between the following ranges (encoding of the lattice is shown in the parens):
- u-smi (0000)
- smi (0001)
- uint31 (0010)
- int32 (0011)
- uint32 (0100)
- int64 (1xxx) and (x1x1)
BUG=
R=fschneider@google.com , srdjan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//735543003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42370 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-15 18:48:15 +00:00
turnidge@google.com
30e78f2f0f
Move notification of isolate creation until after the ObjectStore is initialized.
...
The debugger_ is initialized in Dart::CreateIsolate but the object
store is only valid after Dart::InitializeIsolate. I could have moved
the initalization of debugger_ later, but then many of the debugger()
accesses in the vm would need null checks. Instead I moved the
isolate creation notification a bit.
I was only able to see this problem when running a two isolate program
with the --pause-isolates-on-start option.
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//802543002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42344 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-12 20:21:27 +00:00
hausner@google.com
8ece5c1b84
Allow Symbols in switch and maps
...
Allow Symbol literals (and const Symbol instances) as switch expression
and as key values in const Maps.
This implements the most recent Spec changes.
R=regis@google.com
Review URL: https://codereview.chromium.org//781203005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42230 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 00:24:07 +00:00
johnmccutchan@google.com
f216834af8
Expose set_source service command for functions
...
- Can change signatures
- Currently only works for unexecuted functions.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//751183003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42124 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-04 23:35:24 +00:00
zerny@google.com
4fb54d853d
Support use of external strings as inputs to LoadCodeUnitsInstr.
...
R=vegorov@google.com
BUG=
Review URL: https://codereview.chromium.org//765743003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42099 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-04 09:26:48 +00:00
rmacnak@google.com
dd3c1fa32e
Remove several entries from invocation fuzzer blacklist.
...
Add event loop, isolate startup, and symbol helper functions to the invisible list.
Include doubles as a target.
BUG=http://dartbug.com/15274
BUG=http://dartbug.com/20583
BUG=http://dartbug.com/21707
R=regis@google.com
Review URL: https://codereview.chromium.org//775223002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42092 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-03 22:08:32 +00:00
fschneider@google.com
a49870e721
VM: Remove use of IterableMixinWorkaround from _List, _ImmutableList and _GrowableList.
...
_List, _ImmutableList and _GrowableList now extend ListBase which uses ListMixin.
Note that typed data lists are still using IterableMixinWorkaround for now.
They will be changed in a separate CL since it involves a few more changes
to the VM.
BUG=dartbug.com/13647
R=lrn@google.com
Review URL: https://codereview.chromium.org//730543002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42061 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-02 10:38:51 +00:00
zerny@google.com
8e807c8550
Integrate the Irregexp Regular Expression Engine.
...
BUG=http://dartbug.com/19090
R=fschneider@google.com
Committed: https://code.google.com/p/dart/source/detail?r=41949
Review URL: https://codereview.chromium.org//744853003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41983 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-26 09:32:43 +00:00
zerny@google.com
84a4135901
Revert "Integrate the Irregexp Regular Expression Engine."
...
This reverts commit https://code.google.com/p/dart/source/detail?r=41949
TBR=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//754383002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41950 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-25 13:36:40 +00:00
zerny@google.com
43ac0c6f33
Integrate the Irregexp Regular Expression Engine.
...
BUG=http://dartbug.com/19090
R=fschneider@google.com
Review URL: https://codereview.chromium.org//744853003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41949 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-25 13:10:21 +00:00
regis@google.com
57888924c4
Resubmit bigint changes of r41817 that were later reverted.
...
An inliner issue was fixed in r41840.
A missing length increment is added by this cl.
Minor improvements and comments.
R=zra@google.com
Review URL: https://codereview.chromium.org//747483002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41873 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-20 23:18:03 +00:00
regis@google.com
bbf3bfc0cd
Revert bigint changes of r41817 until dart2js failures are understood and fixed.
...
Keep x64 assembler additions.
Review URL: https://codereview.chromium.org//741613002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41820 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-19 02:00:07 +00:00
regis@google.com
925f0b6292
Process two 32-bit digits as one 64-bit digit in bigint absAdd and absSub
...
intrinsic on x64. More to follow.
Added assembler instructions and tests.
R=zra@google.com
Review URL: https://codereview.chromium.org//732663003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41817 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-19 00:12:25 +00:00
hausner@google.com
4bf624ebc0
Implement enum types in VM
...
Fully support enum types as per language spec version 1.6.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//735723003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41815 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-18 23:10:07 +00:00
vegorov@google.com
2e8791fe38
Fix overflow check in the Smi::ShiftOp.
...
It did not work correctly for the corner case like -1 << 63.
BUG=
R=fschneider@google.com
Review URL: https://codereview.chromium.org//732573002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41740 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-14 13:19:56 +00:00
fschneider@google.com
b26ff22adf
Allocation sinking for contexts.
...
Improved aliasing computation in presence of Redefinition and AssertAssignable.
Added possibility for inlining annotations via --enable-inlining-annotations flag.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//184523002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41713 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-13 13:53:58 +00:00
koda@google.com
8479136580
Support verified heap pointer writes on ia32.
...
With --verified_mem, use VerifiedMemory to duplicate all pointer writes in the heap, and verify that no unaccounted writes occurred.
R=iposva@google.com
Review URL: https://codereview.chromium.org//711833002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41700 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-12 23:47:42 +00:00
koda@google.com
fe2d2d5c3d
Add more missing StorePointer/StoreSmi calls.
...
Also move these to RawObject (as privates), for when handles are unavailable.
R=iposva@google.com
Review URL: https://codereview.chromium.org//685583002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41609 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-07 17:24:47 +00:00
koda@google.com
dd2bbd3da9
Add missing StorePointer/StoreSmi in ContextScope.
...
R=iposva@google.com
Review URL: https://codereview.chromium.org//673253002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41592 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-07 01:51:17 +00:00
vegorov@google.com
41bc926f6c
Suppress inlining of complex Bigint intrinsics.
...
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//705063003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41558 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-06 13:56:19 +00:00
regis@google.com
5c55e61647
Resubmit fix for Function::Clone() and Field::Clone() to adjust the class owner
...
of type parameters (issue 18630).
Make sure to clone the parameter type array as well.
Add regression tests.
R=iposva@google.com
Review URL: https://codereview.chromium.org//693693003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41474 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-03 23:16:33 +00:00