--- /dev/null
+package {
+ import flash.events.Event;
+ import flash.display.MovieClip
+
+ public class Main extends flash.display.MovieClip
+ {
+ public function test1(e:Event=null)
+ {
+ try {
+ var a:Array = new Array
+ throw new Error();
+ } catch (e:Error) {
+ if(e instanceof Error)
+ trace("ok 1/2");
+ }
+ var b = a[0]; // to trigger forward variable resolving
+ }
+ public function test2()
+ {
+ var e:Event;
+ try {
+ var a:Array = new Array
+ throw new Error();
+ } catch (e:Error) {
+ if(e instanceof Error)
+ trace("ok 2/2");
+ }
+ var b = a[0]; // to trigger forward variable resolving
+ }
+
+ public function Main() {
+ test1();
+ test2();
+ trace("[exit]");
+ }
+ }
+}
--- /dev/null
+package {
+ import flash.events.*;
+ import flash.utils.*;
+ import flash.display.MovieClip;
+
+ dynamic public class ExtendProxy extends Proxy
+ {
+ flash_proxy override function callProperty($name:*, ...$args:Array):*
+ {
+ trace("ok");
+ }
+ }
+
+ public class Main extends flash.display.MovieClip
+ {
+ public function Main()
+ {
+ new ExtendProxy().callProperty();
+ trace("[exit]");
+ }
+ }
+}
variable_t*v = dict_lookup(state->allvars, vname);
if(!v->is_inner_method) {
state->method->no_variable_scoping = 1;
- as3_warning("function %s uses forward or outer block variable references (%s): switching into compatiblity mode", name, vname);
+ as3_warning("function %s uses forward or outer block variable references (%s): switching into compatibility mode", name, vname);
}
}
}
CLASS_BODY_ITEM : CONDITIONAL_COMPILATION '{' MAYBE_CLASS_BODY '}' {PASS_ALWAYS as3_pass=$1;}
CLASS_BODY_ITEM : SLOT_DECLARATION
CLASS_BODY_ITEM : FUNCTION_DECLARATION
+CLASS_BODY_ITEM : '[' EMBED_START E ']' {PASS_ALWAYS as3_pass=$2;PASS1 as3_warning("embed command ignored");}
CLASS_BODY_ITEM : CODE_STATEMENT {
code_t*c = state->cls->static_init->header;
PASS2
$$ = resolve_identifier($1);
}
+
VAR_READ : T_IDENTIFIER {
PASS1
/* Queue unresolved identifiers for checking against the parent