Prechádzať zdrojové kódy

[flash] native property support rework (#8241)

* add @:flash.property metadata

* factor out the assignment generation function

* merge this/super.field() call processing into the generic field call case

* extract field call generation into a separate function

* add a note

* rewrite extern get_/set_ calls to a property access (when the property is there)

* extract some functions

* extract more fucntions

* only consider non-physical properties when searching for properties for an accessor

* implement native getter/setter generation

* make swf loader generate proper get/set properties

* support private fields in genhxold

* patch getter/setter along with property type

* regenerate flash externs with new extern properties

* also rewrite static extern property accessors

* also generate static native properties

* remove @:flash.property, we don't really need it

* realize inherited fake accessors that are required by interfaces

* do not try to "realize" methods on interfaces, lol

* don't process interfaces that are already implemented by the super class

* also generate native getter/setter for properties with inherited get_/set_

* bring back the old overriding logic for normal @:getter/@:setter methods

* re-introduce @:flash.property

* only consider @:flash.property properties for generating native property(access)

* really bring back the old overriding logic for normal @:getter/@:setter methods

* error when implementing a native property without marking it with @:flash.property

* make as3 tests pass

should be good enough

* add some tests
Dan Korostelev 6 rokov pred
rodič
commit
8fec5fc583
100 zmenil súbory, kde vykonal 1542 pridanie a 417 odobranie
  1. 47 7
      src/codegen/swfLoader.ml
  2. 2 0
      src/core/meta.ml
  3. 60 0
      src/generators/flashProps.ml
  4. 49 4
      src/generators/genas3.ml
  5. 2 1
      src/generators/genhxold.ml
  6. 394 25
      src/generators/genswf9.ml
  7. 40 13
      src/typing/typeloadFields.ml
  8. 2 1
      std/flash/accessibility/Accessibility.hx
  9. 2 1
      std/flash/accessibility/ISearchableText.hx
  10. 4 2
      std/flash/accessibility/ISimpleTextSelection.hx
  11. 3 1
      std/flash/automation/AutomationAction.hx
  12. 5 2
      std/flash/automation/Configuration.hx
  13. 3 1
      std/flash/automation/KeyboardAutomationAction.hx
  14. 9 3
      std/flash/automation/MouseAutomationAction.hx
  15. 12 4
      std/flash/automation/StageCapture.hx
  16. 6 3
      std/flash/automation/StageCaptureEvent.hx
  17. 4 2
      std/flash/concurrent/Condition.hx
  18. 2 1
      std/flash/concurrent/Mutex.hx
  19. 4 2
      std/flash/desktop/Clipboard.hx
  20. 9 3
      std/flash/display/Bitmap.hx
  21. 8 4
      std/flash/display/BitmapData.hx
  22. 88 31
      std/flash/display/DisplayObject.hx
  23. 10 4
      std/flash/display/DisplayObjectContainer.hx
  24. 4 2
      std/flash/display/FrameLabel.hx
  25. 9 3
      std/flash/display/GraphicsGradientFill.hx
  26. 3 1
      std/flash/display/GraphicsPath.hx
  27. 9 3
      std/flash/display/GraphicsStroke.hx
  28. 3 1
      std/flash/display/GraphicsTrianglePath.hx
  29. 27 9
      std/flash/display/InteractiveObject.hx
  30. 6 3
      std/flash/display/Loader.hx
  31. 48 23
      std/flash/display/LoaderInfo.hx
  32. 24 11
      std/flash/display/MovieClip.hx
  33. 3 1
      std/flash/display/NativeMenuItem.hx
  34. 6 3
      std/flash/display/Scene.hx
  35. 8 3
      std/flash/display/Shader.hx
  36. 13 5
      std/flash/display/ShaderInput.hx
  37. 14 5
      std/flash/display/ShaderJob.hx
  38. 7 3
      std/flash/display/ShaderParameter.hx
  39. 2 1
      std/flash/display/Shape.hx
  40. 24 8
      std/flash/display/SimpleButton.hx
  41. 16 6
      std/flash/display/Sprite.hx
  42. 68 26
      std/flash/display/Stage.hx
  43. 11 4
      std/flash/display/Stage3D.hx
  44. 21 9
      std/flash/display3D/Context3D.hx
  45. 4 2
      std/flash/display3D/textures/VideoTexture.hx
  46. 2 1
      std/flash/errors/DRMManagerError.hx
  47. 2 1
      std/flash/errors/Error.hx
  48. 4 2
      std/flash/events/AVDictionaryDataEvent.hx
  49. 8 3
      std/flash/events/AVHTTPStatusEvent.hx
  50. 2 1
      std/flash/events/AVLoadInfoEvent.hx
  51. 8 4
      std/flash/events/AVManifestLoadEvent.hx
  52. 2 1
      std/flash/events/AVPauseAtPeriodEndEvent.hx
  53. 2 1
      std/flash/events/AVPlayStateEvent.hx
  54. 6 3
      std/flash/events/AVStatusEvent.hx
  55. 10 5
      std/flash/events/AVStreamSwitchEvent.hx
  56. 12 4
      std/flash/events/AccelerometerEvent.hx
  57. 3 1
      std/flash/events/ActivityEvent.hx
  58. 2 1
      std/flash/events/AudioOutputChangeEvent.hx
  59. 9 3
      std/flash/events/ContextMenuEvent.hx
  60. 12 6
      std/flash/events/DRMAuthenticateEvent.hx
  61. 9 3
      std/flash/events/DRMAuthenticationCompleteEvent.hx
  62. 9 3
      std/flash/events/DRMAuthenticationErrorEvent.hx
  63. 10 4
      std/flash/events/DRMDeviceGroupErrorEvent.hx
  64. 3 1
      std/flash/events/DRMDeviceGroupEvent.hx
  65. 9 4
      std/flash/events/DRMErrorEvent.hx
  66. 3 1
      std/flash/events/DRMLicenseRequestEvent.hx
  67. 4 2
      std/flash/events/DRMMetadataEvent.hx
  68. 12 4
      std/flash/events/DRMReturnVoucherCompleteEvent.hx
  69. 12 4
      std/flash/events/DRMReturnVoucherErrorEvent.hx
  70. 9 3
      std/flash/events/DRMStatusEvent.hx
  71. 3 1
      std/flash/events/DataEvent.hx
  72. 2 1
      std/flash/events/ErrorEvent.hx
  73. 12 6
      std/flash/events/Event.hx
  74. 12 4
      std/flash/events/FocusEvent.hx
  75. 4 2
      std/flash/events/FullScreenEvent.hx
  76. 2 1
      std/flash/events/GameInputEvent.hx
  77. 24 8
      std/flash/events/GeolocationEvent.hx
  78. 22 8
      std/flash/events/GestureEvent.hx
  79. 11 4
      std/flash/events/HTTPStatusEvent.hx
  80. 3 1
      std/flash/events/IMEEvent.hx
  81. 18 6
      std/flash/events/KeyboardEvent.hx
  82. 37 13
      std/flash/events/MouseEvent.hx
  83. 4 2
      std/flash/events/NetDataEvent.hx
  84. 2 1
      std/flash/events/NetMonitorEvent.hx
  85. 3 1
      std/flash/events/NetStatusEvent.hx
  86. 6 2
      std/flash/events/OutputProgressEvent.hx
  87. 10 4
      std/flash/events/PressAndTapGestureEvent.hx
  88. 6 2
      std/flash/events/ProgressEvent.hx
  89. 6 2
      std/flash/events/SampleDataEvent.hx
  90. 9 3
      std/flash/events/ShaderEvent.hx
  91. 5 2
      std/flash/events/SoftKeyboardEvent.hx
  92. 2 1
      std/flash/events/StageVideoAvailabilityEvent.hx
  93. 4 2
      std/flash/events/StageVideoEvent.hx
  94. 6 2
      std/flash/events/StatusEvent.hx
  95. 3 1
      std/flash/events/SyncEvent.hx
  96. 3 1
      std/flash/events/TextEvent.hx
  97. 4 2
      std/flash/events/ThrottleEvent.hx
  98. 40 14
      std/flash/events/TouchEvent.hx
  99. 18 6
      std/flash/events/TransformGestureEvent.hx
  100. 2 1
      std/flash/events/UncaughtErrorEvent.hx

+ 47 - 7
src/codegen/swfLoader.ml

@@ -320,26 +320,66 @@ let build_class com c file =
 			| Some (t1,meta1), Some (t2,meta2) -> true, true, (if t1 <> t2 then None else t1), meta1 @ (List.filter (fun m -> not (List.mem m meta1)) meta2)
 		) in
 		let t = if name = "endian" then Some (HMPath (["flash";"utils"],"Endian")) else t in
