hausner@google.com
3e9467672f
Require case expressions to be compile-time constants
...
Remove legacy semantics in switch statement compilation.
Still to be added: analysis that all case expressions are
of the same type.
R=regis@google.com
Review URL: https://codereview.chromium.org//23640004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26749 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-27 23:07:59 +00:00
iposva@google.com
d7aa93e0b3
- Remove support for the old "get foo()" - style syntax.
...
R=hausner@google.com
Review URL: https://codereview.chromium.org//23619004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26743 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-27 20:47:14 +00:00
mlippautz@google.com
817a6fff3a
Implement ParameterMirror.{isFinal,hasDefaultValue,defaultValue}.
...
Fixes issue 12196 and partially addresses issue 12430.
BUG=
R=ahe@google.com , asiva@google.com , gbracha@google.com
Review URL: https://codereview.chromium.org//23020025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26730 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-27 17:31:09 +00:00
hausner@google.com
c2fa1cf490
Add compilation error on named parameters with private names
...
Remove bogus test cases.
Fixes issue 5743, 3502
R=srdjan@google.com
Review URL: https://codereview.chromium.org//23478005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26719 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-27 16:41:33 +00:00
rmacnak@google.com
92f8786e99
Remember metadata positions for mixin and function typedefs.
...
BUG=http://dartbug.com/10906
R=asiva@google.com , hausner@google.com
Review URL: https://codereview.chromium.org//23437007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26680 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-27 00:47:42 +00:00
regis@google.com
93059fe3cf
More cleanup related to malformed and malbounded types.
...
Remove support for warnings in parser and related flags.
Rename flag --error-on-malformed-type to --error-on-bad-type, since it covers
both malformed and malbounded types (also closer to --error-on-bad-override).
R=hausner@google.com
Review URL: https://codereview.chromium.org//23465004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26677 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-26 23:24:01 +00:00
regis@google.com
81bcb1f18a
Distinguish between malformed and malbounded types (fix issues 12552 and 12554).
...
Add test.
Update status files.
Explanation of change: A malbounded type argument should not be mapped to
dynamic, as is a malformed type argument.
This change also adds a bunch of TODOs related to the encounter of malbounded
types in unexpected places.
A follow-up change will address these TODOs, add more tests, and may simplify
code that is still handling malformed types where they cannot occur anymore
after the spec simplified their handling.
R=hausner@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//23190035
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26665 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-26 17:56:02 +00:00
mlippautz@google.com
b708a455d1
Fix Function.end_token_pos() and implement MethodMirror.source getter.
...
Move .source getter from ClosureMirror to MethodMirror (as the TODO already suggested) and provide an implementation.
BUG=
R=asiva@google.com , hausner@google.com
Review URL: https://codereview.chromium.org//23038010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26659 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-26 17:14:07 +00:00
fschneider@google.com
d773e985a7
Mark private methods of core libraries as invisible in the VM.
...
This prevents accessing them via reflection which should not
be allowed since they are often handled specially by the compiler.
Those functions also will not be shown in stacktraces.
TEST=tests/language/reflect_core_vm_test.dart
R=rmacnak@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//23019013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26625 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-26 09:19:54 +00:00
fschneider@google.com
4a9402eb26
Fix allocation of indices for try-blocks.
...
The compiler has the assumptions that try-index starts
at zero for each function: The list of exception handlers
is a dense array indexed using the try-index.
BUG=https://code.google.com/p/dart/issues/detail?id=12615
TEST=tests/language/regress_12615_test.dart
R=srdjan@google.com
Review URL: https://codereview.chromium.org//22909032
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26585 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-23 08:49:05 +00:00
hausner@google.com
3876a9e23c
Remove assertion in compile-time constant map literals
...
We had a left-over assertion that keys are strings.
Fixes issue 12505.
R=regis@google.com
Review URL: https://codereview.chromium.org//23004015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26549 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-22 19:45:13 +00:00
hausner@google.com
6b20c0ecaa
Detect circular dependencies in compile time constants
...
Fix issue 1681
R=srdjan@google.com
Review URL: https://codereview.chromium.org//22897019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26491 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-21 23:55:59 +00:00
johnmccutchan@google.com
c8b370ab50
Initial support for length guards on final fields.
...
R=regis@google.com , srdjan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//22851003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26433 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-21 15:32:45 +00:00
fschneider@google.com
ba0f59d1bc
Polymorphic inlining for some recognized methods in the optimizing compiler.
...
The optimizing compiler currently recognizes a certain frequent native methods
like array length or string length and provides an inlined implementation.
Inlining does currently not work for polymorphic call sites of these methods.
This CL enables also polymorphic inlining in the case of .length getters for
arrays and strings.
1. The method is recognized at flow graph build time. The builder creates
the body of the method for both compilers (non-optimizing and optimizing).
Native methods that are not recognized, are translated as before using a NativeCall
IL instruction.
2. The flow graph inliner handles recognized methods in the same manner as normal methods.
Until now intrinsic and recognized method could not be inlined. This CL enables it.
3. There is no need for an intrinsic assembly implementation because recognized methods
have an IL implementation that does not call into the C++ runtime. I left the intrinsics
in for now, but they can be removed if there is not noticable performance benefit anymore.
4. The inlining heuristics are tweaked in a way that enables more aggressive inlining
of recognized methods: +1 level of inlining depths, call sites of recognized methods are
not counted in the inlining heuristic.
R=kmillikin@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//22839003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26429 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-21 12:58:08 +00:00
jacobr@google.com
605b33c1bc
fix cpp11 compile errors
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//23072026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26387 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-20 20:24:11 +00:00
regis@google.com
f9df206e2e
Report compile-time errors for conflicting overrides as specified by latest
...
language spec (fix issue 12342).
Add override conflict tests.
Update status files.
Add support for 'ok' status in multi-tests.
R=hausner@google.com
Review URL: https://codereview.chromium.org//22999022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26302 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-16 23:39:41 +00:00
vsm@google.com
5893fa7634
Remove test for native resolver
...
This check asserts that a type with a native field must be in a
library with a native resolver. It won't be true with custom elements
- which inherit from dart:html and inherit a native field - but are
otherwise in user libraries.
I'm just removing the check altogether here.
R=asiva@google.com
Review URL: https://codereview.chromium.org//22950003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26144 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-14 20:18:16 +00:00
regis@google.com
dd9d0b1f36
Make sure type information is not lost in snapshots created in production mode,
...
since they can be executed in checked mode.
Add snapshot test.
R=hausner@google.com , iposva@google.com
Review URL: https://codereview.chromium.org//23094003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26127 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-14 15:52:41 +00:00
srdjan@google.com
1f31dcc424
Fix for running with --throw_on_javascript_int_overflow: recognize pattern (a << b) & mask and test for overflow only after the mask.
...
R=fschneider@google.com
Review URL: https://codereview.chromium.org//22640019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26122 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-14 15:12:39 +00:00
hausner@google.com
aa27308cab
Fix top-level map literals
...
This is the remaining part that needed to be done to implement
map literals with arbitrary keys.
Fixes issue 10472
R=srdjan@google.com
Review URL: https://codereview.chromium.org//22835005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26095 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-13 23:45:20 +00:00
mlippautz@google.com
2187a8f63f
Move the begin token (token_pos) of explicit functions to the start of the function declaration.
...
This fixes setting the breakpoints when the signature of function declarations is spread across multiple lines.
Example:
int
get
foo
=>
42;
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org//22916006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26080 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-13 20:11:23 +00:00
regis@google.com
9eb12ad303
Implement updated method overriding rules in the vm (issue 11495).
...
Introduce --error-on-bad-override flag and use it when generating snapshots.
Fix signature checking when patching methods.
Fix errors in patch files.
Fix receiver type of constructors.
Fix finalization of mixin application typedefs.
Update tests and status files.
R=asiva@google.com
Review URL: https://codereview.chromium.org//22685007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26027 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-12 20:28:52 +00:00
rmacnak@google.com
3fdec161e8
Fix attempt to find metadata of a library with no metadata.
...
BUG=12206
R=hausner@google.com
Review URL: https://codereview.chromium.org//22460008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25930 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-08 16:50:11 +00:00
hausner@google.com
32c1b1e412
Follow-up to capturing instantiator
...
Add boolean result to CaptureVariable, as suggested by Regis.
Review URL: https://codereview.chromium.org//22678002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25922 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-08 11:22:59 +00:00
hausner@google.com
1453019552
Remove bogus assertion
...
Fix issue 12290.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//22594002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25884 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-07 16:33:02 +00:00
hausner@google.com
e390ba9871
Fix access to type variables in initializer expressions
...
Allow initializer expressions to capture type arguments.
This used to crash because the receiver is not accessible
in initializer expressions. We don't need the receiver, we
just need to mark it as captured.
Fixes issue 8847.
R=ahe@google.com
Review URL: https://codereview.chromium.org//22415002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25877 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-07 15:15:02 +00:00
hausner@google.com
5a8e70d39a
Better error message for redefined local names
...
Improve error message when a name is defined in a scope and
and outer declaration of the name has been referenced before.
Fixes issue 7073.
Review URL: https://codereview.chromium.org//22567003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25875 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-07 14:22:13 +00:00
asiva@google.com
b4d9e0d620
Auto create ApiLocalScope before calling native functions, this ensures that
...
native functions do not have to call Dart_EnterScope/Dart_ExitScope
when they callback into the VM.
Remove Dart_EnterScope/Dart_ExitScope calls around native functions in 'bin'
directory.
R=regis@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//22303002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25827 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-06 19:27:48 +00:00
fschneider@google.com
086b60dada
Fix a bug in compilation of try-finally.
...
When nesting try-finally, the outer finally was incorrectly executed
twice under certain conditions (a return in the inner try-block and a outer
finally-block that ends with throw)
This was because finally-code was inlined at return/break/continue statements
and it was associated with the wrong catch-handler when compiling.
This CL tracks indices of try-blocks in the parser so that each inlined
finally block has the correct catch handler index.
BUG=https://code.google.com/p/dart/issues/detail?id=11972
TEST=test/language/throw8_test.dart
R=hausner@google.com
Review URL: https://codereview.chromium.org//22184003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25767 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-05 13:49:48 +00:00
rmacnak@google.com
6ab88ae6d5
Implement metadata for libraries. Partially addresses issue 10906.
...
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25721 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-01 20:45:49 +00:00
regis@google.com
4c90984b43
Set local function type as uninstantiated when applicable (fix issue 12127).
...
Add language regression test.
R=zra@google.com
Review URL: https://codereview.chromium.org//21274007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25687 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-31 23:26:26 +00:00
zra@google.com
42add423d2
Fixes javascript integer overflow check.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//21301003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25675 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-31 17:51:23 +00:00
regis@google.com
3b7cdf80a0
Update VM to handle malformed types according to revised spec (issues 9055,
...
12105, 7247).
Update language tests.
Update status files.
Allow map literals to specify a key type that is not a String.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//21049012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25666 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-31 15:20:28 +00:00
regis@google.com
b55b249409
Delay resolution of redirecting factory targets in order to avoid class
...
finalization cycles (issue 12041).
Ensure that a super class is finalized before the class extending it.
R=asiva@google.com
Review URL: https://codereview.chromium.org//20503003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25532 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-26 18:18:56 +00:00
regis@google.com
9581071936
Refactor resolution code in the vm to properly handle ambiguity errors.
...
Add test.
R=asiva@google.com
Review URL: https://codereview.chromium.org//19662003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25324 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 00:19:39 +00:00
regis@google.com
30609cff91
Use library prefixes in scope of the mixin class when compiling a functions of
...
a mixin application (issue 11891).
Review URL: https://codereview.chromium.org//19763007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25233 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 18:08:17 +00:00
regis@google.com
191d2673c8
Use proper internal name for implicit static final getters.
...
R=hausner@google.com
Review URL: https://codereview.chromium.org//19287003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25053 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-16 16:29:59 +00:00
fschneider@google.com
13b7b7242a
Faster invocation of fields as methods.
...
Until now there was a large discrepancy between
x.f() and
(x.f)()
This CL makes x.f() as fast as (x.f)() by automatically
generating a intermediate dispatcher function that loads
the field and invokes the result as a closure.
The approach resembles the one taken for fast noSuchMethod
invocation and reuses the same per-class cache
of dispatcher functions.
It also fixes a bug in the debugger so that VM-generated
implicit dispatcher functions (like for noSuchMethod, or
field-as-method invocation) don't show up the debuggers
stack trace.
BUG=https://code.google.com/p/dart/issues/detail?id=11041
R=srdjan@google.com
Review URL: https://codereview.chromium.org//18750004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25001 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-15 11:12:09 +00:00
hausner@google.com
4c629b9b50
Implement forwarding constructors for mixins
...
By popular demand, fixes issue dartbug.com/9339
R=srdjan@google.com
Review URL: https://codereview.chromium.org//19023005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24977 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-12 22:09:18 +00:00
regis@google.com
71f88546cc
Stop resolving classes prematurely in the vm (issue 11023).
...
Add missing class finalization to mirrors tests.
R=hausner@google.com
Review URL: https://codereview.chromium.org//19030004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24965 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-12 17:59:17 +00:00
fschneider@google.com
d77d1eac90
Correct handling of named optional parameters with noSuchMethod invocations.
...
This CL fixes a performance bug with noSuchMethod and named parameters. It also
simplifies the platform-specific code by removing special casing for the
noSuchMethod-dispatcher functions in the flow graph compiler.
Before using named optional parameters would still go through the slow
runtime in certain conditions: When running without inlining, or when
the dispatcher function was not inlined because of e.g. inlining size
heuristics, noSuchMethod would be slow if invoked with named parameters.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//18209024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24906 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-11 10:01:50 +00:00
fschneider@google.com
f260416fb8
Support fast noSuchMethod dispatch for any number of arguments.
...
Until now, the fast dispatch was only available with getters and
zero argument methods.
This CL generalizes the approach to any number of arguments. The
dispatcher functions that are auto-generated by the compiler
are not attached to the class anymore. Instead the dispatcher
is only stored in the IC data of each call site. Each class
contains a cache of dispatcher function that map
(name, arguments descriptor) => dispatcher.
This also fixes a bug where the VM report a wrong error message
when throwing a NoSuchMethodError.
BUG=https://code.google.com/p/dart/issues/detail?id=11528
BUG=https://code.google.com/p/dart/issues/detail?id=11223
TEST=tests/language/no_such_method_dispatcher_test.dart
R=srdjan@google.com
Review URL: https://codereview.chromium.org//18097004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24876 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-10 10:09:14 +00:00
regis@google.com
e8a722870b
Support type parameters and classes as expression in the vm.
...
Turn many compile-time errors into runtime errors per latest spec.
Triage affected tests.
R=hausner@google.com
Review URL: https://codereview.chromium.org//18801007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24861 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-09 19:35:56 +00:00
hausner@google.com
7bb78b9620
Generate better debugging info for actor phase check
...
The phase check was generated at a token position that was one token
past the end of the constructor body, which threw debugger clients
off.
Fixes issue 8916.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//18465007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24830 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-08 22:40:35 +00:00
hausner@google.com
adabc79bc6
Small cleanup in parser
...
When creating the type of the receiver variable 'this', use the token position of the class.
R=regis@google.com
Review URL: https://codereview.chromium.org//18801005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24805 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-08 16:48:51 +00:00
hausner@google.com
3c34f42110
Add debugging info for 'this'
...
Token range for 'this' was wrong in the debug info, so its value was
not shown in most functions. Fixes issue 11435.
R=regis@google.com
Review URL: https://codereview.chromium.org//18272027
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24762 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-03 23:26:03 +00:00
hausner@google.com
98883150d6
Partial solution to analyze potentially constant expressions
...
This change adds code that detects if an expression can definitively
never be constant. We use this to analyze the initializer expressions
in const constructors. This check is not entirely water tight, but
together with the checks in canonicalization code catches most
illegal initializer expressions.
The const constructor of class Symbol turns out to be illegal. The
name verification check can't be part of the constructor code.
R=iposva@google.com
Review URL: https://codereview.chromium.org//18649003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24749 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-03 20:47:14 +00:00
floitsch@google.com
438767ca3a
Add stackTrace to Error object.
...
BUG=
R=lrn@google.com
Review URL: https://codereview.chromium.org//18529003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24726 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-03 14:51:30 +00:00
hausner@google.com
8b8795fc0b
Const constructor must have const super initializer
...
Compile time error if a const constructor calls a non-const super
constructor (either explicitly or implicitly).
R=regis@google.com
Review URL: https://codereview.chromium.org//18558002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24704 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-02 20:09:24 +00:00
kmillikin@google.com
5f9331e20c
Fix a VM bug in the handling of try/catch/finally.
...
In the case that code in the catch block threw in any fashion, the
finally block was not executed. Fix this by properly treating the
finally block of try/catch/finally as an exception handler for the
catch block.
R=fschneider@google.com , srdjan@google.com
BUG=https://code.google.com/p/dart/issues/detail?id=430
Review URL: https://codereview.chromium.org//17893003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24583 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-28 12:28:56 +00:00