regis@google.com
32f3e11d99
Cleanup of error and warning reporting.
...
R=hausner@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//340203003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37468 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 22:30:34 +00:00
rmacnak@google.com
7ce5c53f0b
Pass around the current isolate in exception handling code.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//326183002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37409 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 18:17:03 +00:00
srdjan@google.com
3480ac4a0e
Fix deferred library code disabling for inlined functions.
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//313403004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37107 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-06 22:14:40 +00:00
srdjan@google.com
905d0d86bf
Increase optimization threshold since unoptimized code runs faster. Faster startup time, no measurable performance degradation.
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//322543002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37091 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-06 18:13:15 +00:00
vegorov@google.com
4e286b316f
Split GuardField into GuardFieldType and GuardFieldLength instructions.
...
Record expected length offset that matches guarded_cid.
This greatly simplifies code generation and control flow inside these guards.
Fixes the bug that was causing unoptimized code to call into runtime even when guard did not fail.
Add --trace-field-guards flags to trace updates to the state of guarded fields' properties.
BUG=http://dartbug.com/19003
R=fschneider@google.com , johnmccutchan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//304703002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36872 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-02 13:53:53 +00:00
srdjan@google.com
dec3af813b
Emit intrinsified code even if optimziation is turned off.
...
Also remove unsued flag —report-usage.
R=iposva@google.com
Review URL: https://codereview.chromium.org//293133003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36529 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-22 21:30:05 +00:00
iposva@google.com
b4b4889406
- Refined https://codereview.chromium.org/293963008/
...
Make compilation VM more fine grained
- Use the isolate where appropriate.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//294943008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36451 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-21 21:04:03 +00:00
hausner@google.com
d5807cf221
Fix code invalidation of functions with references to deferred libraries
...
When a code object with a reference to a deferred library prefix is
invalidated, it must be removed from the function object, and also
patched so that direct calls to it (from optimized code for example)
will trap and redirect to the newly compiled code.
Removing an overly eager assertion.
This fixes bug 18909.
R=fschneider@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//296853002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36436 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-21 16:06:41 +00:00
fschneider@google.com
17385b30cf
Fix issue 18834. Collect stack trace before the frame is prepared for OSR.
...
Otherwise there is a mismatch between PC in the frame and the PC marker.
R=turnidge@google.com
Review URL: https://codereview.chromium.org//292173005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36413 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-21 09:33:30 +00:00
srdjan@google.com
14ce525d79
Recognize List. constructor and turn it inot CreateArray.
...
R=johnmccutchan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//285543002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36138 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-13 23:09:22 +00:00
regis@google.com
dec11d8b7b
Add support for javascript incompatibility warnings (work in progress).
...
For now, warnings are only issued when applicable for type tests, type casts,
and toString.
Fix newly reported lint errors.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//260713008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36001 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-09 22:42:10 +00:00
zra@google.com
842a42a5a9
Adds unary double operations to ARM64, enables many tests.
...
Also removes disabling of optimization.
R=regis@google.com
Review URL: https://codereview.chromium.org//267283004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35863 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-07 20:04:05 +00:00
srdjan@google.com
6723f390fa
Disable optimizing compiler on SIMARM64.
...
R=zra@google.com
Review URL: https://codereview.chromium.org//256103003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35484 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-28 16:02:28 +00:00
srdjan@google.com
5ce61408ae
Fix SIMARM64 to compile on Mac, fix compilation because of ICData change.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//257793005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35460 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-26 00:13:32 +00:00
regis@google.com
e0ab99b0b2
Remember all deopt reasons in ic_data, not just the last one.
...
Remember if a JS warning was issued in ic_data.
Save a word in ic_data on 64-bit platforms.
R=iposva@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//254723003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35457 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-25 23:45:14 +00:00
fschneider@google.com
79a5307d5b
VM: Implement closure calls as instance calls.
...
Conceptually f() becomes f.call() where the .call method performs the actual
closure call. The closure call itself is implemented without a stub.
The check if the object called is a closure becomes a class-id check
which can be hoisted out of loops.
R=iposva@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//227723002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34917 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 10:56:00 +00:00
turnidge@google.com
1eba6be2b2
Implement new stacktrace and deoptimization stress testing flags:
...
--deoptimize-every=N
--deoptimize-filter=FunctionName
--stacktrace-every=N
--stacktrace-filter=FunctionName
Add a word of stack_overflow_flags to the Isolate. Use a bit in this
word to indicate whether or not a function is being compiler for OSR.
This allows us to distinguish an OSR overflow from a stress-testing
overflow.
BUG=
R=johnmccutchan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//226543007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34887 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 18:27:37 +00:00
fschneider@google.com
9ed4cf1cb6
Simplify and improve handling of IC and megamorphic cache miss handling.
...
Instead of going back and forth from stub code to C++, perform
only the lookup in C++ and call target functions only from
stub code.
noSuchMethod and implicit closure invocations are now also work with
the megamorphic cache. Before they would go slow-case in the megamorphic case.
This CL eliminates the InstanceFunctionLookup stub that was previously
used to handle noSuchMethod and implicit closure invocations.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//221173011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34774 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 09:27:43 +00:00
turnidge@google.com
d358d84eb7
Begin implementing flag --deoptimize-filter=FUNC for ia32.
...
Currently not functional - committing so that srdjan can investigate
why it doesn't work.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//226303002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34737 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-04 18:05:37 +00:00
fschneider@google.com
cc9e3b8068
Introduce a lazy-compile stub for functions.
...
The function's code pointer is either a lazy-compile stub
or the compiled code. The function is compiled on invocation.
There is no need to check for null when invoking a function. This means
one check less when invoking functions via a stub. For this I added a LazyCompile
stub.
Additional cleanup in Stackmap and PcDescriptors (remove unused code pointer,
and changed smi-lengh into a raw integer).
R=zra@google.com
Review URL: https://codereview.chromium.org//203523011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34643 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 12:37:48 +00:00
regis@google.com
ed690f97b6
Fix canonicalization of types.
...
Add functions retrieving canonical types by their index or vice versa (used by
a future cl supporting types in vm service).
Add getters for type argument instantiations (used by future cl).
R=hausner@google.com
Review URL: https://codereview.chromium.org//203443012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34128 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-19 18:48:57 +00:00
fschneider@google.com
37b30ab2ac
Alternative fix for .call invocation of closures.
...
This also covers "closurization" of the .call method.
This relies on the fact that f.call === f if f is a closure.
This means that adding a simple getter to _FunctionImpl that
returns this is enough. No need for a separate dispatch.
This CL reverts the previous fix for issue 12602 (modulo the
additional tests).
BUG=dartbug.com/17473, dartbug.com/12602
R=iposva@google.com
Review URL: https://codereview.chromium.org//200193002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33736 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-17 10:31:33 +00:00
fschneider@google.com
f75ef2e6ab
Fix invocation of closures via .call in the VM.
...
Calling closures via .call does now work in the VM - it was working in
dart2js already. Calling .call on a closure is implemented to go through
a dispatcher method. These dispatcher methods are automatically created and
cached in the same way as NoSuchMethod- or field-invocation dispatchers.
This CL does not change the way regular closure invocation works in
the VM. It is therefore performance-neutral for normal closure calls.
BUG=dartbug.com/12602
TEST=language/call_test
R=iposva@google.com
Review URL: https://codereview.chromium.org//188703004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33576 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-12 14:02:27 +00:00
regis@google.com
8d5dae7798
Allocate instance closures similarly to regular closures, i.e. without a
...
specific stub and runtime call.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//178233003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33074 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-26 18:38:47 +00:00
regis@google.com
a72c2146ba
Modify growth policy for table of canonical types in each class.
...
Modify growth policy for cache of type arguments instantiations.
Add language test for generic closure.
R=iposva@google.com
Review URL: https://codereview.chromium.org//175403004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32940 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-21 23:09:02 +00:00
hausner@google.com
040093eb26
Handle stepping requests after isolate interrupt event
...
Adding test case provided by jacobr.
Fix issue 17008
R=jacobr@google.com , regis@google.com
Review URL: https://codereview.chromium.org//175533003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32938 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-21 22:40:11 +00:00
fschneider@google.com
13f2d115ef
Simplify generated code for object allocation with type arguments.
...
The motivation for the change is to make allocation sinking more
general when type arguments are in play. As a result I cleaned up the code
dealing with constructor type arguments as follows:
* Remove ExtractConstructorTypeArguments and ExtractConstructorInstantiator
from the intermediate language.
* The allocation stub takes now 1 argument (instead of 2) for parameterized
classes.
* The allocation stub always get an instantiated type arguments object
as input. It does not need to do a lookup in the instantiations array anymore.
* The code for looking up cached instantiated type arguments is moved
to the InstantiateTypeArguments instruction. This instruction is now also
used for object allocation. I'm not sure how relevant the cache lookup is
performance-wise. dart2js compilation did not show any regression without it.
R=regis@google.com
Review URL: https://codereview.chromium.org//163683006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32697 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-14 13:03:35 +00:00
fschneider@google.com
d6178535b2
Landing: Write protect executable pages in the VM.
...
Change executable pages to be read/execute but not writable by default.
All pages are made temporarily writable just before a full GC, because both
the mark and sweep phases write to the pages. When allocating in a page and
when patching code, the pages are made temporarily writable.
The order of allocation of Code and Instructions objects is changed so that
a GC will not occur after Instructions is allocated. (A full GC would
render the Instructions unwritable.) A scoped object is used to make memory
protection simpler.
Original CL: https://codereview.chromium.org/106593002/
I added a cc test that is expected to crash.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//136563002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32493 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-10 12:18:06 +00:00
regis@google.com
7830430adf
Implement eager instantiation and canonicalization of type arguments at run
...
time using a cache in uninstantiated type arguments.
Remove InstantiatedTypeArguments class.
Fix a bug in optimized code: do not update unused type test cache for Smi.
Fix a bug in optimized code on ARM and MIPS in type test cache lookup.
R=iposva@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//154393003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32447 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-07 19:54:33 +00:00
srdjan@google.com
09d8b52ded
Fix crash in VM when patching static calls. When the target code is optimized, it is possible that the target function has its code disconnected due to its optimized code being deoptimized and its unoptimized code not being used. In such case recompile the target.
...
R=zra@google.com
Review URL: https://codereview.chromium.org//141733009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32337 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-05 21:14:00 +00:00
srdjan@google.com
8b7ebed54f
Mark optimized code that used CHA for optimization so that lazy class 'finalization' does not invalidate that code.
...
R=fschneider@google.com
Review URL: https://codereview.chromium.org//150923002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32335 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-05 20:31:57 +00:00
johnmccutchan@google.com
adc89ab748
Fix disassembler crash with profiler
...
BUG=
R=fschneider@google.com
Review URL: https://codereview.chromium.org//154733002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32322 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-05 15:30:40 +00:00
hausner@google.com
ed8ea2e281
Handle all debugger stepping with the isolate single step flag
...
Eliminate stepping with “internal” breakpoints. We can now handle
stepping in recursive functions properly. On the other hand, code
does not run at full speed between step commands, since a runtime
call to the debugger is necessary at each safe point.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//149123003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32150 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-29 23:47:23 +00:00
srdjan@google.com
9c16a399ca
Cleanups.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//146843008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32000 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-24 22:00:04 +00:00
hausner@google.com
a65c571f18
Get rid of dynamic call debug stub
...
This leaves only one debugger stub function. Yay.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//140743010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31932 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-17 21:32:58 +00:00
hausner@google.com
06da68b5aa
Eliminate another debugger stub
...
This change replaces https://codereview.chromium.org/135213002/
The specialized debugger stub call for static method calls is
no longer needed. It was introduced because once upon a time, the
static method call stub used to patch the call site when the target
was compiled. The VM stopped patching unoptimized static calls a
long time ago. Thus we can treat a static call like a regular runtime
call when patching it to set a breakpoint.
Bonus fix: single step runtime callback on mips was broken. The
enter/leave stub frame were missing.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//140793010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31928 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-17 19:09:46 +00:00
srdjan@google.com
bcb8549677
Fix issue 16103: Prevent recursive triggering of optimizer by resetting the optimization counter threshold before calling the compiler.
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//139263005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31844 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 19:09:02 +00:00
hausner@google.com
31db06a905
Delete obsolete debug stub
...
Remove the debug stub that became obsolete with the recent rewrite
of how we handle breakpoints at return statements.
R=regis@google.com
Review URL: https://codereview.chromium.org//132793002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31685 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-09 23:56:08 +00:00
srdjan@google.com
5be3faaf66
Fix issue 14366: in case of a type check error and conflicting type names being the same, prefix type names with their library names. Example:
...
type 'myLib.My' is not a subtype of type 'My' of 'm'.
R=regis@google.com
Review URL: https://codereview.chromium.org//128803003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31621 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-08 19:09:56 +00:00
regis@google.com
06830dbbd2
Use a trail instead of a mark bit when processing recursive types in the VM
...
(issue 15595).
R=asiva@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org//109593003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31584 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-07 21:55:07 +00:00
asiva@google.com
64a261fbbd
Changes to interpret the optimizable bit based on whether the function
...
is native or not.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//101753005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31207 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 22:07:41 +00:00
srdjan@google.com
a8f549dbc3
Merge sin(a), cos(a) into one instruction. On IA32 use x87 fsincos operation, on x64 call runtime routine whihc merges sin/cos intos sincos.
...
TODO: Implement for ARM and MIPS.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//92433002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30827 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-03 22:00:27 +00:00
zra@google.com
daf539e2f9
Fixes a couple problems with GC of unoptimized code.
...
1. Instead of making a pass before the Marking phase,
this change does not visit code pointers in functions
during marking. Then after marking, if the code has
still not been marked, code pointers in functions
are nulled out.
2. Since code pointers in functions may be nulled out,
functions are no longer used as proxies for code in
deoptimization info.
R=iposva@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//70183010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30600 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-23 00:17:28 +00:00
srdjan@google.com
3485989ae7
Do not eagerly finalize classes in CHA, instead regard unfinalized classes as ’non-existent’ and only invalidate optimized code at finalization of the class.
...
Rename FinalizePendingClasses to FinalizePendingClassInterfaces as the class finalization occurs lazily.
TODO: add dependency information to deoptimize/remove only relevant optimized code.
R=regis@google.com
Review URL: https://codereview.chromium.org//81333003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30582 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-22 17:59:23 +00:00
zra@google.com
136597ec7d
Pushes 0 for PC marker in runtime call stubs on ARM and MIPS.
...
R=iposva@google.com , regis@google.com
Review URL: https://codereview.chromium.org//77413004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30555 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-21 23:18:53 +00:00
regis@google.com
db2cec593d
Distinguish between malformed and malbounded types more efficiently using the
...
recently introduced LanguageError 'kind' field.
R=hausner@google.com
Review URL: https://codereview.chromium.org//75713002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30383 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-18 23:31:12 +00:00
regis@google.com
694401d38e
Rename mixin typedef to mixin application alias in VM.
...
R=hausner@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org//71693003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30277 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-14 17:42:39 +00:00
regis@google.com
528a7ce3d9
Complete latest spec changes regarding malformed types (see issue 14006).
...
Update language tests and mark them as failing in dart2js as appropriate.
Mark a few co19 tests as failing.
Mark a dart2js test as failing due to unresolved types.
Unfortunately, https://codereview.chromium.org/53583003/ was uncomplete and
missed a few mappings of malformed types to dynamic.
R=hausner@google.com
Review URL: https://codereview.chromium.org//57133004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29924 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-05 18:46:13 +00:00
fschneider@google.com
a037e4874b
Fix bug with guarded fields and deserialization.
...
Since deserialization does not involve the normal object construction
procedure, any values written there won't be reflected in the guarded field
type. This results in incorrect optimized code because deoptimization of
dependent code objects in not triggered.
This CL adds tracking of field types and guarded list length when creating
objects via deserialization.
R=iposva@google.com
Review URL: https://codereview.chromium.org//50243004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29741 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-01 10:39:09 +00:00
regis@google.com
3fa7a61efc
Implement latest spec changes regarding malformed types (see issue 14006):
...
- a malformed type used in a is, as, or catch type test results in a dynamic
type error being thrown.
- a malformed type is not mapped to dynamic anymore.
For now, this applies to type tests in checked mode as well, but discussion is
still on-going.
R=hausner@google.com
Review URL: https://codereview.chromium.org//53583003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29608 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 23:30:32 +00:00