-		let flags = [APublic,null_pos] in
-		let flags = if stat then (AStatic,null_pos) :: flags else flags in
+		let flags, accessor_flags = [APublic,null_pos], [APrivate,null_pos] in
+		let flags, accessor_flags = if stat then (AStatic,null_pos) :: flags, (AStatic,null_pos) :: accessor_flags else flags, accessor_flags in
+		let property_typehint = Some (make_dyn_type t,null_pos) in
+		let fields = [] in
+		let read_access, fields =
+			if get then
+				let getter = {
+					cff_name = "get_" ^ name,null_pos;
+					cff_pos = pos;
+					cff_doc = None;
+					cff_access = accessor_flags;
+					cff_meta = [];
+					cff_kind = FFun {
+						f_params = [];
+						f_args = [];
+						f_type = property_typehint;
+						f_expr = None;
+					};
+				} in
+				("get",null_pos), getter :: fields
+			else
+				("never",null_pos), fields
+		in
+		let write_access, fields =
+			if set then
+				let setter = {
+					cff_name = "set_" ^ name,null_pos;
+					cff_pos = pos;
+					cff_doc = None;
+					cff_access = accessor_flags;
+					cff_meta = [];
+					cff_kind = FFun {
+						f_params = [];
+						f_args = [(("value",null_pos),false,[],property_typehint,None)];
+						f_type = property_typehint;
+						f_expr = None;
+					};
+				} in
+				("set",null_pos), setter :: fields
+			else
+				("never",null_pos), fields
+		in
 		{
 			cff_name = name,null_pos;
 			cff_pos = pos;
 			cff_doc = None;
 			cff_access = flags;
-			cff_meta = meta;
-			cff_kind = if get && set then FVar (Some (make_dyn_type t,null_pos), None) else FProp (((if get then "default" else "never"),null_pos),((if set then "default" else "never"),null_pos),Some (make_dyn_type t,null_pos),None);
-		}
+			cff_meta = (Meta.FlashProperty,[],pos) :: meta;
+			cff_kind = FProp (read_access,write_access,property_typehint,None);
+		} :: fields
 	in
 	let fields = Hashtbl.fold (fun (name,stat) t acc ->
 		if Hashtbl.mem override (name,stat) then acc else
-		make_get_set name stat (Some t) (try Some (Hashtbl.find setters (name,stat)) with Not_found -> None) :: acc
+		make_get_set name stat (Some t) (try Some (Hashtbl.find setters (name,stat)) with Not_found -> None) @ acc
 	) getters fields in
 	let fields = Hashtbl.fold (fun (name,stat) t acc ->
 		if Hashtbl.mem getters (name,stat) || Hashtbl.mem override (name,stat) then
 			acc
 		else
-			make_get_set name stat None (Some t) :: acc
+			make_get_set name stat None (Some t) @ acc
 	) setters fields in
 	try
 		(*

+ 2 - 0
src/core/meta.ml

@@ -50,6 +50,7 @@ type strict_meta =
 	| Final
 	| Fixed
 	| FlatEnum
+	| FlashProperty
 	| Font
 	| ForLoopVariable
 	| Forward
@@ -257,6 +258,7 @@ let get_info = function
 	| Final -> ":final",("Prevents a class or interface from being extended or a method from being overriden",[UsedOnEither [TClass;TClassField]])
 	| Fixed -> ":fixed",("Delcares an anonymous object to have fixed fields",[ (*UsedOn TObjectDecl(_)*)])
 	| FlatEnum -> ":flatEnum",("Internally used to mark an enum as being flat, i.e. having no function constructors",[UsedOn TEnum; UsedInternally])
+	| FlashProperty -> ":flash.property",("",[UsedOn TClassField; Platform Flash])
 	| Font -> ":font",("Embeds the given TrueType font into the class (must extend flash.text.Font)",[HasParam "TTF path";HasParam "Range String";UsedOn TClass])
 	| ForLoopVariable -> ":forLoopVariable",("Internally used to mark for-loop variables",[UsedInternally])
 	| Forward -> ":forward",("Forwards field access to underlying type",[HasParam "List of field names";UsedOn TAbstract])

+ 60 - 0
src/generators/flashProps.ml

@@ -0,0 +1,60 @@
+(*
+	The Haxe Compiler
+	Copyright (C) 2005-2019  Haxe Foundation
+
+	This program is free software; you can redistribute it and/or
+	modify it under the terms of the GNU General Public License
+	as published by the Free Software Foundation; either version 2
+	of the License, or (at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program; if not, write to the Free Software
+	Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *)
+open Type
+
+let is_getter_name name = ExtString.String.starts_with name "get_"
+let is_setter_name name = ExtString.String.starts_with name "set_"
+let get_property_name accessor_name = String.sub accessor_name 4 (String.length accessor_name - 4)
+let is_flash_property cf = Meta.has Meta.FlashProperty cf.cf_meta
+
+let find_property_for_accessor ~isget cl tl accessor_name =
+	let prop_name = get_property_name accessor_name in
+	try
+		match Type.class_field cl tl prop_name with
+		| Some (prop_cl, prop_tl), _, prop_cf ->
+			(match prop_cf.cf_kind with
+			| Var { v_read = AccCall; v_write = AccCall | AccNever } when isget && is_flash_property prop_cf -> Some (prop_cl, prop_tl, prop_cf)
+			| Var { v_read = AccCall | AccNever; v_write = AccCall } when not isget && is_flash_property prop_cf -> Some (prop_cl, prop_tl, prop_cf)
+			| _ -> None)
+		| _ -> None
+	with Not_found ->
+		None
+
+let is_extern_instance_accessor ~isget cl tl cf =
+	if cl.cl_extern && (if isget then is_getter_name cf.cf_name else is_setter_name cf.cf_name) then
+		find_property_for_accessor ~isget cl tl cf.cf_name
+	else
+		None
+
+let find_static_property_for_accessor ~isget cl accessor_name =
+	let prop_name = get_property_name accessor_name in
+	try
+		let prop_cf = PMap.find prop_name cl.cl_statics in
+		(match prop_cf.cf_kind with
+		| Var { v_read = AccCall; v_write = AccCall | AccNever } when isget && is_flash_property prop_cf -> Some prop_cf
+		| Var { v_read = AccCall | AccNever; v_write = AccCall } when not isget && is_flash_property prop_cf -> Some prop_cf
+		| _ -> None)
+	with Not_found ->
+		None
+
+let is_extern_static_accessor ~isget cl cf =
+	if cl.cl_extern && (if isget then is_getter_name cf.cf_name else is_setter_name cf.cf_name) then
+		find_static_property_for_accessor ~isget cl cf.cf_name
+	else
+		None

+ 49 - 4
src/generators/genas3.ml

@@ -19,6 +19,7 @@
 
 open Type
 open Common
+open FlashProps
 
 type context_infos = {
 	com : Common.context;
@@ -533,11 +534,55 @@ and gen_call ctx e el r =
 		concat ctx "," (gen_value ctx) el;
 		spr ctx ")";
 		print ctx ") as %s)" s
+	| TField (e1, f), el ->
+		begin
+		let default () = gen_call_default ctx e el in
+		let mk_prop_acccess prop_cl prop_tl prop_cf = mk (TField (e1, FInstance (prop_cl, prop_tl, prop_cf))) prop_cf.cf_type e.epos in
+		let mk_static_acccess cl prop_cf = mk (TField (e1, FStatic (cl, prop_cf))) prop_cf.cf_type e.epos in
+		let gen_assign lhs rhs = gen_expr ctx (mk (TBinop (OpAssign, lhs, rhs)) rhs.etype e.epos) in
+		match f, el with
+		| FInstance (cl, tl, cf), [] ->
+			(match is_extern_instance_accessor ~isget:true cl tl cf with
+			| Some (prop_cl, prop_tl, prop_cf) ->
+				let efield = mk_prop_acccess prop_cl prop_tl prop_cf in
+				gen_expr ctx efield
+			| None ->
+				default ())
+
+		| FInstance (cl, tl, cf), [evalue] ->
+			(match is_extern_instance_accessor ~isget:false cl tl cf with
+			| Some (prop_cl, prop_tl, prop_cf) ->
+				let efield = mk_prop_acccess prop_cl prop_tl prop_cf in
+				gen_assign efield evalue
+			| None ->
+				default ())
+
+		| FStatic (cl, cf), [] ->
+			(match is_extern_static_accessor ~isget:true cl cf with
+			| Some prop_cf ->
+				let efield = mk_static_acccess cl prop_cf in
+				gen_expr ctx efield
+			| None ->
+				default ())
+
+		| FStatic (cl, cf), [evalue] ->
+			(match is_extern_static_accessor ~isget:false cl cf with
+			| Some prop_cf ->
+				let efield = mk_static_acccess cl prop_cf in
+				gen_assign efield evalue
+			| None ->
+				default ())
+		| _ ->
+			default ()
+		end
 	| _ ->
-		gen_value ctx e;
-		spr ctx "(";
-		concat ctx "," (gen_value ctx) el;
-		spr ctx ")"
+		gen_call_default ctx e el
+
+and gen_call_default ctx e el =
+	gen_value ctx e;
+	spr ctx "(";
+	concat ctx "," (gen_value ctx) el;
+	spr ctx ")"
 
 and gen_value_op ctx e =
 	match e.eexpr with

+ 2 - 1
src/generators/genhxold.ml

@@ -153,6 +153,7 @@ let generate_type com t =
 	let rec print_field stat f =
 		p "\t";
 		print_meta f.cf_meta;
+		if not (has_class_field_flag f CfPublic) then p "private ";
 		if stat then p "static ";
 		let name = try (match Meta.get Meta.RealPath f.cf_meta with
 				| (Meta.RealPath, [EConst( String s ), _], _) ->
@@ -233,7 +234,7 @@ let generate_type com t =
 		p "%s" (String.concat "" (List.rev ext));
 		p " {\n";
 		let sort l =
-			let a = Array.of_list (List.filter (fun f -> has_class_field_flag f CfPublic && not (List.memq f c.cl_overrides)) l) in
+			let a = Array.of_list (List.filter (fun f -> not (List.memq f c.cl_overrides)) l) in
 			let name = function "new" -> "" | n -> n in
 			Array.sort (fun f1 f2 ->
 				match f1.cf_kind, f2.cf_kind with

+ 394 - 25
src/generators/genswf9.ml

@@ -23,6 +23,7 @@ open Type
 open As3
 open As3hl
 open Common
+open FlashProps
 
 type read = Read
 type write = Unused__ | Write
@@ -305,7 +306,7 @@ let make_class_ns c =
 
 let is_cf_protected cf = Meta.has Meta.Protected cf.cf_meta
 
-let ns_access cf = 
+let ns_access cf =
 	try
 		let (_,params,_) = Meta.get Meta.Ns cf.cf_meta in
 		match params with
@@ -1533,7 +1534,57 @@ and gen_call ctx retval e el r =
 		write ctx HThis;
 		List.iter (gen_expr ctx true) el;
 		write ctx (HConstructSuper (List.length el));
-	| TField ({ eexpr = TConst TSuper },f) , _ ->
+	| TField (e1,f) , _ ->
+		begin
+			let default () = gen_field_call ctx retval e1 f el r in
+			let mk_prop_acccess prop_cl prop_tl prop_cf = mk (TField (e1, FInstance (prop_cl, prop_tl, prop_cf))) prop_cf.cf_type e.epos in
+			let mk_static_acccess cl prop_cf = mk (TField (e1, FStatic (cl, prop_cf))) prop_cf.cf_type e.epos in
+			match f, el with
+			| FInstance (cl, tl, cf), [] ->
+				(match is_extern_instance_accessor ~isget:true cl tl cf with
+				| Some (prop_cl, prop_tl, prop_cf) ->
+					let efield = mk_prop_acccess prop_cl prop_tl prop_cf in
+					getvar ctx (gen_access ctx efield Read)
+				| None ->
+					default ())
+
+			| FInstance (cl, tl, cf), [evalue] ->
+				(match is_extern_instance_accessor ~isget:false cl tl cf with
+				| Some (prop_cl, prop_tl, prop_cf) ->
+					let efield = mk_prop_acccess prop_cl prop_tl prop_cf in
+					gen_assign ctx efield evalue retval
+				| None ->
+					default ())
+
+			| FStatic (cl, cf), [] ->
+				(match is_extern_static_accessor ~isget:true cl cf with
+				| Some prop_cf ->
+					let efield = mk_static_acccess cl prop_cf in
+					getvar ctx (gen_access ctx efield Read)
+				| None ->
+					default ())
+
+			| FStatic (cl, cf), [evalue] ->
+				(match is_extern_static_accessor ~isget:false cl cf with
+				| Some prop_cf ->
+					let efield = mk_static_acccess cl prop_cf in
+					gen_assign ctx efield evalue retval
+				| None ->
+					default ())
+
+			| _ ->
+				default ()
+		end
+	| _ ->
+		gen_expr ctx true e;
+		write ctx HGetGlobalScope;
+		List.iter (gen_expr ctx true) el;
+		write ctx (HCallStack (List.length el));
+		coerce ctx (classify ctx r)
+
+and gen_field_call ctx retval eobj f el r =
+	match eobj with
+	| { eexpr = TConst TSuper } ->
 		let id = this_property f in
 		write ctx (HFindPropStrict id);
 		List.iter (gen_expr ctx true) el;
@@ -1542,20 +1593,20 @@ and gen_call ctx retval e el r =
 			coerce ctx (classify ctx r);
 		end else
 			write ctx (HCallSuperVoid (id,List.length el))
-	| TField ({ eexpr = TConst TThis },f) , _ when not ctx.in_static ->
+	| { eexpr = TConst TThis } when not ctx.in_static ->
 		let id = this_property f in
-		write ctx (HFindProp id);
+		write ctx (HFindProp id); (* not sure why we don't use HFindPropStrict here too *)
 		List.iter (gen_expr ctx true) el;
 		if retval then begin
 			write ctx (HCallProperty (id,List.length el));
 			coerce ctx (classify ctx r);
 		end else
 			write ctx (HCallPropVoid (id,List.length el))
-	| TField (e1,f) , _ ->
+	| _ ->
 		let old = ctx.for_call in
 		ctx.for_call <- true;
-		gen_expr ctx true e1;
-		let id , _, _ = property ctx f e1.etype in
+		gen_expr ctx true eobj;
+		let id , _, _ = property ctx f eobj.etype in
 		ctx.for_call <- old;
 		List.iter (gen_expr ctx true) el;
 		if retval then begin
@@ -1563,12 +1614,6 @@ and gen_call ctx retval e el r =
 			coerce ctx (classify ctx r);
 		end else
 			write ctx (HCallPropVoid (id,List.length el))
-	| _ ->
-		gen_expr ctx true e;
-		write ctx HGetGlobalScope;
-		List.iter (gen_expr ctx true) el;
-		write ctx (HCallStack (List.length el));
-		coerce ctx (classify ctx r)
 
 and gen_unop ctx retval op flag e =
 	let k = classify ctx e.etype in
@@ -1620,6 +1665,11 @@ and check_binop ctx e1 e2 =
 	| _ -> false) in
 	if invalid then abort "Comparison of Int and UInt might lead to unexpected results" (punion e1.epos e2.epos);
 
+and gen_assign ctx lhs rhs retval =
+	let acc = gen_access ctx lhs Write in
+	gen_expr ctx true rhs;
+	setvar ctx acc (if retval then Some (classify ctx lhs.etype) else None)
+
 and gen_binop ctx retval op e1 e2 t p =
 	let write_op op =
 		let iop = (match op with
@@ -1675,9 +1725,7 @@ and gen_binop ctx retval op e1 e2 t p =
 	in
 	match op with
 	| OpAssign ->
-		let acc = gen_access ctx e1 Write in
-		gen_expr ctx true e2;
-		setvar ctx acc (if retval then Some (classify ctx e1.etype) else None)
+		gen_assign ctx e1 e2 retval
 	| OpBoolAnd ->
 		write ctx HFalse;
 		let j = jump_expr ctx e1 false in
@@ -2022,10 +2070,14 @@ let generate_field_kind ctx f c stat =
 		| _ ->
 			let name, kind = method_kind() in
 			let m = generate_method ctx fdata stat f.cf_meta in
+			let is_override = not stat && (
+				if kind = MK3Normal then List.memq f c.cl_overrides
+				else (loop c name || loop c f.cf_name)
+			) in
 			Some (HFMethod {
 				hlm_type = m;
 				hlm_final = stat || (has_class_field_flag f CfFinal);
-				hlm_override = not stat && (loop c name || loop c f.cf_name);
+				hlm_override = is_override;
 				hlm_kind = kind;
 			})
 		);
@@ -2083,6 +2135,264 @@ let check_constructor ctx c f =
 let has_protected_meta = Meta.Custom ":has_protected"
 let mark_has_protected c = c.cl_meta <- (has_protected_meta,[],null_pos) :: c.cl_meta
 
+let find_first_nonextern_accessor_implementor cl name =
+	let rec loop cl cl_found =
+		match cl.cl_super with
+		| Some ({ cl_extern = true }, _) | None -> cl_found
+		| Some (cl_super, _) ->
+			let has_field = PMap.exists name cl_super.cl_fields in
+			let cl_found = if has_field then cl_super else cl_found in
+			loop cl_super cl_found
+	in
+	loop cl cl
+
+let maybe_gen_instance_accessor ctx cl tl accessor_cf acc alloc_slot kind f_impl f_iface =
+	match find_property_for_accessor ~isget:(kind = MK3Getter) cl tl accessor_cf.cf_name with
+	| Some (_, _, prop_cf) ->
+		let accessor_cl = find_first_nonextern_accessor_implementor cl accessor_cf.cf_name in
+		if accessor_cl == cl then begin
+			let was_override = ref false in
+			cl.cl_overrides <- List.filter (fun f2 ->
+				if f2 == accessor_cf then
+					(was_override := true; false)
+				else
+					true
+			) cl.cl_overrides;
+
+			let name, mtype =
+				if cl.cl_interface then begin
+					let (args,tret) = f_iface prop_cf in
+					let mtype = end_fun ctx args None tret in
+					HMName (reserved prop_cf.cf_name, HNNamespace (make_class_ns cl)), mtype
+				end else begin
+					let func = f_impl prop_cf in
+					let mtype = generate_method ctx func false accessor_cf.cf_meta in
+					ident prop_cf.cf_name, mtype
+				end
+			in
+
+			let getter = {
+				hlf_name = name;
+				hlf_slot = alloc_slot ();
+				hlf_kind = HFMethod {
+					hlm_type = mtype;
+					hlm_final = has_class_field_flag accessor_cf CfFinal;
+					hlm_override = !was_override;
+					hlm_kind = kind;
+				};
+				hlf_metas = None;
+			} in
+			getter :: acc
+		end else
+			acc
+	| None ->
+		acc
+
+let mk_instance_getter_func c tl accessor_cl accessor_tl accessor_cf prop_cf =
+	{
+		tf_args = [];
+		tf_type = prop_cf.cf_type;
+		tf_expr = begin
+			let ethis = mk (TConst TThis) (TInst (c, tl)) null_pos in
+			let efield = mk (TField (ethis, FInstance (accessor_cl, accessor_tl, accessor_cf))) accessor_cf.cf_type null_pos in
+			let ecall = mk (TCall (efield, [])) prop_cf.cf_type null_pos in
+			mk (TReturn (Some ecall)) t_dynamic null_pos;
+		end
+	}
+
+let maybe_gen_instance_getter ctx c f acc alloc_slot =
+	let tl = List.map snd c.cl_params in
+	maybe_gen_instance_accessor ctx c tl f acc alloc_slot MK3Getter
+		(mk_instance_getter_func c tl c tl f)
+		(fun prop_cf -> ([],prop_cf.cf_type))
+
+let mk_varg t = alloc_var (VUser TVOArgument) "value" t null_pos
+
+let mk_instance_setter_func com c tl accessor_cl accessor_tl accessor_cf prop_cf =
+	let varg = mk_varg prop_cf.cf_type in
+	{
+		tf_args = [(varg,None)];
+		tf_type = com.basic.tvoid;
+		tf_expr = begin
+			let ethis = mk (TConst TThis) (TInst (c, tl)) null_pos in
+			let efield = mk (TField (ethis, FInstance (accessor_cl, accessor_tl, accessor_cf))) accessor_cf.cf_type null_pos in
+			let earg = mk (TLocal varg) prop_cf.cf_type null_pos in
+			mk (TCall (efield, [earg])) prop_cf.cf_type null_pos
+		end
+	}
+
+let maybe_gen_instance_setter ctx c f acc alloc_slot =
+	let tl = List.map snd c.cl_params in
+	maybe_gen_instance_accessor ctx c tl f acc alloc_slot MK3Setter
+		(mk_instance_setter_func ctx.com c tl c tl f)
+		(fun prop_cf -> ([(mk_varg prop_cf.cf_type,None)],ctx.com.basic.tvoid))
+
+
+let maybe_gen_static_accessor ctx cl accessor_cf acc alloc_slot kind f_impl =
+	match find_static_property_for_accessor ~isget:(kind = MK3Getter) cl accessor_cf.cf_name with
+	| Some prop_cf ->
+		let func = f_impl prop_cf in
+		let getter = {
+			hlf_name = ident prop_cf.cf_name;
+			hlf_slot = alloc_slot ();
+			hlf_kind = HFMethod {
+				hlm_type = generate_method ctx func true accessor_cf.cf_meta;
+				hlm_final = true;
+				hlm_override = false;
+				hlm_kind = kind;
+			};
+			hlf_metas = None;
+		} in
+		getter :: acc
+	| None ->
+		acc
+
+let maybe_gen_static_getter ctx c f acc alloc_slot =
+	maybe_gen_static_accessor ctx c f acc alloc_slot MK3Getter (fun prop_cf -> {
+		tf_args = [];
+		tf_type = prop_cf.cf_type;
+		tf_expr = begin
+			let ethis = Texpr.Builder.make_static_this c null_pos in
+			let efield = mk (TField (ethis, FStatic (c, f))) f.cf_type null_pos in
+			let ecall = mk (TCall (efield, [])) prop_cf.cf_type null_pos in
+			mk (TReturn (Some ecall)) t_dynamic null_pos;
+		end
+	})
+
+let maybe_gen_static_setter ctx c f acc alloc_slot =
+	maybe_gen_static_accessor ctx c f acc alloc_slot MK3Setter (fun prop_cf ->
+		let varg = alloc_var (VUser TVOArgument) "value" prop_cf.cf_type null_pos in
+		{
+			tf_args = [(varg,None)];
+			tf_type = ctx.com.basic.tvoid;
+			tf_expr = begin
+				let ethis = Texpr.Builder.make_static_this c null_pos in
+				let efield = mk (TField (ethis, FStatic (c, f))) f.cf_type null_pos in
+				let earg = mk (TLocal varg) prop_cf.cf_type null_pos in
+				mk (TCall (efield, [earg])) prop_cf.cf_type null_pos
+			end
+		}
+	)
+
+let realize_required_accessors ctx cl =
+	let is_implemented_by_super ci =
+		Option.map_default (fun (csup,_) ->
+			(* heavily stripped-down version from Type.unify *)
+			let rec loop c  =
+				c == ci
+				||
+				Option.map_default (fun (cs,_) -> loop cs) false c.cl_super
+				||
+				List.exists (fun (cs,_) -> loop cs) c.cl_implements
+			in
+			loop csup
+		) false cl.cl_super
+	in
+	let interface_props =
+		begin
+		let h = Hashtbl.create 0 in
+		let rec collect cl =
+			let loop (ci,_) =
+				if not (is_implemented_by_super ci) then begin
+					List.iter (fun cf ->
+						match cf.cf_kind with
+						| Var { v_read = (AccCall | AccNever) as read; v_write = (AccCall | AccNever) as write } ->
+							begin try
+								let read', write', native = Hashtbl.find h cf.cf_name in
+								let read = if read = AccNever then read' else true in
+								let write = if write = AccNever then write' else true in
+								Hashtbl.replace h cf.cf_name (read, write, native)
+							with Not_found ->
+								Hashtbl.add h cf.cf_name (read = AccCall, write = AccCall, if is_flash_property cf then Some ci else None)
+							end
+						| _ -> ()
+					) ci.cl_ordered_fields;
+					collect ci;
+				end
+			in
+			List.iter loop cl.cl_implements;
+		in
+		collect cl;
+		h
+		end
+	in
+
+	let rec has_nonextern_field cl name =
+		if PMap.exists name cl.cl_fields then true
+		else match cl.cl_super with
+		| Some ({ cl_extern = false } as csup, _) -> has_nonextern_field csup name
+		| _ -> false
+	in
+
+	let tl = List.map snd cl.cl_params in
+	let fields = ref [] in
+	Hashtbl.iter (fun name (read, write, native) ->
+		match Type.class_field cl tl name with
+		| Some (actual_cl, actual_tl), _, cf ->
+			Option.may (fun iface ->
+				if not (is_flash_property cf) then
+					abort (Printf.sprintf "Interface %s requires property %s to be marked with @:flash.property" (s_type_path iface.cl_path) cf.cf_name) cf.cf_pos
+			) native;
+			if actual_cl.cl_extern then begin
+				let mk_field_access () =
+					let ethis = mk (TConst TThis) (TInst (cl,tl)) null_pos in
+					mk (TField (ethis, FInstance (actual_cl, actual_tl, cf))) cf.cf_type null_pos
+				in
+				if read then begin
+					let getter_name = "get_" ^ name in
+					if not (has_nonextern_field cl getter_name) then begin
+						let getter_func = {
+							tf_args = [];
+							tf_type = cf.cf_type;
+							tf_expr = mk (TReturn (Some (mk_field_access ()))) t_dynamic null_pos;
+						} in
+						let getter = {
+							hlf_name = ident getter_name;
+							hlf_slot = 0;
+							hlf_kind = HFMethod {
+								hlm_type = generate_method ctx getter_func false [];
+								hlm_final = false;
+								hlm_override = false;
+								hlm_kind = MK3Normal;
+							};
+							hlf_metas = None;
+						} in
+						fields := getter :: !fields;
+					end
+				end;
+				if write then begin
+					let setter_name = "set_" ^ name in
+					if not (has_nonextern_field cl setter_name) then begin
+						let varg = alloc_var (VUser TVOArgument) "value" cf.cf_type null_pos in
+						let setter_func = {
+							tf_args = [(varg,None)];
+							tf_type = cf.cf_type;
+							tf_expr = begin
+								let efield = mk_field_access () in
+								let earg = mk (TLocal varg) varg.v_type null_pos in
+								let eassign = mk (TBinop (OpAssign, efield, earg)) cf.cf_type null_pos in
+								mk (TReturn (Some eassign)) t_dynamic null_pos;
+							end;
+						} in
+						let setter = {
+							hlf_name = ident setter_name;
+							hlf_slot = 0;
+							hlf_kind = HFMethod {
+								hlm_type = generate_method ctx setter_func false [];
+								hlm_final = false;
+								hlm_override = false;
+								hlm_kind = MK3Normal;
+							};
+							hlf_metas = None;
+						} in
+						fields := setter :: !fields;
+					end
+				end;
+			end
+		| _ -> assert false
+	) interface_props;
+	!fields
+
 let generate_class ctx c =
 	let name = type_path ctx c.cl_path in
 	ctx.cur_class <- c;
@@ -2146,16 +2456,74 @@ let generate_class ctx c =
 		else
 			loop_meta (find_meta c)
 	in
-	let generate_prop f acc alloc_slot =
+	let generate_prop stat f acc alloc_slot =
 		match f.cf_kind with
-		| Method _ -> acc
-		| Var v ->
-			(* let p = f.cf_pos in *)
-			(* let ethis = mk (TConst TThis) (TInst (c,[])) p in *)
-			acc
+		| Method _ when is_getter_name f.cf_name ->
+			if not stat then
+				maybe_gen_instance_getter ctx c f acc alloc_slot
+			else
+				maybe_gen_static_getter ctx c f acc alloc_slot
+		| Method _ when is_setter_name f.cf_name ->
+			if not stat then
+				maybe_gen_instance_setter ctx c f acc alloc_slot
+			else
+				maybe_gen_static_setter ctx c f acc alloc_slot
+		| Var { v_read = (AccCall | AccNever) as read; v_write = (AccCall | AccNever) as write } when not c.cl_interface && not (Meta.has Meta.IsVar f.cf_meta) ->
+			(* if the accessor methods were defined in super classes, we still need to generate native getter/setter *)
+			let acc =
+				if read = AccCall then begin
+					try
+						begin
+						let tl = List.map snd c.cl_params in
+						match Type.class_field c tl ("get_" ^ f.cf_name) with
+						| Some (actual_cl, actual_tl), _, getter_cf when actual_cl != c ->
+							let func = mk_instance_getter_func c tl actual_cl actual_tl getter_cf f in
+							{
+								hlf_name = ident f.cf_name;
+								hlf_slot = alloc_slot ();
+								hlf_kind = HFMethod {
+									hlm_type = generate_method ctx func false [];
+									hlm_final = false;
+									hlm_override = false;
+									hlm_kind = MK3Getter;
+								};
+								hlf_metas = None;
+							} :: acc
+						| _ ->
+							acc
+						end
+					with Not_found ->
+						acc
+				end else acc
+			in
+			if write = AccCall then begin
+				try
+					begin
+					let tl = List.map snd c.cl_params in
+					match Type.class_field c tl ("set_" ^ f.cf_name) with
+					| Some (actual_cl, actual_tl), _, setter_cf when actual_cl != c ->
+						let func = mk_instance_setter_func ctx.com c tl actual_cl actual_tl setter_cf f in
+						{
+							hlf_name = ident f.cf_name;
+							hlf_slot = alloc_slot ();
+							hlf_kind = HFMethod {
+								hlm_type = generate_method ctx func false [];
+								hlm_final = false;
+								hlm_override = false;
+								hlm_kind = MK3Setter;
+							};
+							hlf_metas = None;
+						} :: acc
+					| _ ->
+						acc
+					end
+				with Not_found ->
+					acc
+			end else acc
+		| Method _ | Var _ -> acc
 	in
 	let fields = PMap.fold (fun f acc ->
-		let acc = generate_prop f acc (fun() -> 0) in
+		let acc = generate_prop false f acc (fun() -> 0) in
 		match generate_field_kind ctx f c false with
 		| None -> acc
 		| Some k ->
@@ -2183,10 +2551,11 @@ let generate_class ctx c =
 			hlf_metas = None;
 		} :: fields
 	end in
+	let fields = if not c.cl_interface then fields @ realize_required_accessors ctx c else fields in
 	let st_field_count = ref 0 in
 	let st_meth_count = ref 0 in
 	let statics = List.rev (List.fold_left (fun acc f ->
-		let acc = generate_prop f acc (fun() -> incr st_meth_count; !st_meth_count) in
+		let acc = generate_prop true f acc (fun() -> incr st_meth_count; !st_meth_count) in
 		match generate_field_kind ctx f c true with
 		| None -> acc
 		| Some k ->

+ 40 - 13
src/typing/typeloadFields.ml

@@ -246,8 +246,17 @@ let patch_class ctx c fields =
 	| None -> fields
 	| Some (h,hcl) ->
 		c.cl_meta <- c.cl_meta @ hcl.tp_meta;
-		let rec loop acc = function
-			| [] -> acc
+		let patch_getter t fn =
+			{ fn with f_type = t }
+		in
+		let patch_setter t fn =
+			match fn.f_args with
+			| [(name,opt,meta,_,expr)] ->
+				{ fn with f_args = [(name,opt,meta,t,expr)]; f_type = t }
+			| _ -> fn
+		in
+		let rec loop acc accessor_acc = function
+			| [] -> acc, accessor_acc
 			| f :: l ->
 				(* patch arguments types *)
 				(match f.cff_kind with
@@ -263,20 +272,38 @@ let patch_class ctx c fields =
 				| _ -> ());
 				(* other patches *)
 				match (try Some (Hashtbl.find h (fst f.cff_name,List.mem_assoc AStatic f.cff_access)) with Not_found -> None) with
-				| None -> loop (f :: acc) l
-				| Some { tp_remove = true } -> loop acc l
+				| None -> loop (f :: acc) accessor_acc l
+				| Some { tp_remove = true } -> loop acc accessor_acc l
 				| Some p ->
 					f.cff_meta <- f.cff_meta @ p.tp_meta;
-					(match p.tp_type with
-					| None -> ()
-					| Some t ->
-						f.cff_kind <- match f.cff_kind with
-						| FVar (_,e) -> FVar (Some (t,null_pos),e)
-						| FProp (get,set,_,eo) -> FProp (get,set,Some (t,null_pos),eo)
-						| FFun f -> FFun { f with f_type = Some (t,null_pos) });
-					loop (f :: acc) l
+					let accessor_acc =
+						match p.tp_type with
+						| None -> accessor_acc
+						| Some t ->
+							match f.cff_kind with
+							| FVar (_,e) ->
+								f.cff_kind <- FVar (Some (t,null_pos),e); accessor_acc
+							| FProp (get,set,_,eo) ->
+								let typehint = Some (t,null_pos) in
+								let accessor_acc = if fst get = "get" then ("get_" ^ fst f.cff_name, patch_getter typehint) :: accessor_acc else accessor_acc in
+								let accessor_acc = if fst set = "set" then ("set_" ^ fst f.cff_name, patch_setter typehint) :: accessor_acc else accessor_acc in
+								f.cff_kind <- FProp (get,set,typehint,eo); accessor_acc
+							| FFun fn ->
+								f.cff_kind <- FFun { fn with f_type = Some (t,null_pos) }; accessor_acc
+					in
+					loop (f :: acc) accessor_acc l
 		in
-		List.rev (loop [] fields)
+		let fields, accessor_patches = loop [] [] fields in
+		List.iter (fun (accessor_name, patch) ->
+			try
+				let f_accessor = List.find (fun f -> fst f.cff_name = accessor_name) fields in
+				match f_accessor.cff_kind with
+				| FFun fn -> f_accessor.cff_kind <- FFun (patch fn)
+				| _ -> ()
+			with Not_found ->
+				()
+		) accessor_patches;
+		List.rev fields
 
 let lazy_display_type ctx f =
 	(* if ctx.is_display_file then begin

+ 2 - 1
std/flash/accessibility/Accessibility.hx

@@ -1,7 +1,8 @@
 package flash.accessibility;
 
 extern class Accessibility {
-	static var active(default,never) : Bool;
+	@:flash.property static var active(get,never) : Bool;
+	private static function get_active() : Bool;
 	static function sendEvent(source : flash.display.DisplayObject, childID : UInt, eventType : UInt, nonHTML : Bool = false) : Void;
 	static function updateProperties() : Void;
 }

+ 2 - 1
std/flash/accessibility/ISearchableText.hx

@@ -1,5 +1,6 @@
 package flash.accessibility;
 
 @:require(flash10_1) extern interface ISearchableText {
-	var searchText(default,never) : String;
+	@:flash.property var searchText(get,never) : String;
+	private function get_searchText() : String;
 }

+ 4 - 2
std/flash/accessibility/ISimpleTextSelection.hx

@@ -1,6 +1,8 @@
 package flash.accessibility;
 
 @:require(flash10_1) extern interface ISimpleTextSelection {
-	var selectionActiveIndex(default,never) : Int;
-	var selectionAnchorIndex(default,never) : Int;
+	@:flash.property var selectionActiveIndex(get,never) : Int;
+	@:flash.property var selectionAnchorIndex(get,never) : Int;
+	private function get_selectionActiveIndex() : Int;
+	private function get_selectionAnchorIndex() : Int;
 }

+ 3 - 1
std/flash/automation/AutomationAction.hx

@@ -1,6 +1,8 @@
 package flash.automation;
 
 @:require(flash10_1) extern class AutomationAction {
-	var type : String;
+	@:flash.property var type(get,set) : String;
 	function new() : Void;
+	private function get_type() : String;
+	private function set_type(value : String) : String;
 }

+ 5 - 2
std/flash/automation/Configuration.hx

@@ -1,6 +1,9 @@
 package flash.automation;
 
 @:require(flash10_1) extern class Configuration {
-	static var deviceConfiguration : String;
-	static var testAutomationConfiguration(default,never) : String;
+	@:flash.property static var deviceConfiguration(get,set) : String;
+	@:flash.property static var testAutomationConfiguration(get,never) : String;
+	private static function get_deviceConfiguration() : String;
+	private static function get_testAutomationConfiguration() : String;
+	private static function set_deviceConfiguration(value : String) : String;
 }

+ 3 - 1
std/flash/automation/KeyboardAutomationAction.hx

@@ -1,8 +1,10 @@
 package flash.automation;
 
 @:require(flash10_1) extern class KeyboardAutomationAction extends AutomationAction {
-	var keyCode : UInt;
+	@:flash.property var keyCode(get,set) : UInt;
 	function new(type : String, keyCode : UInt = 0) : Void;
+	private function get_keyCode() : UInt;
+	private function set_keyCode(value : UInt) : UInt;
 	static final KEY_DOWN : String;
 	static final KEY_UP : String;
 }

+ 9 - 3
std/flash/automation/MouseAutomationAction.hx

@@ -1,10 +1,16 @@
 package flash.automation;
 
 @:require(flash10_1) extern class MouseAutomationAction extends AutomationAction {
-	var delta : Int;
-	var stageX : Float;
-	var stageY : Float;
+	@:flash.property var delta(get,set) : Int;
+	@:flash.property var stageX(get,set) : Float;
+	@:flash.property var stageY(get,set) : Float;
 	function new(type : String, stageX : Float = 0, stageY : Float = 0, delta : Int = 0) : Void;
+	private function get_delta() : Int;
+	private function get_stageX() : Float;
+	private function get_stageY() : Float;
+	private function set_delta(value : Int) : Int;
+	private function set_stageX(value : Float) : Float;
+	private function set_stageY(value : Float) : Float;
 	static final MIDDLE_MOUSE_DOWN : String;
 	static final MIDDLE_MOUSE_UP : String;
 	static final MOUSE_DOWN : String;

+ 12 - 4
std/flash/automation/StageCapture.hx

@@ -1,14 +1,22 @@
 package flash.automation;
 
 @:require(flash10_1) extern class StageCapture extends flash.events.EventDispatcher {
-	var capturePTS : Float;
-	var captureSource : String;
-	var clipRect : flash.geom.Rectangle;
-	var fileNameBase : String;
+	@:flash.property var capturePTS(get,set) : Float;
+	@:flash.property var captureSource(get,set) : String;
+	@:flash.property var clipRect(get,set) : flash.geom.Rectangle;
+	@:flash.property var fileNameBase(get,set) : String;
 	function new() : Void;
 	function cancel() : Void;
 	function capture(type : String) : Void;
 	function captureBitmapData() : flash.display.BitmapData;
+	private function get_capturePTS() : Float;
+	private function get_captureSource() : String;
+	private function get_clipRect() : flash.geom.Rectangle;
+	private function get_fileNameBase() : String;
+	private function set_capturePTS(value : Float) : Float;
+	private function set_captureSource(value : String) : String;
+	private function set_clipRect(value : flash.geom.Rectangle) : flash.geom.Rectangle;
+	private function set_fileNameBase(value : String) : String;
 	static final CURRENT : String;
 	static final MULTIPLE : String;
 	static final NEXT : String;

+ 6 - 3
std/flash/automation/StageCaptureEvent.hx

@@ -1,9 +1,12 @@
 package flash.automation;
 
 @:require(flash10_1) extern class StageCaptureEvent extends flash.events.Event {
-	var checksum(default,never) : UInt;
-	var pts(default,never) : Float;
-	var url(default,never) : String;
+	@:flash.property var checksum(get,never) : UInt;
+	@:flash.property var pts(get,never) : Float;
+	@:flash.property var url(get,never) : String;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?url : String, checksum : UInt = 0, pts : Float = 0) : Void;
+	private function get_checksum() : UInt;
+	private function get_pts() : Float;
+	private function get_url() : String;
 	static final CAPTURE : String;
 }

+ 4 - 2
std/flash/concurrent/Condition.hx

@@ -1,10 +1,12 @@
 package flash.concurrent;
 
 @:require(flash11_4) extern final class Condition {
-	var mutex(default,never) : Mutex;
+	@:flash.property var mutex(get,never) : Mutex;
 	function new(mutex : Mutex) : Void;
+	private function get_mutex() : Mutex;
 	function notify() : Void;
 	function notifyAll() : Void;
 	function wait(timeout : Float = -1) : Bool;
-	static var isSupported(default,never) : Bool;
+	@:flash.property static var isSupported(get,never) : Bool;
+	private static function get_isSupported() : Bool;
 }

+ 2 - 1
std/flash/concurrent/Mutex.hx

@@ -5,5 +5,6 @@ package flash.concurrent;
 	function lock() : Void;
 	function tryLock() : Bool;
 	function unlock() : Void;
-	static var isSupported(default,never) : Bool;
+	@:flash.property static var isSupported(get,never) : Bool;
+	private static function get_isSupported() : Bool;
 }

+ 4 - 2
std/flash/desktop/Clipboard.hx

@@ -1,12 +1,14 @@
 package flash.desktop;
 
 @:require(flash10) extern class Clipboard {
-	var formats(default,never) : Array<ClipboardFormats>;
+	@:flash.property var formats(get,never) : Array<ClipboardFormats>;
 	function clear() : Void;
 	function clearData(format : ClipboardFormats) : Void;
 	function getData(format : ClipboardFormats, ?transferMode : ClipboardTransferMode) : flash.utils.Object;
+	private function get_formats() : Array<ClipboardFormats>;
 	function hasFormat(format : ClipboardFormats) : Bool;
 	function setData(format : ClipboardFormats, data : flash.utils.Object, serializable : Bool = true) : Bool;
 	function setDataHandler(format : ClipboardFormats, handler : flash.utils.Function, serializable : Bool = true) : Bool;
-	static var generalClipboard(default,never) : Clipboard;
+	@:flash.property static var generalClipboard(get,never) : Clipboard;
+	private static function get_generalClipboard() : Clipboard;
 }

+ 9 - 3
std/flash/display/Bitmap.hx

@@ -1,8 +1,14 @@
 package flash.display;
 
 extern class Bitmap extends DisplayObject {
-	var bitmapData : BitmapData;
-	var pixelSnapping : PixelSnapping;
-	var smoothing : Bool;
+	@:flash.property var bitmapData(get,set) : BitmapData;
+	@:flash.property var pixelSnapping(get,set) : PixelSnapping;
+	@:flash.property var smoothing(get,set) : Bool;
 	function new(?bitmapData : BitmapData, ?pixelSnapping : PixelSnapping, smoothing : Bool = false) : Void;
+	private function get_bitmapData() : BitmapData;
+	private function get_pixelSnapping() : PixelSnapping;
+	private function get_smoothing() : Bool;
+	private function set_bitmapData(value : BitmapData) : BitmapData;
+	private function set_pixelSnapping(value : PixelSnapping) : PixelSnapping;
+	private function set_smoothing(value : Bool) : Bool;
 }

+ 8 - 4
std/flash/display/BitmapData.hx

@@ -1,10 +1,10 @@
 package flash.display;
 
 extern class BitmapData implements IBitmapDrawable {
-	var height(default,never) : Int;
-	var rect(default,never) : flash.geom.Rectangle;
-	var transparent(default,never) : Bool;
-	var width(default,never) : Int;
+	@:flash.property var height(get,never) : Int;
+	@:flash.property var rect(get,never) : flash.geom.Rectangle;
+	@:flash.property var transparent(get,never) : Bool;
+	@:flash.property var width(get,never) : Int;
 	function new(width : Int, height : Int, transparent : Bool = true, fillColor : UInt = 0xFFFFFFFF) : Void;
 	function applyFilter(sourceBitmapData : BitmapData, sourceRect : flash.geom.Rectangle, destPoint : flash.geom.Point, filter : flash.filters.BitmapFilter) : Void;
 	function clone() : BitmapData;
@@ -25,6 +25,10 @@ extern class BitmapData implements IBitmapDrawable {
 	function getPixel32(x : Int, y : Int) : UInt;
 	function getPixels(rect : flash.geom.Rectangle) : flash.utils.ByteArray;
 	@:require(flash10) function getVector(rect : flash.geom.Rectangle) : flash.Vector<UInt>;
+	private function get_height() : Int;
+	private function get_rect() : flash.geom.Rectangle;
+	private function get_transparent() : Bool;
+	private function get_width() : Int;
 	@:require(flash10) function histogram(?hRect : flash.geom.Rectangle) : flash.Vector<flash.Vector<Float>>;
 	function hitTest(firstPoint : flash.geom.Point, firstAlphaThreshold : UInt, secondObject : flash.utils.Object, ?secondBitmapDataPoint : flash.geom.Point, secondAlphaThreshold : UInt = 1) : Bool;
 	function lock() : Void;

+ 88 - 31
std/flash/display/DisplayObject.hx

@@ -1,43 +1,100 @@
 package flash.display;
 
 extern class DisplayObject extends flash.events.EventDispatcher implements IBitmapDrawable {
-	var accessibilityProperties : flash.accessibility.AccessibilityProperties;
-	var alpha : Float;
-	var blendMode : BlendMode;
-	@:require(flash10) var blendShader(never,default) : Shader;
-	var cacheAsBitmap : Bool;
-	var filters : Array<flash.filters.BitmapFilter>;
-	var height : Float;
-	var loaderInfo(default,never) : LoaderInfo;
-	var mask : DisplayObject;
-	var mouseX(default,never) : Float;
-	var mouseY(default,never) : Float;
-	var name : String;
-	var opaqueBackground : Null<UInt>;
-	var parent(default,never) : DisplayObjectContainer;
-	var root(default,never) : DisplayObject;
-	var rotation : Float;
-	@:require(flash10) var rotationX : Float;
-	@:require(flash10) var rotationY : Float;
-	@:require(flash10) var rotationZ : Float;
-	var scale9Grid : flash.geom.Rectangle;
-	var scaleX : Float;
-	var scaleY : Float;
-	@:require(flash10) var scaleZ : Float;
-	var scrollRect : flash.geom.Rectangle;
-	var stage(default,never) : Stage;
-	var transform : flash.geom.Transform;
-	var visible : Bool;
-	var width : Float;
-	var x : Float;
-	var y : Float;
-	@:require(flash10) var z : Float;
+	@:flash.property var accessibilityProperties(get,set) : flash.accessibility.AccessibilityProperties;
+	@:flash.property var alpha(get,set) : Float;
+	@:flash.property var blendMode(get,set) : BlendMode;
+	@:flash.property @:require(flash10) var blendShader(never,set) : Shader;
+	@:flash.property var cacheAsBitmap(get,set) : Bool;
+	@:flash.property var filters(get,set) : Array<flash.filters.BitmapFilter>;
+	@:flash.property var height(get,set) : Float;
+	@:flash.property var loaderInfo(get,never) : LoaderInfo;
+	@:flash.property var mask(get,set) : DisplayObject;
+	@:flash.property var mouseX(get,never) : Float;
+	@:flash.property var mouseY(get,never) : Float;
+	@:flash.property var name(get,set) : String;
+	@:flash.property var opaqueBackground(get,set) : Null<UInt>;
+	@:flash.property var parent(get,never) : DisplayObjectContainer;
+	@:flash.property var root(get,never) : DisplayObject;
+	@:flash.property var rotation(get,set) : Float;
+	@:flash.property @:require(flash10) var rotationX(get,set) : Float;
+	@:flash.property @:require(flash10) var rotationY(get,set) : Float;
+	@:flash.property @:require(flash10) var rotationZ(get,set) : Float;
+	@:flash.property var scale9Grid(get,set) : flash.geom.Rectangle;
+	@:flash.property var scaleX(get,set) : Float;
+	@:flash.property var scaleY(get,set) : Float;
+	@:flash.property @:require(flash10) var scaleZ(get,set) : Float;
+	@:flash.property var scrollRect(get,set) : flash.geom.Rectangle;
+	@:flash.property var stage(get,never) : Stage;
+	@:flash.property var transform(get,set) : flash.geom.Transform;
+	@:flash.property var visible(get,set) : Bool;
+	@:flash.property var width(get,set) : Float;
+	@:flash.property var x(get,set) : Float;
+	@:flash.property var y(get,set) : Float;
+	@:flash.property @:require(flash10) var z(get,set) : Float;
 	function getBounds(targetCoordinateSpace : DisplayObject) : flash.geom.Rectangle;
 	function getRect(targetCoordinateSpace : DisplayObject) : flash.geom.Rectangle;
+	private function get_accessibilityProperties() : flash.accessibility.AccessibilityProperties;
+	private function get_alpha() : Float;
+	private function get_blendMode() : BlendMode;
+	private function get_cacheAsBitmap() : Bool;
+	private function get_filters() : Array<flash.filters.BitmapFilter>;
+	private function get_height() : Float;
+	private function get_loaderInfo() : LoaderInfo;
+	private function get_mask() : DisplayObject;
+	private function get_metaData() : Dynamic;
+	private function get_mouseX() : Float;
+	private function get_mouseY() : Float;
+	private function get_name() : String;
+	private function get_opaqueBackground() : Null<UInt>;
+	private function get_parent() : DisplayObjectContainer;
+	private function get_root() : DisplayObject;
+	private function get_rotation() : Float;
+	private function get_rotationX() : Float;
+	private function get_rotationY() : Float;
+	private function get_rotationZ() : Float;
+	private function get_scale9Grid() : flash.geom.Rectangle;
+	private function get_scaleX() : Float;
+	private function get_scaleY() : Float;
+	private function get_scaleZ() : Float;
+	private function get_scrollRect() : flash.geom.Rectangle;
+	private function get_stage() : Stage;
+	private function get_transform() : flash.geom.Transform;
+	private function get_visible() : Bool;
+	private function get_width() : Float;
+	private function get_x() : Float;
+	private function get_y() : Float;
+	private function get_z() : Float;
 	function globalToLocal(point : flash.geom.Point) : flash.geom.Point;
 	@:require(flash10) function globalToLocal3D(point : flash.geom.Point) : flash.geom.Vector3D;
 	function hitTestObject(obj : DisplayObject) : Bool;
 	function hitTestPoint(x : Float, y : Float, shapeFlag : Bool = false) : Bool;
 	@:require(flash10) function local3DToGlobal(point3d : flash.geom.Vector3D) : flash.geom.Point;
 	function localToGlobal(point : flash.geom.Point) : flash.geom.Point;
+	private function set_accessibilityProperties(value : flash.accessibility.AccessibilityProperties) : flash.accessibility.AccessibilityProperties;
+	private function set_alpha(value : Float) : Float;
+	private function set_blendMode(value : BlendMode) : BlendMode;
+	private function set_blendShader(value : Shader) : Shader;
+	private function set_cacheAsBitmap(value : Bool) : Bool;
+	private function set_filters(value : Array<flash.filters.BitmapFilter>) : Array<flash.filters.BitmapFilter>;
+	private function set_height(value : Float) : Float;
+	private function set_mask(value : DisplayObject) : DisplayObject;
+	private function set_metaData(value : Dynamic) : Dynamic;
+	private function set_name(value : String) : String;
+	private function set_opaqueBackground(value : Null<UInt>) : Null<UInt>;
+	private function set_rotation(value : Float) : Float;
+	private function set_rotationX(value : Float) : Float;
+	private function set_rotationY(value : Float) : Float;
+	private function set_rotationZ(value : Float) : Float;
+	private function set_scale9Grid(value : flash.geom.Rectangle) : flash.geom.Rectangle;
+	private function set_scaleX(value : Float) : Float;
+	private function set_scaleY(value : Float) : Float;
+	private function set_scaleZ(value : Float) : Float;
+	private function set_scrollRect(value : flash.geom.Rectangle) : flash.geom.Rectangle;
+	private function set_transform(value : flash.geom.Transform) : flash.geom.Transform;
+	private function set_visible(value : Bool) : Bool;
+	private function set_width(value : Float) : Float;
+	private function set_x(value : Float) : Float;
+	private function set_y(value : Float) : Float;
+	private function set_z(value : Float) : Float;
 }

+ 10 - 4
std/flash/display/DisplayObjectContainer.hx

@@ -1,10 +1,10 @@
 package flash.display;
 
 extern class DisplayObjectContainer extends InteractiveObject {
-	var mouseChildren : Bool;
-	var numChildren(default,never) : Int;
-	var tabChildren : Bool;
-	var textSnapshot(default,never) : flash.text.TextSnapshot;
+	@:flash.property var mouseChildren(get,set) : Bool;
+	@:flash.property var numChildren(get,never) : Int;
+	@:flash.property var tabChildren(get,set) : Bool;
+	@:flash.property var textSnapshot(get,never) : flash.text.TextSnapshot;
 	function new() : Void;
 	function addChild(child : DisplayObject) : DisplayObject;
 	function addChildAt(child : DisplayObject, index : Int) : DisplayObject;
@@ -14,10 +14,16 @@ extern class DisplayObjectContainer extends InteractiveObject {
 	function getChildByName(name : String) : DisplayObject;
 	function getChildIndex(child : DisplayObject) : Int;
 	function getObjectsUnderPoint(point : flash.geom.Point) : Array<DisplayObject>;
+	private function get_mouseChildren() : Bool;
+	private function get_numChildren() : Int;
+	private function get_tabChildren() : Bool;
+	private function get_textSnapshot() : flash.text.TextSnapshot;
 	function removeChild(child : DisplayObject) : DisplayObject;
 	function removeChildAt(index : Int) : DisplayObject;
 	@:require(flash11) function removeChildren(beginIndex : Int = 0, endIndex : Int = 2147483647) : Void;
 	function setChildIndex(child : DisplayObject, index : Int) : Void;
+	private function set_mouseChildren(value : Bool) : Bool;
+	private function set_tabChildren(value : Bool) : Bool;
 	@:require(flash11_8) function stopAllMovieClips() : Void;
 	function swapChildren(child1 : DisplayObject, child2 : DisplayObject) : Void;
 	function swapChildrenAt(index1 : Int, index2 : Int) : Void;

+ 4 - 2
std/flash/display/FrameLabel.hx

@@ -1,7 +1,9 @@
 package flash.display;
 
 extern final class FrameLabel extends flash.events.EventDispatcher {
-	var frame(default,never) : Int;
-	var name(default,never) : String;
+	@:flash.property var frame(get,never) : Int;
+	@:flash.property var name(get,never) : String;
 	function new(name : String, frame : Int) : Void;
+	private function get_frame() : Int;
+	private function get_name() : String;
 }

+ 9 - 3
std/flash/display/GraphicsGradientFill.hx

@@ -4,10 +4,16 @@ extern final class GraphicsGradientFill implements IGraphicsData implements IGra
 	var alphas : Array<Float>;
 	var colors : Array<UInt>;
 	var focalPointRatio : Float;
-	var interpolationMethod : InterpolationMethod;
+	@:flash.property var interpolationMethod(get,set) : InterpolationMethod;
 	var matrix : flash.geom.Matrix;
 	var ratios : Array<Float>;
-	var spreadMethod : SpreadMethod;
-	var type : GradientType;
+	@:flash.property var spreadMethod(get,set) : SpreadMethod;
+	@:flash.property var type(get,set) : GradientType;
 	function new(?type : GradientType, ?colors : Array<UInt>, ?alphas : Array<Float>, ?ratios : Array<Float>, ?matrix : flash.geom.Matrix, ?spreadMethod : SpreadMethod, ?interpolationMethod : InterpolationMethod, focalPointRatio : Float = 0) : Void;
+	private function get_interpolationMethod() : InterpolationMethod;
+	private function get_spreadMethod() : SpreadMethod;
+	private function get_type() : GradientType;
+	private function set_interpolationMethod(value : InterpolationMethod) : InterpolationMethod;
+	private function set_spreadMethod(value : SpreadMethod) : SpreadMethod;
+	private function set_type(value : GradientType) : GradientType;
 }

+ 3 - 1
std/flash/display/GraphicsPath.hx

@@ -3,12 +3,14 @@ package flash.display;
 extern final class GraphicsPath implements IGraphicsData implements IGraphicsPath {
 	var commands : flash.Vector<Int>;
 	var data : flash.Vector<Float>;
-	var winding : GraphicsPathWinding;
+	@:flash.property var winding(get,set) : GraphicsPathWinding;
 	function new(?commands : flash.Vector<Int>, ?data : flash.Vector<Float>, ?winding : GraphicsPathWinding) : Void;
 	@:require(flash11) function cubicCurveTo(controlX1 : Float, controlY1 : Float, controlX2 : Float, controlY2 : Float, anchorX : Float, anchorY : Float) : Void;
 	function curveTo(controlX : Float, controlY : Float, anchorX : Float, anchorY : Float) : Void;
+	private function get_winding() : GraphicsPathWinding;
 	function lineTo(x : Float, y : Float) : Void;
 	function moveTo(x : Float, y : Float) : Void;
+	private function set_winding(value : GraphicsPathWinding) : GraphicsPathWinding;
 	function wideLineTo(x : Float, y : Float) : Void;
 	function wideMoveTo(x : Float, y : Float) : Void;
 }

+ 9 - 3
std/flash/display/GraphicsStroke.hx

@@ -1,12 +1,18 @@
 package flash.display;
 
 extern final class GraphicsStroke implements IGraphicsData implements IGraphicsStroke {
-	var caps : CapsStyle;
+	@:flash.property var caps(get,set) : CapsStyle;
 	var fill : IGraphicsFill;
-	var joints : JointStyle;
+	@:flash.property var joints(get,set) : JointStyle;
 	var miterLimit : Float;
 	var pixelHinting : Bool;
-	var scaleMode : LineScaleMode;
+	@:flash.property var scaleMode(get,set) : LineScaleMode;
 	var thickness : Float;
 	function new(thickness : Float = 0./*NaN*/, pixelHinting : Bool = false, ?scaleMode : LineScaleMode, ?caps : CapsStyle, ?joints : JointStyle, miterLimit : Float = 3, ?fill : IGraphicsFill) : Void;
+	private function get_caps() : CapsStyle;
+	private function get_joints() : JointStyle;
+	private function get_scaleMode() : LineScaleMode;
+	private function set_caps(value : CapsStyle) : CapsStyle;
+	private function set_joints(value : JointStyle) : JointStyle;
+	private function set_scaleMode(value : LineScaleMode) : LineScaleMode;
 }

+ 3 - 1
std/flash/display/GraphicsTrianglePath.hx

@@ -1,9 +1,11 @@
 package flash.display;
 
 extern final class GraphicsTrianglePath implements IGraphicsData implements IGraphicsPath {
-	var culling : TriangleCulling;
+	@:flash.property var culling(get,set) : TriangleCulling;
 	var indices : flash.Vector<Int>;
 	var uvtData : flash.Vector<Float>;
 	var vertices : flash.Vector<Float>;
 	function new(?vertices : flash.Vector<Float>, ?indices : flash.Vector<Int>, ?uvtData : flash.Vector<Float>, ?culling : TriangleCulling) : Void;
+	private function get_culling() : TriangleCulling;
+	private function set_culling(value : TriangleCulling) : TriangleCulling;
 }

+ 27 - 9
std/flash/display/InteractiveObject.hx

@@ -1,15 +1,33 @@
 package flash.display;
 
 extern class InteractiveObject extends DisplayObject {
-	var accessibilityImplementation : flash.accessibility.AccessibilityImplementation;
-	var contextMenu : flash.ui.ContextMenu;
-	var doubleClickEnabled : Bool;
-	var focusRect : Dynamic;
-	var mouseEnabled : Bool;
-	@:require(flash11) var needsSoftKeyboard : Bool;
-	@:require(flash11) var softKeyboardInputAreaOfInterest : flash.geom.Rectangle;
-	var tabEnabled : Bool;
-	var tabIndex : Int;
+	@:flash.property var accessibilityImplementation(get,set) : flash.accessibility.AccessibilityImplementation;
+	@:flash.property var contextMenu(get,set) : flash.ui.ContextMenu;
+	@:flash.property var doubleClickEnabled(get,set) : Bool;
+	@:flash.property var focusRect(get,set) : Dynamic;
+	@:flash.property var mouseEnabled(get,set) : Bool;
+	@:flash.property @:require(flash11) var needsSoftKeyboard(get,set) : Bool;
+	@:flash.property @:require(flash11) var softKeyboardInputAreaOfInterest(get,set) : flash.geom.Rectangle;
+	@:flash.property var tabEnabled(get,set) : Bool;
+	@:flash.property var tabIndex(get,set) : Int;
 	function new() : Void;
+	private function get_accessibilityImplementation() : flash.accessibility.AccessibilityImplementation;
+	private function get_contextMenu() : flash.ui.ContextMenu;
+	private function get_doubleClickEnabled() : Bool;
+	private function get_focusRect() : Dynamic;
+	private function get_mouseEnabled() : Bool;
+	private function get_needsSoftKeyboard() : Bool;
+	private function get_softKeyboardInputAreaOfInterest() : flash.geom.Rectangle;
+	private function get_tabEnabled() : Bool;
+	private function get_tabIndex() : Int;
 	@:require(flash11) function requestSoftKeyboard() : Bool;
+	private function set_accessibilityImplementation(value : flash.accessibility.AccessibilityImplementation) : flash.accessibility.AccessibilityImplementation;
+	private function set_contextMenu(value : flash.ui.ContextMenu) : flash.ui.ContextMenu;
+	private function set_doubleClickEnabled(value : Bool) : Bool;
+	private function set_focusRect(value : Dynamic) : Dynamic;
+	private function set_mouseEnabled(value : Bool) : Bool;
+	private function set_needsSoftKeyboard(value : Bool) : Bool;
+	private function set_softKeyboardInputAreaOfInterest(value : flash.geom.Rectangle) : flash.geom.Rectangle;
+	private function set_tabEnabled(value : Bool) : Bool;
+	private function set_tabIndex(value : Int) : Int;
 }

+ 6 - 3
std/flash/display/Loader.hx

@@ -1,11 +1,14 @@
 package flash.display;
 
 extern class Loader extends DisplayObjectContainer {
-	var content(default,never) : DisplayObject;
-	var contentLoaderInfo(default,never) : LoaderInfo;
-	@:require(flash10_1) var uncaughtErrorEvents(default,never) : flash.events.UncaughtErrorEvents;
+	@:flash.property var content(get,never) : DisplayObject;
+	@:flash.property var contentLoaderInfo(get,never) : LoaderInfo;
+	@:flash.property @:require(flash10_1) var uncaughtErrorEvents(get,never) : flash.events.UncaughtErrorEvents;
 	function new() : Void;
 	function close() : Void;
+	private function get_content() : DisplayObject;
+	private function get_contentLoaderInfo() : LoaderInfo;
+	private function get_uncaughtErrorEvents() : flash.events.UncaughtErrorEvents;
 	function load(request : flash.net.URLRequest, ?context : flash.system.LoaderContext) : Void;
 	function loadBytes(bytes : flash.utils.ByteArray, ?context : flash.system.LoaderContext) : Void;
 	function unload() : Void;

+ 48 - 23
std/flash/display/LoaderInfo.hx

@@ -1,28 +1,53 @@
 package flash.display;
 
 extern class LoaderInfo extends flash.events.EventDispatcher {
-	var actionScriptVersion(default,never) : ActionScriptVersion;
-	var applicationDomain(default,never) : flash.system.ApplicationDomain;
-	var bytes(default,never) : flash.utils.ByteArray;
-	var bytesLoaded(default,never) : UInt;
-	var bytesTotal(default,never) : UInt;
-	var childAllowsParent(default,never) : Bool;
-	@:require(flash11_4) var childSandboxBridge : Dynamic;
-	var content(default,never) : DisplayObject;
-	var contentType(default,never) : String;
-	var frameRate(default,never) : Float;
-	var height(default,never) : Int;
-	@:require(flash10_1) var isURLInaccessible(default,never) : Bool;
-	var loader(default,never) : Loader;
-	var loaderURL(default,never) : String;
-	var parameters(default,never) : Dynamic<String>;
-	var parentAllowsChild(default,never) : Bool;
-	@:require(flash11_4) var parentSandboxBridge : Dynamic;
-	var sameDomain(default,never) : Bool;
-	var sharedEvents(default,never) : flash.events.EventDispatcher;
-	var swfVersion(default,never) : UInt;
-	@:require(flash10_1) var uncaughtErrorEvents(default,never) : flash.events.UncaughtErrorEvents;
-	var url(default,never) : String;
-	var width(default,never) : Int;
+	@:flash.property var actionScriptVersion(get,never) : ActionScriptVersion;
+	@:flash.property var applicationDomain(get,never) : flash.system.ApplicationDomain;
+	@:flash.property var bytes(get,never) : flash.utils.ByteArray;
+	@:flash.property var bytesLoaded(get,never) : UInt;
+	@:flash.property var bytesTotal(get,never) : UInt;
+	@:flash.property var childAllowsParent(get,never) : Bool;
+	@:flash.property @:require(flash11_4) var childSandboxBridge(get,set) : Dynamic;
+	@:flash.property var content(get,never) : DisplayObject;
+	@:flash.property var contentType(get,never) : String;
+	@:flash.property var frameRate(get,never) : Float;
+	@:flash.property var height(get,never) : Int;
+	@:flash.property @:require(flash10_1) var isURLInaccessible(get,never) : Bool;
+	@:flash.property var loader(get,never) : Loader;
+	@:flash.property var loaderURL(get,never) : String;
+	@:flash.property var parameters(get,never) : Dynamic<String>;
+	@:flash.property var parentAllowsChild(get,never) : Bool;
+	@:flash.property @:require(flash11_4) var parentSandboxBridge(get,set) : Dynamic;
+	@:flash.property var sameDomain(get,never) : Bool;
+	@:flash.property var sharedEvents(get,never) : flash.events.EventDispatcher;
+	@:flash.property var swfVersion(get,never) : UInt;
+	@:flash.property @:require(flash10_1) var uncaughtErrorEvents(get,never) : flash.events.UncaughtErrorEvents;
+	@:flash.property var url(get,never) : String;
+	@:flash.property var width(get,never) : Int;
+	private function get_actionScriptVersion() : ActionScriptVersion;
+	private function get_applicationDomain() : flash.system.ApplicationDomain;
+	private function get_bytes() : flash.utils.ByteArray;
+	private function get_bytesLoaded() : UInt;
+	private function get_bytesTotal() : UInt;
+	private function get_childAllowsParent() : Bool;
+	private function get_childSandboxBridge() : Dynamic;
+	private function get_content() : DisplayObject;
+	private function get_contentType() : String;
+	private function get_frameRate() : Float;
+	private function get_height() : Int;
+	private function get_isURLInaccessible() : Bool;
+	private function get_loader() : Loader;
+	private function get_loaderURL() : String;
+	private function get_parameters() : Dynamic<String>;
+	private function get_parentAllowsChild() : Bool;
+	private function get_parentSandboxBridge() : Dynamic;
+	private function get_sameDomain() : Bool;
+	private function get_sharedEvents() : flash.events.EventDispatcher;
+	private function get_swfVersion() : UInt;
+	private function get_uncaughtErrorEvents() : flash.events.UncaughtErrorEvents;
+	private function get_url() : String;
+	private function get_width() : Int;
+	private function set_childSandboxBridge(value : Dynamic) : Dynamic;
+	private function set_parentSandboxBridge(value : Dynamic) : Dynamic;
 	static function getLoaderInfoByDefinition(object : Dynamic) : LoaderInfo;
 }

+ 24 - 11
std/flash/display/MovieClip.hx

@@ -1,19 +1,30 @@
 package flash.display;
 
 extern class MovieClip extends Sprite #if !flash_strict implements Dynamic #end {
-	var currentFrame(default,never) : Int;
-	@:require(flash10) var currentFrameLabel(default,never) : String;
-	var currentLabel(default,never) : String;
-	var currentLabels(default,never) : Array<FrameLabel>;
-	var currentScene(default,never) : Scene;
-	var enabled : Bool;
-	var framesLoaded(default,never) : Int;
-	@:require(flash11) var isPlaying(default,never) : Bool;
-	var scenes(default,never) : Array<Scene>;
-	var totalFrames(default,never) : Int;
-	var trackAsMenu : Bool;
+	@:flash.property var currentFrame(get,never) : Int;
+	@:flash.property @:require(flash10) var currentFrameLabel(get,never) : String;
+	@:flash.property var currentLabel(get,never) : String;
+	@:flash.property var currentLabels(get,never) : Array<FrameLabel>;
+	@:flash.property var currentScene(get,never) : Scene;
+	@:flash.property var enabled(get,set) : Bool;
+	@:flash.property var framesLoaded(get,never) : Int;
+	@:flash.property @:require(flash11) var isPlaying(get,never) : Bool;
+	@:flash.property var scenes(get,never) : Array<Scene>;
+	@:flash.property var totalFrames(get,never) : Int;
+	@:flash.property var trackAsMenu(get,set) : Bool;
 	function new() : Void;
 	function addFrameScript(restArgs : haxe.extern.Rest<Dynamic>) : Void;
+	private function get_currentFrame() : Int;
+	private function get_currentFrameLabel() : String;
+	private function get_currentLabel() : String;
+	private function get_currentLabels() : Array<FrameLabel>;
+	private function get_currentScene() : Scene;
+	private function get_enabled() : Bool;
+	private function get_framesLoaded() : Int;
+	private function get_isPlaying() : Bool;
+	private function get_scenes() : Array<Scene>;
+	private function get_totalFrames() : Int;
+	private function get_trackAsMenu() : Bool;
 	function gotoAndPlay(frame : flash.utils.Object, ?scene : String) : Void;
 	function gotoAndStop(frame : flash.utils.Object, ?scene : String) : Void;
 	function nextFrame() : Void;
@@ -21,5 +32,7 @@ extern class MovieClip extends Sprite #if !flash_strict implements Dynamic #end
 	function play() : Void;
 	function prevFrame() : Void;
 	function prevScene() : Void;
+	private function set_enabled(value : Bool) : Bool;
+	private function set_trackAsMenu(value : Bool) : Bool;
 	function stop() : Void;
 }

+ 3 - 1
std/flash/display/NativeMenuItem.hx

@@ -1,6 +1,8 @@
 package flash.display;
 
 @:require(flash10_1) extern class NativeMenuItem extends flash.events.EventDispatcher {
-	var enabled : Bool;
+	@:flash.property var enabled(get,set) : Bool;
 	function new() : Void;
+	private function get_enabled() : Bool;
+	private function set_enabled(value : Bool) : Bool;
 }

+ 6 - 3
std/flash/display/Scene.hx

@@ -1,8 +1,11 @@
 package flash.display;
 
 extern final class Scene {
-	var labels(default,never) : Array<FrameLabel>;
-	var name(default,never) : String;
-	var numFrames(default,never) : Int;
+	@:flash.property var labels(get,never) : Array<FrameLabel>;
+	@:flash.property var name(get,never) : String;
+	@:flash.property var numFrames(get,never) : Int;
 	function new(name : String, labels : Array<FrameLabel>, numFrames : Int) : Void;
+	private function get_labels() : Array<FrameLabel>;
+	private function get_name() : String;
+	private function get_numFrames() : Int;
 }

+ 8 - 3
std/flash/display/Shader.hx

@@ -1,8 +1,13 @@
 package flash.display;
 
 @:require(flash10) extern class Shader {
-	var byteCode(never,default) : flash.utils.ByteArray;
-	var data : ShaderData;
-	var precisionHint : ShaderPrecision;
+	@:flash.property var byteCode(never,set) : flash.utils.ByteArray;
+	@:flash.property var data(get,set) : ShaderData;
+	@:flash.property var precisionHint(get,set) : ShaderPrecision;
 	function new(?code : flash.utils.ByteArray) : Void;
+	private function get_data() : ShaderData;
+	private function get_precisionHint() : ShaderPrecision;
+	private function set_byteCode(value : flash.utils.ByteArray) : flash.utils.ByteArray;
+	private function set_data(value : ShaderData) : ShaderData;
+	private function set_precisionHint(value : ShaderPrecision) : ShaderPrecision;
 }

+ 13 - 5
std/flash/display/ShaderInput.hx

@@ -1,10 +1,18 @@
 package flash.display;
 
 extern final class ShaderInput implements Dynamic {
-	var channels(default,never) : Int;
-	var height : Int;
-	var index(default,never) : Int;
-	var input : Dynamic;
-	var width : Int;
+	@:flash.property var channels(get,never) : Int;
+	@:flash.property var height(get,set) : Int;
+	@:flash.property var index(get,never) : Int;
+	@:flash.property var input(get,set) : Dynamic;
+	@:flash.property var width(get,set) : Int;
 	function new() : Void;
+	private function get_channels() : Int;
+	private function get_height() : Int;
+	private function get_index() : Int;
+	private function get_input() : Dynamic;
+	private function get_width() : Int;
+	private function set_height(value : Int) : Int;
+	private function set_input(value : Dynamic) : Dynamic;
+	private function set_width(value : Int) : Int;
 }

+ 14 - 5
std/flash/display/ShaderJob.hx

@@ -1,12 +1,21 @@
 package flash.display;
 
 extern class ShaderJob extends flash.events.EventDispatcher {
-	var height : Int;
-	var progress(default,never) : Float;
-	var shader : Shader;
-	var target : Dynamic;
-	var width : Int;
+	@:flash.property var height(get,set) : Int;
+	@:flash.property var progress(get,never) : Float;
+	@:flash.property var shader(get,set) : Shader;
+	@:flash.property var target(get,set) : Dynamic;
+	@:flash.property var width(get,set) : Int;
 	function new(?shader : Shader, ?target : Dynamic, width : Int = 0, height : Int = 0) : Void;
 	function cancel() : Void;
+	private function get_height() : Int;
+	private function get_progress() : Float;
+	private function get_shader() : Shader;
+	private function get_target() : Dynamic;
+	private function get_width() : Int;
+	private function set_height(value : Int) : Int;
+	private function set_shader(value : Shader) : Shader;
+	private function set_target(value : Dynamic) : Dynamic;
+	private function set_width(value : Int) : Int;
 	function start(waitForCompletion : Bool = false) : Void;
 }

+ 7 - 3
std/flash/display/ShaderParameter.hx

@@ -1,7 +1,11 @@
 package flash.display;
 
 extern final class ShaderParameter implements Dynamic {
-	var index(default,never) : Int;
-	var type(default,never) : ShaderParameterType;
-	var value : Array<Dynamic>;
+	@:flash.property var index(get,never) : Int;
+	@:flash.property var type(get,never) : ShaderParameterType;
+	@:flash.property var value(get,set) : Array<Dynamic>;
+	private function get_index() : Int;
+	private function get_type() : ShaderParameterType;
+	private function get_value() : Array<Dynamic>;
+	private function set_value(value : Array<Dynamic>) : Array<Dynamic>;
 }

+ 2 - 1
std/flash/display/Shape.hx

@@ -1,6 +1,7 @@
 package flash.display;
 
 extern class Shape extends DisplayObject {
-	var graphics(default,never) : Graphics;
+	@:flash.property var graphics(get,never) : Graphics;
 	function new() : Void;
+	private function get_graphics() : Graphics;
 }

+ 24 - 8
std/flash/display/SimpleButton.hx

@@ -1,13 +1,29 @@
 package flash.display;
 
 extern class SimpleButton extends InteractiveObject {
-	var downState : DisplayObject;
-	var enabled : Bool;
-	var hitTestState : DisplayObject;
-	var overState : DisplayObject;
-	var soundTransform : flash.media.SoundTransform;
-	var trackAsMenu : Bool;
-	var upState : DisplayObject;
-	var useHandCursor : Bool;
+	@:flash.property var downState(get,set) : DisplayObject;
+	@:flash.property var enabled(get,set) : Bool;
+	@:flash.property var hitTestState(get,set) : DisplayObject;
+	@:flash.property var overState(get,set) : DisplayObject;
+	@:flash.property var soundTransform(get,set) : flash.media.SoundTransform;
+	@:flash.property var trackAsMenu(get,set) : Bool;
+	@:flash.property var upState(get,set) : DisplayObject;
+	@:flash.property var useHandCursor(get,set) : Bool;
 	function new(?upState : DisplayObject, ?overState : DisplayObject, ?downState : DisplayObject, ?hitTestState : DisplayObject) : Void;
+	private function get_downState() : DisplayObject;
+	private function get_enabled() : Bool;
+	private function get_hitTestState() : DisplayObject;
+	private function get_overState() : DisplayObject;
+	private function get_soundTransform() : flash.media.SoundTransform;
+	private function get_trackAsMenu() : Bool;
+	private function get_upState() : DisplayObject;
+	private function get_useHandCursor() : Bool;
+	private function set_downState(value : DisplayObject) : DisplayObject;
+	private function set_enabled(value : Bool) : Bool;
+	private function set_hitTestState(value : DisplayObject) : DisplayObject;
+	private function set_overState(value : DisplayObject) : DisplayObject;
+	private function set_soundTransform(value : flash.media.SoundTransform) : flash.media.SoundTransform;
+	private function set_trackAsMenu(value : Bool) : Bool;
+	private function set_upState(value : DisplayObject) : DisplayObject;
+	private function set_useHandCursor(value : Bool) : Bool;
 }

+ 16 - 6
std/flash/display/Sprite.hx

@@ -1,13 +1,23 @@
 package flash.display;
 
 extern class Sprite extends DisplayObjectContainer {
-	var buttonMode : Bool;
-	var dropTarget(default,never) : DisplayObject;
-	var graphics(default,never) : Graphics;
-	var hitArea : Sprite;
-	var soundTransform : flash.media.SoundTransform;
-	var useHandCursor : Bool;
+	@:flash.property var buttonMode(get,set) : Bool;
+	@:flash.property var dropTarget(get,never) : DisplayObject;
+	@:flash.property var graphics(get,never) : Graphics;
+	@:flash.property var hitArea(get,set) : Sprite;
+	@:flash.property var soundTransform(get,set) : flash.media.SoundTransform;
+	@:flash.property var useHandCursor(get,set) : Bool;
 	function new() : Void;
+	private function get_buttonMode() : Bool;
+	private function get_dropTarget() : DisplayObject;
+	private function get_graphics() : Graphics;
+	private function get_hitArea() : Sprite;
+	private function get_soundTransform() : flash.media.SoundTransform;
+	private function get_useHandCursor() : Bool;
+	private function set_buttonMode(value : Bool) : Bool;
+	private function set_hitArea(value : Sprite) : Sprite;
+	private function set_soundTransform(value : flash.media.SoundTransform) : flash.media.SoundTransform;
+	private function set_useHandCursor(value : Bool) : Bool;
 	function startDrag(lockCenter : Bool = false, ?bounds : flash.geom.Rectangle) : Void;
 	@:require(flash10_1) function startTouchDrag(touchPointID : Int, lockCenter : Bool = false, ?bounds : flash.geom.Rectangle) : Void;
 	function stopDrag() : Void;

+ 68 - 26
std/flash/display/Stage.hx

@@ -1,32 +1,74 @@
 package flash.display;
 
 extern class Stage extends DisplayObjectContainer {
-	var align : StageAlign;
-	var allowsFullScreen(default,never) : Bool;
-	@:require(flash11_3) var allowsFullScreenInteractive(default,never) : Bool;
-	var browserZoomFactor(default,never) : Float;
-	@:require(flash10_2) var color : UInt;
-	@:require(flash10) var colorCorrection : ColorCorrection;
-	@:require(flash10) var colorCorrectionSupport(default,never) : ColorCorrectionSupport;
-	@:require(flash11_4) var contentsScaleFactor(default,never) : Float;
-	@:require(flash11) var displayContextInfo(default,never) : String;
-	var displayState : StageDisplayState;
-	var focus : InteractiveObject;
-	var frameRate : Float;
-	var fullScreenHeight(default,never) : UInt;
-	var fullScreenSourceRect : flash.geom.Rectangle;
-	var fullScreenWidth(default,never) : UInt;
-	@:require(flash11_2) var mouseLock : Bool;
-	var quality : StageQuality;
-	var scaleMode : StageScaleMode;
-	var showDefaultContextMenu : Bool;
-	@:require(flash11) var softKeyboardRect(default,never) : flash.geom.Rectangle;
-	@:require(flash11) var stage3Ds(default,never) : flash.Vector<Stage3D>;
-	var stageFocusRect : Bool;
-	var stageHeight : Int;
-	@:require(flash10_2) var stageVideos(default,never) : flash.Vector<flash.media.StageVideo>;
-	var stageWidth : Int;
-	@:require(flash10_1) var wmodeGPU(default,never) : Bool;
+	@:flash.property var align(get,set) : StageAlign;
+	@:flash.property var allowsFullScreen(get,never) : Bool;
+	@:flash.property @:require(flash11_3) var allowsFullScreenInteractive(get,never) : Bool;
+	@:flash.property var browserZoomFactor(get,never) : Float;
+	@:flash.property @:require(flash10_2) var color(get,set) : UInt;
+	@:flash.property @:require(flash10) var colorCorrection(get,set) : ColorCorrection;
+	@:flash.property @:require(flash10) var colorCorrectionSupport(get,never) : ColorCorrectionSupport;
+	@:flash.property @:require(flash11_4) var contentsScaleFactor(get,never) : Float;
+	@:flash.property @:require(flash11) var displayContextInfo(get,never) : String;
+	@:flash.property var displayState(get,set) : StageDisplayState;
+	@:flash.property var focus(get,set) : InteractiveObject;
+	@:flash.property var frameRate(get,set) : Float;
+	@:flash.property var fullScreenHeight(get,never) : UInt;
+	@:flash.property var fullScreenSourceRect(get,set) : flash.geom.Rectangle;
+	@:flash.property var fullScreenWidth(get,never) : UInt;
+	@:flash.property @:require(flash11_2) var mouseLock(get,set) : Bool;
+	@:flash.property var quality(get,set) : StageQuality;
+	@:flash.property var scaleMode(get,set) : StageScaleMode;
+	@:flash.property var showDefaultContextMenu(get,set) : Bool;
+	@:flash.property @:require(flash11) var softKeyboardRect(get,never) : flash.geom.Rectangle;
+	@:flash.property @:require(flash11) var stage3Ds(get,never) : flash.Vector<Stage3D>;
+	@:flash.property var stageFocusRect(get,set) : Bool;
+	@:flash.property var stageHeight(get,set) : Int;
+	@:flash.property @:require(flash10_2) var stageVideos(get,never) : flash.Vector<flash.media.StageVideo>;
+	@:flash.property var stageWidth(get,set) : Int;
+	@:flash.property @:require(flash10_1) var wmodeGPU(get,never) : Bool;
+	private function get_align() : StageAlign;
+	private function get_allowsFullScreen() : Bool;
+	private function get_allowsFullScreenInteractive() : Bool;
+	private function get_browserZoomFactor() : Float;
+	private function get_color() : UInt;
+	private function get_colorCorrection() : ColorCorrection;
+	private function get_colorCorrectionSupport() : ColorCorrectionSupport;
+	private function get_constructor() : Dynamic;
+	private function get_contentsScaleFactor() : Float;
+	private function get_displayContextInfo() : String;
+	private function get_displayState() : StageDisplayState;
+	private function get_focus() : InteractiveObject;
+	private function get_frameRate() : Float;
+	private function get_fullScreenHeight() : UInt;
+	private function get_fullScreenSourceRect() : flash.geom.Rectangle;
+	private function get_fullScreenWidth() : UInt;
+	private function get_mouseLock() : Bool;
+	private function get_quality() : StageQuality;
+	private function get_scaleMode() : StageScaleMode;
+	private function get_showDefaultContextMenu() : Bool;
+	private function get_softKeyboardRect() : flash.geom.Rectangle;
+	private function get_stage3Ds() : flash.Vector<Stage3D>;
+	private function get_stageFocusRect() : Bool;
+	private function get_stageHeight() : Int;
+	private function get_stageVideos() : flash.Vector<flash.media.StageVideo>;
+	private function get_stageWidth() : Int;
+	private function get_wmodeGPU() : Bool;
 	function invalidate() : Void;
 	function isFocusInaccessible() : Bool;
+	private function set_align(value : StageAlign) : StageAlign;
+	private function set_color(value : UInt) : UInt;
+	private function set_colorCorrection(value : ColorCorrection) : ColorCorrection;
+	private function set_constructor(value : Dynamic) : Dynamic;
+	private function set_displayState(value : StageDisplayState) : StageDisplayState;
+	private function set_focus(value : InteractiveObject) : InteractiveObject;
+	private function set_frameRate(value : Float) : Float;
+	private function set_fullScreenSourceRect(value : flash.geom.Rectangle) : flash.geom.Rectangle;
+	private function set_mouseLock(value : Bool) : Bool;
+	private function set_quality(value : StageQuality) : StageQuality;
+	private function set_scaleMode(value : StageScaleMode) : StageScaleMode;
+	private function set_showDefaultContextMenu(value : Bool) : Bool;
+	private function set_stageFocusRect(value : Bool) : Bool;
+	private function set_stageHeight(value : Int) : Int;
+	private function set_stageWidth(value : Int) : Int;
 }

+ 11 - 4
std/flash/display/Stage3D.hx

@@ -1,10 +1,17 @@
 package flash.display;
 
 @:require(flash11) extern class Stage3D extends flash.events.EventDispatcher {
-	var context3D(default,never) : flash.display3D.Context3D;
-	var visible : Bool;
-	var x : Float;
-	var y : Float;
+	@:flash.property var context3D(get,never) : flash.display3D.Context3D;
+	@:flash.property var visible(get,set) : Bool;
+	@:flash.property var x(get,set) : Float;
+	@:flash.property var y(get,set) : Float;
+	private function get_context3D() : flash.display3D.Context3D;
+	private function get_visible() : Bool;
+	private function get_x() : Float;
+	private function get_y() : Float;
 	function requestContext3D(?context3DRenderMode : String, ?profile : flash.display3D.Context3DProfile) : Void;
 	@:require(flash12) function requestContext3DMatchingProfiles(profiles : flash.Vector<String>) : Void;
+	private function set_visible(value : Bool) : Bool;
+	private function set_x(value : Float) : Float;
+	private function set_y(value : Float) : Float;
 }

+ 21 - 9
std/flash/display3D/Context3D.hx

@@ -1,14 +1,14 @@
 package flash.display3D;
 
 extern final class Context3D extends flash.events.EventDispatcher {
-	var backBufferHeight(default,never) : Int;
-	var backBufferWidth(default,never) : Int;
-	var driverInfo(default,never) : String;
-	var enableErrorChecking : Bool;
-	var maxBackBufferHeight : Int;
-	var maxBackBufferWidth : Int;
-	@:require(flash12) var profile(default,never) : String;
-	var totalGPUMemory(default,never) : Float;
+	@:flash.property var backBufferHeight(get,never) : Int;
+	@:flash.property var backBufferWidth(get,never) : Int;
+	@:flash.property var driverInfo(get,never) : String;
+	@:flash.property var enableErrorChecking(get,set) : Bool;
+	@:flash.property var maxBackBufferHeight(get,set) : Int;
+	@:flash.property var maxBackBufferWidth(get,set) : Int;
+	@:flash.property @:require(flash12) var profile(get,never) : String;
+	@:flash.property var totalGPUMemory(get,never) : Float;
 	function clear(red : Float = 0, green : Float = 0, blue : Float = 0, alpha : Float = 1, depth : Float = 1, stencil : UInt = 0, mask : UInt = 0xFFFFFFFF) : Void;
 	function configureBackBuffer(width : Int, height : Int, antiAlias : Int, enableDepthAndStencil : Bool = true, wantsBestResolution : Bool = false, wantsBestResolutionOnBrowserZoom : Bool = false) : Void;
 	function createCubeTexture(size : Int, format : Context3DTextureFormat, optimizeForRenderToTexture : Bool, streamingLevels : Int = 0) : flash.display3D.textures.CubeTexture;
@@ -21,6 +21,14 @@ extern final class Context3D extends flash.events.EventDispatcher {
 	function dispose(recreate : Bool = true) : Void;
 	function drawToBitmapData(destination : flash.display.BitmapData) : Void;
 	function drawTriangles(indexBuffer : IndexBuffer3D, firstIndex : Int = 0, numTriangles : Int = -1) : Void;
+	private function get_backBufferHeight() : Int;
+	private function get_backBufferWidth() : Int;
+	private function get_driverInfo() : String;
+	private function get_enableErrorChecking() : Bool;
+	private function get_maxBackBufferHeight() : Int;
+	private function get_maxBackBufferWidth() : Int;
+	private function get_profile() : String;
+	private function get_totalGPUMemory() : Float;
 	function present() : Void;
 	function setBlendFactors(sourceFactor : Context3DBlendFactor, destinationFactor : Context3DBlendFactor) : Void;
 	function setColorMask(red : Bool, green : Bool, blue : Bool, alpha : Bool) : Void;
@@ -38,5 +46,9 @@ extern final class Context3D extends flash.events.EventDispatcher {
 	function setStencilReferenceValue(referenceValue : UInt, readMask : UInt = 255, writeMask : UInt = 255) : Void;
 	function setTextureAt(sampler : Int, texture : flash.display3D.textures.TextureBase) : Void;
 	function setVertexBufferAt(index : Int, buffer : VertexBuffer3D, bufferOffset : Int = 0, ?format : Context3DVertexBufferFormat) : Void;
-	static var supportsVideoTexture(default,never) : Bool;
+	private function set_enableErrorChecking(value : Bool) : Bool;
+	private function set_maxBackBufferHeight(value : Int) : Int;
+	private function set_maxBackBufferWidth(value : Int) : Int;
+	@:flash.property static var supportsVideoTexture(get,never) : Bool;
+	private static function get_supportsVideoTexture() : Bool;
 }

+ 4 - 2
std/flash/display3D/textures/VideoTexture.hx

@@ -1,9 +1,11 @@
 package flash.display3D.textures;
 
 extern final class VideoTexture extends TextureBase {
-	var videoHeight(default,never) : Int;
-	var videoWidth(default,never) : Int;
+	@:flash.property var videoHeight(get,never) : Int;
+	@:flash.property var videoWidth(get,never) : Int;
 	function new() : Void;
 	function attachCamera(theCamera : flash.media.Camera) : Void;
 	function attachNetStream(netStream : flash.net.NetStream) : Void;
+	private function get_videoHeight() : Int;
+	private function get_videoWidth() : Int;
 }

+ 2 - 1
std/flash/errors/DRMManagerError.hx

@@ -1,7 +1,8 @@
 package flash.errors;
 
 @:require(flash10_1) extern class DRMManagerError extends Error {
-	var subErrorID(default,never) : Int;
+	@:flash.property var subErrorID(get,never) : Int;
 	function new(message : String, id : Int, subErrorID : Int) : Void;
+	private function get_subErrorID() : Int;
 	function toString() : String;
 }

+ 2 - 1
std/flash/errors/Error.hx

@@ -1,11 +1,12 @@
 package flash.errors;
 
 extern class Error #if !flash_strict implements Dynamic #end {
-	var errorID(default,never) : Int;
+	@:flash.property var errorID(get,never) : Int;
 	var message : Dynamic;
 	var name : Dynamic;
 	function new(?message : Dynamic, id : Dynamic = 0) : Void;
 	function getStackTrace() : String;
+	private function get_errorID() : Int;
 	static final length : Int;
 	static function getErrorMessage(index : Int) : String;
 	static function throwError(type : Class<Dynamic>, index : UInt, restArgs : haxe.extern.Rest<Dynamic>) : Dynamic;

+ 4 - 2
std/flash/events/AVDictionaryDataEvent.hx

@@ -1,8 +1,10 @@
 package flash.events;
 
 extern class AVDictionaryDataEvent extends Event {
-	var dictionary(default,never) : flash.utils.Dictionary;
-	var time(default,never) : Float;
+	@:flash.property var dictionary(get,never) : flash.utils.Dictionary;
+	@:flash.property var time(get,never) : Float;
 	function new(?type : String, bubbles : Bool = false, cancelable : Bool = false, ?init_dictionary : flash.utils.Dictionary, init_dataTime : Float = 0) : Void;
+	private function get_dictionary() : flash.utils.Dictionary;
+	private function get_time() : Float;
 	static final AV_DICTIONARY_DATA : String;
 }

+ 8 - 3
std/flash/events/AVHTTPStatusEvent.hx

@@ -1,9 +1,14 @@
 package flash.events;
 
 extern class AVHTTPStatusEvent extends Event {
-	var responseHeaders : Array<Dynamic>;
-	var responseURL : String;
-	var status(default,never) : Int;
+	@:flash.property var responseHeaders(get,set) : Array<Dynamic>;
+	@:flash.property var responseURL(get,set) : String;
+	@:flash.property var status(get,never) : Int;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, status : Int = 0, ?responseUrl : String, ?responseHeaders : Array<Dynamic>) : Void;
+	private function get_responseHeaders() : Array<Dynamic>;
+	private function get_responseURL() : String;
+	private function get_status() : Int;
+	private function set_responseHeaders(value : Array<Dynamic>) : Array<Dynamic>;
+	private function set_responseURL(value : String) : String;
 	static final AV_HTTP_RESPONSE_STATUS : String;
 }

+ 2 - 1
std/flash/events/AVLoadInfoEvent.hx

@@ -1,7 +1,8 @@
 package flash.events;
 
 extern class AVLoadInfoEvent extends Event {
-	var loadInfo(default,never) : flash.utils.Dictionary;
+	@:flash.property var loadInfo(get,never) : flash.utils.Dictionary;
 	function new(?type : String, bubbles : Bool = false, cancelable : Bool = false, ?inLoadInfo : flash.utils.Dictionary) : Void;
+	private function get_loadInfo() : flash.utils.Dictionary;
 	static final AV_LOAD_INFO : Dynamic;
 }

+ 8 - 4
std/flash/events/AVManifestLoadEvent.hx

@@ -1,10 +1,14 @@
 package flash.events;
 
 extern class AVManifestLoadEvent extends Event {
-	var duration(default,never) : Float;
-	var handle(default,never) : Int;
-	var result(default,never) : flash.media.AVResult;
-	var userData(default,never) : Int;
+	@:flash.property var duration(get,never) : Float;
+	@:flash.property var handle(get,never) : Int;
+	@:flash.property var result(get,never) : flash.media.AVResult;
+	@:flash.property var userData(get,never) : Int;
 	function new(?type : String, bubbles : Bool = false, cancelable : Bool = false, inResult : Int = 0, inUserData : Int = 0, inHandle : Int = 0, inDuration : Float = 0) : Void;
+	private function get_duration() : Float;
+	private function get_handle() : Int;
+	private function get_result() : flash.media.AVResult;
+	private function get_userData() : Int;
 	static final AV_MANIFEST_LOAD : String;
 }

+ 2 - 1
std/flash/events/AVPauseAtPeriodEndEvent.hx

@@ -1,7 +1,8 @@
 package flash.events;
 
 extern class AVPauseAtPeriodEndEvent extends Event {
-	var userData(default,never) : Int;
+	@:flash.property var userData(get,never) : Int;
 	function new(?type : String, bubbles : Bool = false, cancelable : Bool = false, userData : Int = 0) : Void;
+	private function get_userData() : Int;
 	static final AV_PAUSE_AT_PERIOD_END : String;
 }

+ 2 - 1
std/flash/events/AVPlayStateEvent.hx

@@ -1,7 +1,8 @@
 package flash.events;
 
 extern class AVPlayStateEvent extends Event {
-	var playState(default,never) : flash.media.AVPlayState;
+	@:flash.property var playState(get,never) : flash.media.AVPlayState;
 	function new(?type : String, bubbles : Bool = false, cancelable : Bool = false, inState : Int = 0) : Void;
+	private function get_playState() : flash.media.AVPlayState;
 	static final AV_PLAY_STATE : String;
 }

+ 6 - 3
std/flash/events/AVStatusEvent.hx

@@ -1,10 +1,13 @@
 package flash.events;
 
 extern class AVStatusEvent extends Event {
-	var description(default,never) : String;
-	var notificationType(default,never) : String;
-	var result(default,never) : flash.media.AVResult;
+	@:flash.property var description(get,never) : String;
+	@:flash.property var notificationType(get,never) : String;
+	@:flash.property var result(get,never) : flash.media.AVResult;
 	function new(?type : String, bubbles : Bool = false, cancelable : Bool = false, ?inNotificationType : String, inResult : Int = 0, ?inDescription : String) : Void;
+	private function get_description() : String;
+	private function get_notificationType() : String;
+	private function get_result() : flash.media.AVResult;
 	static final AV_STATUS : String;
 	static final BACKGROUND_MANIFEST_ERROR : String;
 	static final BACKGROUND_MANIFEST_WARNING : String;

+ 10 - 5
std/flash/events/AVStreamSwitchEvent.hx

@@ -1,12 +1,17 @@
 package flash.events;
 
 extern class AVStreamSwitchEvent extends Event {
-	var bitrate(default,never) : Int;
-	var description(default,never) : String;
-	var switchType(default,never) : Int;
-	var time(default,never) : Float;
-	var userData(default,never) : Int;
+	@:flash.property var bitrate(get,never) : Int;
+	@:flash.property var description(get,never) : String;
+	@:flash.property var switchType(get,never) : Int;
+	@:flash.property var time(get,never) : Float;
+	@:flash.property var userData(get,never) : Int;
 	function new(?type : String, bubbles : Bool = false, cancelable : Bool = false, time : Float = 0, switchType : Int = 0, bitrate : Int = 0, ?description : String, userData : Int = 0) : Void;
+	private function get_bitrate() : Int;
+	private function get_description() : String;
+	private function get_switchType() : Int;
+	private function get_time() : Float;
+	private function get_userData() : Int;
 	static final ABR_SWITCH : Int;
 	static final AV_STREAM_SWITCH : String;
 	static final PERIOD_SWITCH : Int;

+ 12 - 4
std/flash/events/AccelerometerEvent.hx

@@ -1,10 +1,18 @@
 package flash.events;
 
 @:require(flash10_1) extern class AccelerometerEvent extends Event {
-	var accelerationX : Float;
-	var accelerationY : Float;
-	var accelerationZ : Float;
-	var timestamp : Float;
+	@:flash.property var accelerationX(get,set) : Float;
+	@:flash.property var accelerationY(get,set) : Float;
+	@:flash.property var accelerationZ(get,set) : Float;
+	@:flash.property var timestamp(get,set) : Float;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, timestamp : Float = 0, accelerationX : Float = 0, accelerationY : Float = 0, accelerationZ : Float = 0) : Void;
+	private function get_accelerationX() : Float;
+	private function get_accelerationY() : Float;
+	private function get_accelerationZ() : Float;
+	private function get_timestamp() : Float;
+	private function set_accelerationX(value : Float) : Float;
+	private function set_accelerationY(value : Float) : Float;
+	private function set_accelerationZ(value : Float) : Float;
+	private function set_timestamp(value : Float) : Float;
 	static final UPDATE : String;
 }

+ 3 - 1
std/flash/events/ActivityEvent.hx

@@ -1,7 +1,9 @@
 package flash.events;
 
 extern class ActivityEvent extends Event {
-	var activating : Bool;
+	@:flash.property var activating(get,set) : Bool;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, activating : Bool = false) : Void;
+	private function get_activating() : Bool;
+	private function set_activating(value : Bool) : Bool;
 	static final ACTIVITY : String;
 }

+ 2 - 1
std/flash/events/AudioOutputChangeEvent.hx

@@ -1,7 +1,8 @@
 package flash.events;
 
 extern class AudioOutputChangeEvent extends Event {
-	var reason(default,never) : String;
+	@:flash.property var reason(get,never) : String;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?reason : String) : Void;
+	private function get_reason() : String;
 	static final AUDIO_OUTPUT_CHANGE : String;
 }

+ 9 - 3
std/flash/events/ContextMenuEvent.hx

@@ -1,10 +1,16 @@
 package flash.events;
 
 extern class ContextMenuEvent extends Event {
-	var contextMenuOwner : flash.display.InteractiveObject;
-	@:require(flash10) var isMouseTargetInaccessible : Bool;
-	var mouseTarget : flash.display.InteractiveObject;
+	@:flash.property var contextMenuOwner(get,set) : flash.display.InteractiveObject;
+	@:flash.property @:require(flash10) var isMouseTargetInaccessible(get,set) : Bool;
+	@:flash.property var mouseTarget(get,set) : flash.display.InteractiveObject;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?mouseTarget : flash.display.InteractiveObject, ?contextMenuOwner : flash.display.InteractiveObject) : Void;
+	private function get_contextMenuOwner() : flash.display.InteractiveObject;
+	private function get_isMouseTargetInaccessible() : Bool;
+	private function get_mouseTarget() : flash.display.InteractiveObject;
+	private function set_contextMenuOwner(value : flash.display.InteractiveObject) : flash.display.InteractiveObject;
+	private function set_isMouseTargetInaccessible(value : Bool) : Bool;
+	private function set_mouseTarget(value : flash.display.InteractiveObject) : flash.display.InteractiveObject;
 	static final MENU_ITEM_SELECT : String;
 	static final MENU_SELECT : String;
 }

+ 12 - 6
std/flash/events/DRMAuthenticateEvent.hx

@@ -1,13 +1,19 @@
 package flash.events;
 
 @:require(flash10_1) extern class DRMAuthenticateEvent extends Event {
-	var authenticationType(default,never) : String;
-	var header(default,never) : String;
-	var netstream(default,never) : flash.net.NetStream;
-	var passwordPrompt(default,never) : String;
-	var urlPrompt(default,never) : String;
-	var usernamePrompt(default,never) : String;
+	@:flash.property var authenticationType(get,never) : String;
+	@:flash.property var header(get,never) : String;
+	@:flash.property var netstream(get,never) : flash.net.NetStream;
+	@:flash.property var passwordPrompt(get,never) : String;
+	@:flash.property var urlPrompt(get,never) : String;
+	@:flash.property var usernamePrompt(get,never) : String;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?header : String, ?userPrompt : String, ?passPrompt : String, ?urlPrompt : String, ?authenticationType : String, ?netstream : flash.net.NetStream) : Void;
+	private function get_authenticationType() : String;
+	private function get_header() : String;
+	private function get_netstream() : flash.net.NetStream;
+	private function get_passwordPrompt() : String;
+	private function get_urlPrompt() : String;
+	private function get_usernamePrompt() : String;
 	static final AUTHENTICATION_TYPE_DRM : String;
 	static final AUTHENTICATION_TYPE_PROXY : String;
 	static final DRM_AUTHENTICATE : String;

+ 9 - 3
std/flash/events/DRMAuthenticationCompleteEvent.hx

@@ -1,9 +1,15 @@
 package flash.events;
 
 @:require(flash10_1) extern class DRMAuthenticationCompleteEvent extends Event {
-	var domain : String;
-	var serverURL : String;
-	var token : flash.utils.ByteArray;
+	@:flash.property var domain(get,set) : String;
+	@:flash.property var serverURL(get,set) : String;
+	@:flash.property var token(get,set) : flash.utils.ByteArray;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?inServerURL : String, ?inDomain : String, ?inToken : flash.utils.ByteArray) : Void;
+	private function get_domain() : String;
+	private function get_serverURL() : String;
+	private function get_token() : flash.utils.ByteArray;
+	private function set_domain(value : String) : String;
+	private function set_serverURL(value : String) : String;
+	private function set_token(value : flash.utils.ByteArray) : flash.utils.ByteArray;
 	static final AUTHENTICATION_COMPLETE : String;
 }

+ 9 - 3
std/flash/events/DRMAuthenticationErrorEvent.hx

@@ -1,9 +1,15 @@
 package flash.events;
 
 @:require(flash10_1) extern class DRMAuthenticationErrorEvent extends ErrorEvent {
-	var domain : String;
-	var serverURL : String;
-	var subErrorID : Int;
+	@:flash.property var domain(get,set) : String;
+	@:flash.property var serverURL(get,set) : String;
+	@:flash.property var subErrorID(get,set) : Int;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?inDetail : String, inErrorID : Int = 0, inSubErrorID : Int = 0, ?inServerURL : String, ?inDomain : String) : Void;
+	private function get_domain() : String;
+	private function get_serverURL() : String;
+	private function get_subErrorID() : Int;
+	private function set_domain(value : String) : String;
+	private function set_serverURL(value : String) : String;
+	private function set_subErrorID(value : Int) : Int;
 	static final AUTHENTICATION_ERROR : String;
 }

+ 10 - 4
std/flash/events/DRMDeviceGroupErrorEvent.hx

@@ -1,11 +1,17 @@
 package flash.events;
 
 extern class DRMDeviceGroupErrorEvent extends ErrorEvent {
-	var deviceGroup : flash.net.drm.DRMDeviceGroup;
-	var drmUpdateNeeded(default,never) : Bool;
-	var subErrorID : Int;
-	var systemUpdateNeeded(default,never) : Bool;
+	@:flash.property var deviceGroup(get,set) : flash.net.drm.DRMDeviceGroup;
+	@:flash.property var drmUpdateNeeded(get,never) : Bool;
+	@:flash.property var subErrorID(get,set) : Int;
+	@:flash.property var systemUpdateNeeded(get,never) : Bool;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?errorDetail : String, errorCode : Int = 0, subErrorID : Int = 0, ?deviceGroup : flash.net.drm.DRMDeviceGroup, systemUpdateNeeded : Bool = false, drmUpdateNeeded : Bool = false) : Void;
+	private function get_deviceGroup() : flash.net.drm.DRMDeviceGroup;
+	private function get_drmUpdateNeeded() : Bool;
+	private function get_subErrorID() : Int;
+	private function get_systemUpdateNeeded() : Bool;
+	private function set_deviceGroup(value : flash.net.drm.DRMDeviceGroup) : flash.net.drm.DRMDeviceGroup;
+	private function set_subErrorID(value : Int) : Int;
 	static final ADD_TO_DEVICE_GROUP_ERROR : String;
 	static final REMOVE_FROM_DEVICE_GROUP_ERROR : String;
 }

+ 3 - 1
std/flash/events/DRMDeviceGroupEvent.hx

@@ -1,8 +1,10 @@
 package flash.events;
 
 extern class DRMDeviceGroupEvent extends Event {
-	var deviceGroup : flash.net.drm.DRMDeviceGroup;
+	@:flash.property var deviceGroup(get,set) : flash.net.drm.DRMDeviceGroup;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?deviceGroup : flash.net.drm.DRMDeviceGroup) : Void;
+	private function get_deviceGroup() : flash.net.drm.DRMDeviceGroup;
+	private function set_deviceGroup(value : flash.net.drm.DRMDeviceGroup) : flash.net.drm.DRMDeviceGroup;
 	static final ADD_TO_DEVICE_GROUP_COMPLETE : String;
 	static final REMOVE_FROM_DEVICE_GROUP_COMPLETE : String;
 }

+ 9 - 4
std/flash/events/DRMErrorEvent.hx

@@ -1,11 +1,16 @@
 package flash.events;
 
 @:require(flash10_1) extern class DRMErrorEvent extends ErrorEvent {
-	var contentData : flash.net.drm.DRMContentData;
-	var drmUpdateNeeded(default,never) : Bool;
-	var subErrorID(default,never) : Int;
-	var systemUpdateNeeded(default,never) : Bool;
+	@:flash.property var contentData(get,set) : flash.net.drm.DRMContentData;
+	@:flash.property var drmUpdateNeeded(get,never) : Bool;
+	@:flash.property var subErrorID(get,never) : Int;
+	@:flash.property var systemUpdateNeeded(get,never) : Bool;
 	function new(?type : String, bubbles : Bool = false, cancelable : Bool = false, ?inErrorDetail : String, inErrorCode : Int = 0, insubErrorID : Int = 0, ?inMetadata : flash.net.drm.DRMContentData, inSystemUpdateNeeded : Bool = false, inDrmUpdateNeeded : Bool = false) : Void;
+	private function get_contentData() : flash.net.drm.DRMContentData;
+	private function get_drmUpdateNeeded() : Bool;
+	private function get_subErrorID() : Int;
+	private function get_systemUpdateNeeded() : Bool;
+	private function set_contentData(value : flash.net.drm.DRMContentData) : flash.net.drm.DRMContentData;
 	static final DRM_ERROR : String;
 	static final DRM_LOAD_DEVICEID_ERROR : String;
 }

+ 3 - 1
std/flash/events/DRMLicenseRequestEvent.hx

@@ -1,7 +1,9 @@
 package flash.events;
 
 extern class DRMLicenseRequestEvent extends Event {
-	var serverURL : String;
+	@:flash.property var serverURL(get,set) : String;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?inServerURL : String) : Void;
+	private function get_serverURL() : String;
+	private function set_serverURL(value : String) : String;
 	static final LICENSE_REQUEST : String;
 }

+ 4 - 2
std/flash/events/DRMMetadataEvent.hx

@@ -1,8 +1,10 @@
 package flash.events;
 
 extern class DRMMetadataEvent extends Event {
-	var drmMetadata(default,never) : flash.net.drm.DRMContentData;
-	var timestamp(default,never) : Float;
+	@:flash.property var drmMetadata(get,never) : flash.net.drm.DRMContentData;
+	@:flash.property var timestamp(get,never) : Float;
 	function new(?type : String, bubbles : Bool = false, cancelable : Bool = false, ?inMetadata : flash.utils.ByteArray, inTimestamp : Float = 0) : Void;
+	private function get_drmMetadata() : flash.net.drm.DRMContentData;
+	private function get_timestamp() : Float;
 	static final DRM_METADATA : String;
 }

+ 12 - 4
std/flash/events/DRMReturnVoucherCompleteEvent.hx

@@ -1,10 +1,18 @@
 package flash.events;
 
 extern class DRMReturnVoucherCompleteEvent extends Event {
-	var licenseID : String;
-	var numberOfVouchersReturned : Int;
-	var policyID : String;
-	var serverURL : String;
+	@:flash.property var licenseID(get,set) : String;
+	@:flash.property var numberOfVouchersReturned(get,set) : Int;
+	@:flash.property var policyID(get,set) : String;
+	@:flash.property var serverURL(get,set) : String;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?inServerURL : String, ?inLicenseID : String, ?inPolicyID : String, inNumberOfVouchersReturned : Int = 0) : Void;
+	private function get_licenseID() : String;
+	private function get_numberOfVouchersReturned() : Int;
+	private function get_policyID() : String;
+	private function get_serverURL() : String;
+	private function set_licenseID(value : String) : String;
+	private function set_numberOfVouchersReturned(value : Int) : Int;
+	private function set_policyID(value : String) : String;
+	private function set_serverURL(value : String) : String;
 	static final RETURN_VOUCHER_COMPLETE : String;
 }

+ 12 - 4
std/flash/events/DRMReturnVoucherErrorEvent.hx

@@ -1,10 +1,18 @@
 package flash.events;
 
 extern class DRMReturnVoucherErrorEvent extends ErrorEvent {
-	var licenseID : String;
-	var policyID : String;
-	var serverURL : String;
-	var subErrorID : Int;
+	@:flash.property var licenseID(get,set) : String;
+	@:flash.property var policyID(get,set) : String;
+	@:flash.property var serverURL(get,set) : String;
+	@:flash.property var subErrorID(get,set) : Int;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?inDetail : String, inErrorID : Int = 0, inSubErrorID : Int = 0, ?inServerURL : String, ?inLicenseID : String, ?inPolicyID : String) : Void;
+	private function get_licenseID() : String;
+	private function get_policyID() : String;
+	private function get_serverURL() : String;
+	private function get_subErrorID() : Int;
+	private function set_licenseID(value : String) : String;
+	private function set_policyID(value : String) : String;
+	private function set_serverURL(value : String) : String;
+	private function set_subErrorID(value : Int) : Int;
 	static final RETURN_VOUCHER_ERROR : String;
 }

+ 9 - 3
std/flash/events/DRMStatusEvent.hx

@@ -1,9 +1,15 @@
 package flash.events;
 
 @:require(flash10_1) extern class DRMStatusEvent extends Event {
-	var contentData : flash.net.drm.DRMContentData;
-	var isLocal : Bool;
-	var voucher : flash.net.drm.DRMVoucher;
+	@:flash.property var contentData(get,set) : flash.net.drm.DRMContentData;
+	@:flash.property var isLocal(get,set) : Bool;
+	@:flash.property var voucher(get,set) : flash.net.drm.DRMVoucher;
 	function new(?type : String, bubbles : Bool = false, cancelable : Bool = false, ?inMetadata : flash.net.drm.DRMContentData, ?inVoucher : flash.net.drm.DRMVoucher, inLocal : Bool = false) : Void;
+	private function get_contentData() : flash.net.drm.DRMContentData;
+	private function get_isLocal() : Bool;
+	private function get_voucher() : flash.net.drm.DRMVoucher;
+	private function set_contentData(value : flash.net.drm.DRMContentData) : flash.net.drm.DRMContentData;
+	private function set_isLocal(value : Bool) : Bool;
+	private function set_voucher(value : flash.net.drm.DRMVoucher) : flash.net.drm.DRMVoucher;
 	static final DRM_STATUS : String;
 }

+ 3 - 1
std/flash/events/DataEvent.hx

@@ -1,8 +1,10 @@
 package flash.events;
 
 extern class DataEvent extends TextEvent {
-	var data : String;
+	@:flash.property var data(get,set) : String;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?data : String) : Void;
+	private function get_data() : String;
+	private function set_data(value : String) : String;
 	static final DATA : String;
 	static final UPLOAD_COMPLETE_DATA : String;
 }

+ 2 - 1
std/flash/events/ErrorEvent.hx

@@ -1,7 +1,8 @@
 package flash.events;
 
 extern class ErrorEvent extends TextEvent {
-	@:require(flash10_1) var errorID(default,never) : Int;
+	@:flash.property @:require(flash10_1) var errorID(get,never) : Int;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?text : String, id : Int = 0) : Void;
+	private function get_errorID() : Int;
 	static final ERROR : String;
 }

+ 12 - 6
std/flash/events/Event.hx

@@ -1,15 +1,21 @@
 package flash.events;
 
 extern class Event {
-	var bubbles(default,never) : Bool;
-	var cancelable(default,never) : Bool;
-	var currentTarget(default,never) : Dynamic;
-	var eventPhase(default,never) : EventPhase;
-	var target(default,never) : Dynamic;
-	var type(default,never) : String;
+	@:flash.property var bubbles(get,never) : Bool;
+	@:flash.property var cancelable(get,never) : Bool;
+	@:flash.property var currentTarget(get,never) : Dynamic;
+	@:flash.property var eventPhase(get,never) : EventPhase;
+	@:flash.property var target(get,never) : Dynamic;
+	@:flash.property var type(get,never) : String;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false) : Void;
 	function clone() : Event;
 	function formatToString(className : String, restArgs : haxe.extern.Rest<Dynamic>) : String;
+	private function get_bubbles() : Bool;
+	private function get_cancelable() : Bool;
+	private function get_currentTarget() : Dynamic;
+	private function get_eventPhase() : EventPhase;
+	private function get_target() : Dynamic;
+	private function get_type() : String;
 	function isDefaultPrevented() : Bool;
 	function preventDefault() : Void;
 	function stopImmediatePropagation() : Void;

+ 12 - 4
std/flash/events/FocusEvent.hx

@@ -1,11 +1,19 @@
 package flash.events;
 
 extern class FocusEvent extends Event {
-	@:require(flash10) var isRelatedObjectInaccessible : Bool;
-	var keyCode : UInt;
-	var relatedObject : flash.display.InteractiveObject;
-	var shiftKey : Bool;
+	@:flash.property @:require(flash10) var isRelatedObjectInaccessible(get,set) : Bool;
+	@:flash.property var keyCode(get,set) : UInt;
+	@:flash.property var relatedObject(get,set) : flash.display.InteractiveObject;
+	@:flash.property var shiftKey(get,set) : Bool;
 	function new(type : String, bubbles : Bool = true, cancelable : Bool = false, ?relatedObject : flash.display.InteractiveObject, shiftKey : Bool = false, keyCode : UInt = 0) : Void;
+	private function get_isRelatedObjectInaccessible() : Bool;
+	private function get_keyCode() : UInt;
+	private function get_relatedObject() : flash.display.InteractiveObject;
+	private function get_shiftKey() : Bool;
+	private function set_isRelatedObjectInaccessible(value : Bool) : Bool;
+	private function set_keyCode(value : UInt) : UInt;
+	private function set_relatedObject(value : flash.display.InteractiveObject) : flash.display.InteractiveObject;
+	private function set_shiftKey(value : Bool) : Bool;
 	static final FOCUS_IN : String;
 	static final FOCUS_OUT : String;
 	static final KEY_FOCUS_CHANGE : String;

+ 4 - 2
std/flash/events/FullScreenEvent.hx

@@ -1,9 +1,11 @@
 package flash.events;
 
 extern class FullScreenEvent extends ActivityEvent {
-	var fullScreen(default,never) : Bool;
-	@:require(flash11_3) var interactive(default,never) : Bool;
+	@:flash.property var fullScreen(get,never) : Bool;
+	@:flash.property @:require(flash11_3) var interactive(get,never) : Bool;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, fullScreen : Bool = false, interactive : Bool = false) : Void;
+	private function get_fullScreen() : Bool;
+	private function get_interactive() : Bool;
 	static final FULL_SCREEN : String;
 	@:require(flash11_3) static final FULL_SCREEN_INTERACTIVE_ACCEPTED : String;
 }

+ 2 - 1
std/flash/events/GameInputEvent.hx

@@ -1,8 +1,9 @@
 package flash.events;
 
 @:require(flash11_8) extern final class GameInputEvent extends Event {
-	var device(default,never) : flash.ui.GameInputDevice;
+	@:flash.property var device(get,never) : flash.ui.GameInputDevice;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?device : flash.ui.GameInputDevice) : Void;
+	private function get_device() : flash.ui.GameInputDevice;
 	static final DEVICE_ADDED : String;
 	static final DEVICE_REMOVED : String;
 	static final DEVICE_UNUSABLE : String;

+ 24 - 8
std/flash/events/GeolocationEvent.hx

@@ -1,14 +1,30 @@
 package flash.events;
 
 @:require(flash10_1) extern class GeolocationEvent extends Event {
-	var altitude : Float;
-	var heading : Float;
-	var horizontalAccuracy : Float;
-	var latitude : Float;
-	var longitude : Float;
-	var speed : Float;
-	var timestamp : Float;
-	var verticalAccuracy : Float;
+	@:flash.property var altitude(get,set) : Float;
+	@:flash.property var heading(get,set) : Float;
+	@:flash.property var horizontalAccuracy(get,set) : Float;
+	@:flash.property var latitude(get,set) : Float;
+	@:flash.property var longitude(get,set) : Float;
+	@:flash.property var speed(get,set) : Float;
+	@:flash.property var timestamp(get,set) : Float;
+	@:flash.property var verticalAccuracy(get,set) : Float;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, latitude : Float = 0, longitude : Float = 0, altitude : Float = 0, hAccuracy : Float = 0, vAccuracy : Float = 0, speed : Float = 0, heading : Float = 0, timestamp : Float = 0) : Void;
+	private function get_altitude() : Float;
+	private function get_heading() : Float;
+	private function get_horizontalAccuracy() : Float;
+	private function get_latitude() : Float;
+	private function get_longitude() : Float;
+	private function get_speed() : Float;
+	private function get_timestamp() : Float;
+	private function get_verticalAccuracy() : Float;
+	private function set_altitude(value : Float) : Float;
+	private function set_heading(value : Float) : Float;
+	private function set_horizontalAccuracy(value : Float) : Float;
+	private function set_latitude(value : Float) : Float;
+	private function set_longitude(value : Float) : Float;
+	private function set_speed(value : Float) : Float;
+	private function set_timestamp(value : Float) : Float;
+	private function set_verticalAccuracy(value : Float) : Float;
 	static final UPDATE : String;
 }

+ 22 - 8
std/flash/events/GestureEvent.hx

@@ -1,15 +1,29 @@
 package flash.events;
 
 @:require(flash10_1) extern class GestureEvent extends Event {
-	var altKey : Bool;
-	var ctrlKey : Bool;
-	var localX : Float;
-	var localY : Float;
-	var phase : String;
-	var shiftKey : Bool;
-	var stageX(default,never) : Float;
-	var stageY(default,never) : Float;
+	@:flash.property var altKey(get,set) : Bool;
+	@:flash.property var ctrlKey(get,set) : Bool;
+	@:flash.property var localX(get,set) : Float;
+	@:flash.property var localY(get,set) : Float;
+	@:flash.property var phase(get,set) : String;
+	@:flash.property var shiftKey(get,set) : Bool;
+	@:flash.property var stageX(get,never) : Float;
+	@:flash.property var stageY(get,never) : Float;
 	function new(type : String, bubbles : Bool = true, cancelable : Bool = false, ?phase : String, localX : Float = 0, localY : Float = 0, ctrlKey : Bool = false, altKey : Bool = false, shiftKey : Bool = false) : Void;
+	private function get_altKey() : Bool;
+	private function get_ctrlKey() : Bool;
+	private function get_localX() : Float;
+	private function get_localY() : Float;
+	private function get_phase() : String;
+	private function get_shiftKey() : Bool;
+	private function get_stageX() : Float;
+	private function get_stageY() : Float;
+	private function set_altKey(value : Bool) : Bool;
+	private function set_ctrlKey(value : Bool) : Bool;
+	private function set_localX(value : Float) : Float;
+	private function set_localY(value : Float) : Float;
+	private function set_phase(value : String) : String;
+	private function set_shiftKey(value : Bool) : Bool;
 	function updateAfterEvent() : Void;
 	static final GESTURE_TWO_FINGER_TAP : String;
 }

+ 11 - 4
std/flash/events/HTTPStatusEvent.hx

@@ -1,11 +1,18 @@
 package flash.events;
 
 extern class HTTPStatusEvent extends Event {
-	var redirected : Bool;
-	@:require(flash10_1) var responseHeaders : Array<Dynamic>;
-	@:require(flash10_1) var responseURL : String;
-	var status(default,never) : Int;
+	@:flash.property var redirected(get,set) : Bool;
+	@:flash.property @:require(flash10_1) var responseHeaders(get,set) : Array<Dynamic>;
+	@:flash.property @:require(flash10_1) var responseURL(get,set) : String;
+	@:flash.property var status(get,never) : Int;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, status : Int = 0, redirected : Bool = false) : Void;
+	private function get_redirected() : Bool;
+	private function get_responseHeaders() : Array<Dynamic>;
+	private function get_responseURL() : String;
+	private function get_status() : Int;
+	private function set_redirected(value : Bool) : Bool;
+	private function set_responseHeaders(value : Array<Dynamic>) : Array<Dynamic>;
+	private function set_responseURL(value : String) : String;
 	@:require(flash10_1) static final HTTP_RESPONSE_STATUS : String;
 	static final HTTP_STATUS : String;
 }

+ 3 - 1
std/flash/events/IMEEvent.hx

@@ -1,8 +1,10 @@
 package flash.events;
 
 extern class IMEEvent extends TextEvent {
-	@:require(flash10_1) var imeClient : flash.text.ime.IIMEClient;
+	@:flash.property @:require(flash10_1) var imeClient(get,set) : flash.text.ime.IIMEClient;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?text : String, ?imeClient : flash.text.ime.IIMEClient) : Void;
+	private function get_imeClient() : flash.text.ime.IIMEClient;
+	private function set_imeClient(value : flash.text.ime.IIMEClient) : flash.text.ime.IIMEClient;
 	static final IME_COMPOSITION : String;
 	@:require(flash10_1) static final IME_START_COMPOSITION : String;
 }

+ 18 - 6
std/flash/events/KeyboardEvent.hx

@@ -1,13 +1,25 @@
 package flash.events;
 
 extern class KeyboardEvent extends Event {
-	var altKey : Bool;
-	var charCode : UInt;
-	var ctrlKey : Bool;
-	var keyCode : UInt;
-	var keyLocation : flash.ui.KeyLocation;
-	var shiftKey : Bool;
+	@:flash.property var altKey(get,set) : Bool;
+	@:flash.property var charCode(get,set) : UInt;
+	@:flash.property var ctrlKey(get,set) : Bool;
+	@:flash.property var keyCode(get,set) : UInt;
+	@:flash.property var keyLocation(get,set) : flash.ui.KeyLocation;
+	@:flash.property var shiftKey(get,set) : Bool;
 	function new(type : String, bubbles : Bool = true, cancelable : Bool = false, charCodeValue : UInt = 0, keyCodeValue : UInt = 0, keyLocationValue : flash.ui.KeyLocation = 0, ctrlKeyValue : Bool = false, altKeyValue : Bool = false, shiftKeyValue : Bool = false) : Void;
+	private function get_altKey() : Bool;
+	private function get_charCode() : UInt;
+	private function get_ctrlKey() : Bool;
+	private function get_keyCode() : UInt;
+	private function get_keyLocation() : flash.ui.KeyLocation;
+	private function get_shiftKey() : Bool;
+	private function set_altKey(value : Bool) : Bool;
+	private function set_charCode(value : UInt) : UInt;
+	private function set_ctrlKey(value : Bool) : Bool;
+	private function set_keyCode(value : UInt) : UInt;
+	private function set_keyLocation(value : flash.ui.KeyLocation) : flash.ui.KeyLocation;
+	private function set_shiftKey(value : Bool) : Bool;
 	function updateAfterEvent() : Void;
 	static final KEY_DOWN : String;
 	static final KEY_UP : String;

+ 37 - 13
std/flash/events/MouseEvent.hx

@@ -1,20 +1,44 @@
 package flash.events;
 
 extern class MouseEvent extends Event {
-	var altKey : Bool;
-	var buttonDown : Bool;
-	var ctrlKey : Bool;
-	var delta : Int;
-	@:require(flash10) var isRelatedObjectInaccessible : Bool;
-	var localX : Float;
-	var localY : Float;
-	@:require(flash11_2) var movementX : Float;
-	@:require(flash11_2) var movementY : Float;
-	var relatedObject : flash.display.InteractiveObject;
-	var shiftKey : Bool;
-	var stageX(default,never) : Float;
-	var stageY(default,never) : Float;
+	@:flash.property var altKey(get,set) : Bool;
+	@:flash.property var buttonDown(get,set) : Bool;
+	@:flash.property var ctrlKey(get,set) : Bool;
+	@:flash.property var delta(get,set) : Int;
+	@:flash.property @:require(flash10) var isRelatedObjectInaccessible(get,set) : Bool;
+	@:flash.property var localX(get,set) : Float;
+	@:flash.property var localY(get,set) : Float;
+	@:flash.property @:require(flash11_2) var movementX(get,set) : Float;
+	@:flash.property @:require(flash11_2) var movementY(get,set) : Float;
+	@:flash.property var relatedObject(get,set) : flash.display.InteractiveObject;
+	@:flash.property var shiftKey(get,set) : Bool;
+	@:flash.property var stageX(get,never) : Float;
+	@:flash.property var stageY(get,never) : Float;
 	function new(type : String, bubbles : Bool = true, cancelable : Bool = false, localX : Null<Float> = 0, localY : Null<Float> = 0, ?relatedObject : flash.display.InteractiveObject, ctrlKey : Bool = false, altKey : Bool = false, shiftKey : Bool = false, buttonDown : Bool = false, delta : Int = 0) : Void;
+	private function get_altKey() : Bool;
+	private function get_buttonDown() : Bool;
+	private function get_ctrlKey() : Bool;
+	private function get_delta() : Int;
+	private function get_isRelatedObjectInaccessible() : Bool;
+	private function get_localX() : Float;
+	private function get_localY() : Float;
+	private function get_movementX() : Float;
+	private function get_movementY() : Float;
+	private function get_relatedObject() : flash.display.InteractiveObject;
+	private function get_shiftKey() : Bool;
+	private function get_stageX() : Float;
+	private function get_stageY() : Float;
+	private function set_altKey(value : Bool) : Bool;
+	private function set_buttonDown(value : Bool) : Bool;
+	private function set_ctrlKey(value : Bool) : Bool;
+	private function set_delta(value : Int) : Int;
+	private function set_isRelatedObjectInaccessible(value : Bool) : Bool;
+	private function set_localX(value : Float) : Float;
+	private function set_localY(value : Float) : Float;
+	private function set_movementX(value : Float) : Float;
+	private function set_movementY(value : Float) : Float;
+	private function set_relatedObject(value : flash.display.InteractiveObject) : flash.display.InteractiveObject;
+	private function set_shiftKey(value : Bool) : Bool;
 	function updateAfterEvent() : Void;
 	static final CLICK : String;
 	@:require(flash11_2) static final CONTEXT_MENU : String;

+ 4 - 2
std/flash/events/NetDataEvent.hx

@@ -1,8 +1,10 @@
 package flash.events;
 
 extern class NetDataEvent extends Event {
-	var info(default,never) : Dynamic;
-	var timestamp(default,never) : Float;
+	@:flash.property var info(get,never) : Dynamic;
+	@:flash.property var timestamp(get,never) : Float;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, timestamp : Float = 0, ?info : Dynamic) : Void;
+	private function get_info() : Dynamic;
+	private function get_timestamp() : Float;
 	static final MEDIA_TYPE_DATA : String;
 }

+ 2 - 1
std/flash/events/NetMonitorEvent.hx

@@ -1,7 +1,8 @@
 package flash.events;
 
 extern class NetMonitorEvent extends Event {
-	var netStream(default,never) : flash.net.NetStream;
+	@:flash.property var netStream(get,never) : flash.net.NetStream;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?netStream : flash.net.NetStream) : Void;
+	private function get_netStream() : flash.net.NetStream;
 	static final NET_STREAM_CREATE : String;
 }

+ 3 - 1
std/flash/events/NetStatusEvent.hx

@@ -1,7 +1,9 @@
 package flash.events;
 
 extern class NetStatusEvent extends Event {
-	var info : Dynamic;
+	@:flash.property var info(get,set) : Dynamic;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?info : Dynamic) : Void;
+	private function get_info() : Dynamic;
+	private function set_info(value : Dynamic) : Dynamic;
 	static final NET_STATUS : String;
 }

+ 6 - 2
std/flash/events/OutputProgressEvent.hx

@@ -1,8 +1,12 @@
 package flash.events;
 
 extern class OutputProgressEvent extends Event {
-	var bytesPending : Float;
-	var bytesTotal : Float;
+	@:flash.property var bytesPending(get,set) : Float;
+	@:flash.property var bytesTotal(get,set) : Float;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, bytesPending : Float = 0, bytesTotal : Float = 0) : Void;
+	private function get_bytesPending() : Float;
+	private function get_bytesTotal() : Float;
+	private function set_bytesPending(value : Float) : Float;
+	private function set_bytesTotal(value : Float) : Float;
 	static final OUTPUT_PROGRESS : String;
 }

+ 10 - 4
std/flash/events/PressAndTapGestureEvent.hx

@@ -1,10 +1,16 @@
 package flash.events;
 
 @:require(flash10_1) extern class PressAndTapGestureEvent extends GestureEvent {
-	var tapLocalX : Float;
-	var tapLocalY : Float;
-	var tapStageX(default,never) : Float;
-	var tapStageY(default,never) : Float;
+	@:flash.property var tapLocalX(get,set) : Float;
+	@:flash.property var tapLocalY(get,set) : Float;
+	@:flash.property var tapStageX(get,never) : Float;
+	@:flash.property var tapStageY(get,never) : Float;
 	function new(type : String, bubbles : Bool = true, cancelable : Bool = false, ?phase : String, localX : Float = 0, localY : Float = 0, tapLocalX : Float = 0, tapLocalY : Float = 0, ctrlKey : Bool = false, altKey : Bool = false, shiftKey : Bool = false) : Void;
+	private function get_tapLocalX() : Float;
+	private function get_tapLocalY() : Float;
+	private function get_tapStageX() : Float;
+	private function get_tapStageY() : Float;
+	private function set_tapLocalX(value : Float) : Float;
+	private function set_tapLocalY(value : Float) : Float;
 	static final GESTURE_PRESS_AND_TAP : String;
 }

+ 6 - 2
std/flash/events/ProgressEvent.hx

@@ -1,9 +1,13 @@
 package flash.events;
 
 extern class ProgressEvent extends Event {
-	var bytesLoaded : Float;
-	var bytesTotal : Float;
+	@:flash.property var bytesLoaded(get,set) : Float;
+	@:flash.property var bytesTotal(get,set) : Float;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, bytesLoaded : Float = 0, bytesTotal : Float = 0) : Void;
+	private function get_bytesLoaded() : Float;
+	private function get_bytesTotal() : Float;
+	private function set_bytesLoaded(value : Float) : Float;
+	private function set_bytesTotal(value : Float) : Float;
 	static final PROGRESS : String;
 	static final SOCKET_DATA : String;
 }

+ 6 - 2
std/flash/events/SampleDataEvent.hx

@@ -1,8 +1,12 @@
 package flash.events;
 
 extern class SampleDataEvent extends Event {
-	var data : flash.utils.ByteArray;
-	var position : Float;
+	@:flash.property var data(get,set) : flash.utils.ByteArray;
+	@:flash.property var position(get,set) : Float;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, theposition : Float = 0, ?thedata : flash.utils.ByteArray) : Void;
+	private function get_data() : flash.utils.ByteArray;
+	private function get_position() : Float;
+	private function set_data(value : flash.utils.ByteArray) : flash.utils.ByteArray;
+	private function set_position(value : Float) : Float;
 	static final SAMPLE_DATA : String;
 }

+ 9 - 3
std/flash/events/ShaderEvent.hx

@@ -1,9 +1,15 @@
 package flash.events;
 
 extern class ShaderEvent extends Event {
-	var bitmapData : flash.display.BitmapData;
-	var byteArray : flash.utils.ByteArray;
-	var vector : flash.Vector<Float>;
+	@:flash.property var bitmapData(get,set) : flash.display.BitmapData;
+	@:flash.property var byteArray(get,set) : flash.utils.ByteArray;
+	@:flash.property var vector(get,set) : flash.Vector<Float>;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?bitmap : flash.display.BitmapData, ?array : flash.utils.ByteArray, ?vector : flash.Vector<Float>) : Void;
+	private function get_bitmapData() : flash.display.BitmapData;
+	private function get_byteArray() : flash.utils.ByteArray;
+	private function get_vector() : flash.Vector<Float>;
+	private function set_bitmapData(value : flash.display.BitmapData) : flash.display.BitmapData;
+	private function set_byteArray(value : flash.utils.ByteArray) : flash.utils.ByteArray;
+	private function set_vector(value : flash.Vector<Float>) : flash.Vector<Float>;
 	static final COMPLETE : String;
 }

+ 5 - 2
std/flash/events/SoftKeyboardEvent.hx

@@ -1,9 +1,12 @@
 package flash.events;
 
 extern class SoftKeyboardEvent extends Event {
-	var relatedObject : flash.display.InteractiveObject;
-	var triggerType(default,never) : String;
+	@:flash.property var relatedObject(get,set) : flash.display.InteractiveObject;
+	@:flash.property var triggerType(get,never) : String;
 	function new(type : String, bubbles : Bool, cancelable : Bool, relatedObjectVal : flash.display.InteractiveObject, triggerTypeVal : String) : Void;
+	private function get_relatedObject() : flash.display.InteractiveObject;
+	private function get_triggerType() : String;
+	private function set_relatedObject(value : flash.display.InteractiveObject) : flash.display.InteractiveObject;
 	static final SOFT_KEYBOARD_ACTIVATE : String;
 	static final SOFT_KEYBOARD_ACTIVATING : String;
 	static final SOFT_KEYBOARD_DEACTIVATE : String;

+ 2 - 1
std/flash/events/StageVideoAvailabilityEvent.hx

@@ -1,9 +1,10 @@
 package flash.events;
 
 extern class StageVideoAvailabilityEvent extends Event {
-	var availability(default,never) : String;
+	@:flash.property var availability(get,never) : String;
 	final driver : String;
 	final reason : String;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?availability : String) : Void;
+	private function get_availability() : String;
 	static final STAGE_VIDEO_AVAILABILITY : String;
 }

+ 4 - 2
std/flash/events/StageVideoEvent.hx

@@ -2,9 +2,11 @@ package flash.events;
 
 @:require(flash10_2) extern class StageVideoEvent extends Event {
 	final codecInfo : String;
-	var colorSpace(default,never) : String;
-	var status(default,never) : String;
+	@:flash.property var colorSpace(get,never) : String;
+	@:flash.property var status(get,never) : String;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?status : String, ?colorSpace : String) : Void;
+	private function get_colorSpace() : String;
+	private function get_status() : String;
 	static final RENDER_STATE : String;
 	static final RENDER_STATUS_ACCELERATED : String;
 	static final RENDER_STATUS_SOFTWARE : String;

+ 6 - 2
std/flash/events/StatusEvent.hx

@@ -1,8 +1,12 @@
 package flash.events;
 
 extern class StatusEvent extends Event {
-	var code : String;
-	var level : String;
+	@:flash.property var code(get,set) : String;
+	@:flash.property var level(get,set) : String;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?code : String, ?level : String) : Void;
+	private function get_code() : String;
+	private function get_level() : String;
+	private function set_code(value : String) : String;
+	private function set_level(value : String) : String;
 	static final STATUS : String;
 }

+ 3 - 1
std/flash/events/SyncEvent.hx

@@ -1,7 +1,9 @@
 package flash.events;
 
 extern class SyncEvent extends Event {
-	var changeList : Array<Dynamic>;
+	@:flash.property var changeList(get,set) : Array<Dynamic>;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?changeList : Array<Dynamic>) : Void;
+	private function get_changeList() : Array<Dynamic>;
+	private function set_changeList(value : Array<Dynamic>) : Array<Dynamic>;
 	static final SYNC : String;
 }

+ 3 - 1
std/flash/events/TextEvent.hx

@@ -1,8 +1,10 @@
 package flash.events;
 
 extern class TextEvent extends Event {
-	var text : String;
+	@:flash.property var text(get,set) : String;
 	function new(type : String, bubbles : Bool = false, cancelable : Bool = false, ?text : String) : Void;
+	private function get_text() : String;
+	private function set_text(value : String) : String;
 	static final LINK : String;
 	static final TEXT_INPUT : String;
 }

+ 4 - 2
std/flash/events/ThrottleEvent.hx

@@ -1,8 +1,10 @@
 package flash.events;
 
 @:require(flash11_2) extern class ThrottleEvent extends Event {
-	var state(default,never) : String;
-	var targetFrameRate(default,never) : Float;
+	@:flash.property var state(get,never) : String;
+	@:flash.property var targetFrameRate(get,never) : Float;
 	function new(type : ThrottleType, bubbles : Bool = false, cancelable : Bool = false, ?state : String, targetFrameRate : Float = 0) : Void;
+	private function get_state() : String;
+	private function get_targetFrameRate() : Float;
 	static final THROTTLE : String;
 }

+ 40 - 14
std/flash/events/TouchEvent.hx

@@ -1,21 +1,47 @@
 package flash.events;
 
 @:require(flash10_1) extern class TouchEvent extends Event {
-	var altKey : Bool;
-	var ctrlKey : Bool;
-	var isPrimaryTouchPoint : Bool;
-	var isRelatedObjectInaccessible : Bool;
-	var localX : Float;
-	var localY : Float;
-	var pressure : Float;
-	var relatedObject : flash.display.InteractiveObject;
-	var shiftKey : Bool;
-	var sizeX : Float;
-	var sizeY : Float;
-	var stageX(default,never) : Float;
-	var stageY(default,never) : Float;
-	var touchPointID : Int;
+	@:flash.property var altKey(get,set) : Bool;
+	@:flash.property var ctrlKey(get,set) : Bool;
+	@:flash.property var isPrimaryTouchPoint(get,set) : Bool;
+	@:flash.property var isRelatedObjectInaccessible(get,set) : Bool;
+	@:flash.property var localX(get,set) : Float;
+	@:flash.property var localY(get,set) : Float;
+	@:flash.property var pressure(get,set) : Float;
+	@:flash.property var relatedObject(get,set) : flash.display.InteractiveObject;
+	@:flash.property var shiftKey(get,set) : Bool;
+	@:flash.property var sizeX(get,set) : Float;
+	@:flash.property var sizeY(get,set) : Float;
+	@:flash.property var stageX(get,never) : Float;
+	@:flash.property var stageY(get,never) : Float;
+	@:flash.property var touchPointID(get,set) : Int;
 	function new(type : String, bubbles : Bool = true, cancelable : Bool = false, touchPointID : Int = 0, isPrimaryTouchPoint : Bool = false, localX : Float = 0./*NaN*/, localY : Float = 0./*NaN*/, sizeX : Float = 0./*NaN*/, sizeY : Float = 0./*NaN*/, pressure : Float = 0./*NaN*/, ?relatedObject : flash.display.InteractiveObject, ctrlKey : Bool = false, altKey : Bool = false, shiftKey : Bool = false) : Void;
+	private function get_altKey() : Bool;
+	private function get_ctrlKey() : Bool;
+	private function get_isPrimaryTouchPoint() : Bool;
+	private function get_isRelatedObjectInaccessible() : Bool;
+	private function get_localX() : Float;
+	private function get_localY() : Float;
+	private function get_pressure() : Float;
+	private function get_relatedObject() : flash.display.InteractiveObject;
+	private function get_shiftKey() : Bool;
+	private function get_sizeX() : Float;
+	private function get_sizeY() : Float;
+	private function get_stageX() : Float;
+	private function get_stageY() : Float;
+	private function get_touchPointID() : Int;
+	private function set_altKey(value : Bool) : Bool;
+	private function set_ctrlKey(value : Bool) : Bool;
+	private function set_isPrimaryTouchPoint(value : Bool) : Bool;
+	private function set_isRelatedObjectInaccessible(value : Bool) : Bool;
+	private function set_localX(value : Float) : Float;
+	private function set_localY(value : Float) : Float;
+	private function set_pressure(value : Float) : Float;
+	private function set_relatedObject(value : flash.display.InteractiveObject) : flash.display.InteractiveObject;
+	private function set_shiftKey(value : Bool) : Bool;
+	private function set_sizeX(value : Float) : Float;
+	private function set_sizeY(value : Float) : Float;
+	private function set_touchPointID(value : Int) : Int;
 	function updateAfterEvent() : Void;
 	static final PROXIMITY_BEGIN : String;
 	static final PROXIMITY_END : String;

+ 18 - 6
std/flash/events/TransformGestureEvent.hx

@@ -1,13 +1,25 @@
 package flash.events;
 
 @:require(flash10_1) extern class TransformGestureEvent extends GestureEvent {
-	var offsetX : Float;
-	var offsetY : Float;
-	var rotation : Float;
-	var scaleX : Float;
-	var scaleY : Float;
-	var velocity : Float;
+	@:flash.property var offsetX(get,set) : Float;
+	@:flash.property var offsetY(get,set) : Float;
+	@:flash.property var rotation(get,set) : Float;
+	@:flash.property var scaleX(get,set) : Float;
+	@:flash.property var scaleY(get,set) : Float;
+	@:flash.property var velocity(get,set) : Float;
 	function new(type : String, bubbles : Bool = true, cancelable : Bool = false, ?phase : String, localX : Float = 0, localY : Float = 0, scaleX : Float = 1, scaleY : Float = 1, rotation : Float = 0, offsetX : Float = 0, offsetY : Float = 0, ctrlKey : Bool = false, altKey : Bool = false, shiftKey : Bool = false) : Void;
+	private function get_offsetX() : Float;
+	private function get_offsetY() : Float;
+	private function get_rotation() : Float;
+	private function get_scaleX() : Float;
+	private function get_scaleY() : Float;
+	private function get_velocity() : Float;
+	private function set_offsetX(value : Float) : Float;
+	private function set_offsetY(value : Float) : Float;
+	private function set_rotation(value : Float) : Float;
+	private function set_scaleX(value : Float) : Float;
+	private function set_scaleY(value : Float) : Float;
+	private function set_velocity(value : Float) : Float;
 	static final GESTURE_DIRECTIONAL_TAP : String;
 	static final GESTURE_PAN : String;
 	static final GESTURE_ROTATE : String;

+ 2 - 1
std/flash/events/UncaughtErrorEvent.hx

@@ -1,7 +1,8 @@
 package flash.events;
 
 @:require(flash10_1) extern class UncaughtErrorEvent extends ErrorEvent {
-	var error(default,never) : Dynamic;
+	@:flash.property var error(get,never) : Dynamic;
 	function new(?type : String, bubbles : Bool = true, cancelable : Bool = true, ?error_in : Dynamic) : Void;
+	private function get_error() : Dynamic;
 	static final UNCAUGHT_ERROR : String;
 }

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov