Browse Source

move haxe.Rest and haxe.EitherType to haxe.extern package (closes #3601)

Simon Krajewski 10 years ago
parent
commit
50c28e209f
43 changed files with 111 additions and 102 deletions
  1. 3 3
      gencommon.ml
  2. 1 1
      gencs.ml
  3. 3 1
      std/cs/NativeArray.hx
  4. 1 1
      std/haxe/extern/EitherType.hx
  5. 1 1
      std/haxe/extern/Rest.hx
  6. 3 1
      std/java/NativeArray.hx
  7. 1 1
      std/js/JQuery.hx
  8. 2 2
      std/js/html/Blob.hx
  9. 7 7
      std/js/html/CanvasRenderingContext2D.hx
  10. 1 1
      std/js/html/CreateFileOptions.hx
  11. 3 3
      std/js/html/Directory.hx
  12. 4 4
      std/js/html/Document.hx
  13. 4 4
      std/js/html/Element.hx
  14. 2 2
      std/js/html/File.hx
  15. 2 2
      std/js/html/FontFace.hx
  16. 3 3
      std/js/html/HTMLAllCollection.hx
  17. 2 2
      std/js/html/HTMLOptionsCollection.hx
  18. 3 3
      std/js/html/MediaKeySession.hx
  19. 2 2
      std/js/html/MediaKeys.hx
  20. 2 2
      std/js/html/MediaStreamConstraints.hx
  21. 2 2
      std/js/html/MessageEvent.hx
  22. 1 1
      std/js/html/MessageEventInit.hx
  23. 2 2
      std/js/html/Navigator.hx
  24. 2 2
      std/js/html/SelectElement.hx
  25. 11 11
      std/js/html/SubtleCrypto.hx
  26. 4 4
      std/js/html/Text.hx
  27. 2 2
      std/js/html/TextDecoder.hx
  28. 2 2
      std/js/html/TrackEvent.hx
  29. 1 1
      std/js/html/TrackEventInit.hx
  30. 2 2
      std/js/html/VTTCue.hx
  31. 2 2
      std/js/html/Window.hx
  32. 2 2
      std/js/html/WorkerGlobalScope.hx
  33. 2 2
      std/js/html/idb/Cursor.hx
  34. 1 1
      std/js/html/idb/ObjectStoreParameters.hx
  35. 2 2
      std/js/html/idb/Request.hx
  36. 2 1
      std/python/Exceptions.hx
  37. 7 6
      std/python/Set.hx
  38. 5 4
      std/python/lib/Builtins.hx
  39. 3 2
      std/python/lib/io/TextIOBase.hx
  40. 2 1
      std/python/lib/os/Path.hx
  41. 1 1
      tests/unit/src/unitstd/haxe/extern/EitherType.unit.hx
  42. 1 1
      typeload.ml
  43. 2 2
      typer.ml

+ 3 - 3
gencommon.ml

@@ -6214,7 +6214,7 @@ struct
 		let rec check_arg arglist elist =
 		let rec check_arg arglist elist =
 			match arglist, elist with
 			match arglist, elist with
 				| [], [] -> true (* it is valid *)
 				| [], [] -> true (* it is valid *)
-				| (_,_,TAbstract({ a_path = (["haxe"],"Rest") }, [t])) :: [], elist ->
+				| (_,_,TAbstract({ a_path = (["haxe";"extern"],"Rest") }, [t])) :: [], elist ->
 					List.for_all (fun (_,_,et) -> Type.type_iseq (clean_t et) (clean_t t)) elist
 					List.for_all (fun (_,_,et) -> Type.type_iseq (clean_t et) (clean_t t)) elist
 				| (_,_,t) :: arglist, (_,_,et) :: elist when Type.type_iseq (clean_t et) (clean_t t) ->
 				| (_,_,t) :: arglist, (_,_,et) :: elist when Type.type_iseq (clean_t et) (clean_t t) ->
 					check_arg arglist elist
 					check_arg arglist elist
@@ -6304,7 +6304,7 @@ struct
 
 
 	let change_rest tfun elist =
 	let change_rest tfun elist =
 		let rec loop acc arglist elist = match arglist, elist with
 		let rec loop acc arglist elist = match arglist, elist with
-			| (_,_,TAbstract({ a_path = (["haxe"],"Rest") },[t])) :: [], elist ->
+			| (_,_,TAbstract({ a_path = (["haxe";"extern"],"Rest") },[t])) :: [], elist ->
 				List.rev (List.map (fun _ -> "rest",false,t) elist @ acc)
 				List.rev (List.map (fun _ -> "rest",false,t) elist @ acc)
 			| (n,o,t) :: arglist, _ :: elist ->
 			| (n,o,t) :: arglist, _ :: elist ->
 				loop ((n,o,t) :: acc) arglist elist
 				loop ((n,o,t) :: acc) arglist elist
@@ -11175,7 +11175,7 @@ struct
 	| TType(t,tl) -> TType(t,List.map filter_param tl)
 	| TType(t,tl) -> TType(t,List.map filter_param tl)
 	| TInst(c,tl) -> TInst(c,List.map filter_param tl)
 	| TInst(c,tl) -> TInst(c,List.map filter_param tl)
 	| TEnum(e,tl) -> TEnum(e,List.map filter_param tl)
 	| TEnum(e,tl) -> TEnum(e,List.map filter_param tl)
-	| TAbstract({ a_path = (["haxe"],"Rest") } as a,tl) -> TAbstract(a, List.map filter_param tl)
+	| TAbstract({ a_path = (["haxe";"extern"],"Rest") } as a,tl) -> TAbstract(a, List.map filter_param tl)
 	| TAbstract(a,tl) when not (Meta.has Meta.CoreType a.a_meta) ->
 	| TAbstract(a,tl) when not (Meta.has Meta.CoreType a.a_meta) ->
 		filter_param (Abstract.get_underlying_type a tl)
 		filter_param (Abstract.get_underlying_type a tl)
 	| TAbstract(a,tl) -> TAbstract(a, List.map filter_param tl)
 	| TAbstract(a,tl) -> TAbstract(a, List.map filter_param tl)

+ 1 - 1
gencs.ml

@@ -880,7 +880,7 @@ let configure gen =
 			| TInst( { cl_path = (["haxe"], "Int64") }, [] ) -> ti64
 			| TInst( { cl_path = (["haxe"], "Int64") }, [] ) -> ti64
 			| TAbstract( { a_path = [],"Class" }, _ )
 			| TAbstract( { a_path = [],"Class" }, _ )
 			| TAbstract( { a_path = [],"Enum" }, _ )
 			| TAbstract( { a_path = [],"Enum" }, _ )
-			| TAbstract( { a_path = ["haxe"],"Rest" }, _ )
+			| TAbstract( { a_path = ["haxe";"extern"],"Rest" }, _ )
 			| TInst( { cl_path = ([], "Class") }, _ )
 			| TInst( { cl_path = ([], "Class") }, _ )
 			| TInst( { cl_path = ([], "Enum") }, _ ) -> TInst(ttype,[])
 			| TInst( { cl_path = ([], "Enum") }, _ ) -> TInst(ttype,[])
 			| TInst( ({ cl_kind = KTypeParameter _ } as cl), _ ) when erase_generics && not (Meta.has Meta.NativeGeneric cl.cl_meta) ->
 			| TInst( ({ cl_kind = KTypeParameter _ } as cl), _ ) when erase_generics && not (Meta.has Meta.NativeGeneric cl.cl_meta) ->

+ 3 - 1
std/cs/NativeArray.hx

@@ -21,6 +21,8 @@
  */
  */
 package cs;
 package cs;
 
 
+import haxe.extern.Rest;
+
 /**
 /**
 	Represents a C# fixed-size Array (`T[]`)
 	Represents a C# fixed-size Array (`T[]`)
 **/
 **/
@@ -34,7 +36,7 @@ extern class NativeArray<T> extends cs.system.Array implements ArrayAccess<T>
 		var elements = NativeArray.make(1,2,3,4,5,6);
 		var elements = NativeArray.make(1,2,3,4,5,6);
 		```
 		```
 	 **/
 	 **/
-	public static function make<T>(elements:haxe.Rest<T>):NativeArray<T>;
+	public static function make<T>(elements:Rest<T>):NativeArray<T>;
 
 
 	/**
 	/**
 		Allocates a new array with size `len`
 		Allocates a new array with size `len`

+ 1 - 1
std/haxe/EitherType.hx → std/haxe/extern/EitherType.hx

@@ -1,4 +1,4 @@
-package haxe;
+package haxe.extern;
 
 
 /**
 /**
     An abstract type allowing values to be either of `T1` or `T2` type.
     An abstract type allowing values to be either of `T1` or `T2` type.

+ 1 - 1
std/haxe/Rest.hx → std/haxe/extern/Rest.hx

@@ -20,7 +20,7 @@
  * DEALINGS IN THE SOFTWARE.
  * DEALINGS IN THE SOFTWARE.
  */
  */
 
 
-package haxe;
+package haxe.extern;
 
 
 /**
 /**
     A special abstract type that represents "rest" function argument.
     A special abstract type that represents "rest" function argument.

+ 3 - 1
std/java/NativeArray.hx

@@ -21,6 +21,8 @@
  */
  */
 package java;
 package java;
 
 
+import haxe.extern.Rest;
+
 /**
 /**
 	Represents a java fixed-size Array (`T[]`)
 	Represents a java fixed-size Array (`T[]`)
 **/
 **/
@@ -34,7 +36,7 @@ package java;
 		var elements = NativeArray.make(1,2,3,4,5,6);
 		var elements = NativeArray.make(1,2,3,4,5,6);
 		```
 		```
 	 **/
 	 **/
-	public static function make<T>(elements:haxe.Rest<T>):NativeArray<T>;
+	public static function make<T>(elements:Rest<T>):NativeArray<T>;
 
 
 	/**
 	/**
 		The length of the array
 		The length of the array

+ 1 - 1
std/js/JQuery.hx

@@ -67,7 +67,7 @@ extern class JQueryHelper {
 	@:overload(function(j:Window):JQuery{})
 	@:overload(function(j:Window):JQuery{})
 	@:overload(function(j:Element):JQuery { } )
 	@:overload(function(j:Element):JQuery { } )
 
 
-	public static inline function J( html : haxe.EitherType<String,haxe.EitherType<JQuery,haxe.EitherType<Window,Element>>> ) : JQuery {
+	public static inline function J( html : haxe.extern.EitherType<String,haxe.extern.EitherType<JQuery,haxe.extern.EitherType<Window,Element>>> ) : JQuery {
         return new JQuery(cast html);
         return new JQuery(cast html);
     }
     }
 
 

+ 2 - 2
std/js/html/Blob.hx

@@ -29,10 +29,10 @@ extern class Blob
 {
 {
 	var size(default,null) : Int;
 	var size(default,null) : Int;
 	var type(default,null) : String;
 	var type(default,null) : String;
-	
+
 	/** @throws DOMError */
 	/** @throws DOMError */
 	@:overload( function() : Void {} )
 	@:overload( function() : Void {} )
-	function new( blobParts : Array<haxe.EitherType<ArrayBuffer,haxe.EitherType<ArrayBufferView,haxe.EitherType<Blob,String>>>>, ?options : BlobPropertyBag ) : Void;
+	function new( blobParts : Array<haxe.extern.EitherType<ArrayBuffer,haxe.extern.EitherType<ArrayBufferView,haxe.extern.EitherType<Blob,String>>>>, ?options : BlobPropertyBag ) : Void;
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function slice( ?start : Int, ?end : Int, ?contentType : String = "" ) : Blob;
 	function slice( ?start : Int, ?end : Int, ?contentType : String = "" ) : Blob;
 }
 }

+ 7 - 7
std/js/html/CanvasRenderingContext2D.hx

@@ -30,8 +30,8 @@ extern class CanvasRenderingContext2D
 	var canvas(default,null) : CanvasElement;
 	var canvas(default,null) : CanvasElement;
 	var globalAlpha : Float;
 	var globalAlpha : Float;
 	var globalCompositeOperation : String;
 	var globalCompositeOperation : String;
-	var strokeStyle : haxe.EitherType<String,haxe.EitherType<CanvasGradient,CanvasPattern>>;
-	var fillStyle : haxe.EitherType<String,haxe.EitherType<CanvasGradient,CanvasPattern>>;
+	var strokeStyle : haxe.extern.EitherType<String,haxe.extern.EitherType<CanvasGradient,CanvasPattern>>;
+	var fillStyle : haxe.extern.EitherType<String,haxe.extern.EitherType<CanvasGradient,CanvasPattern>>;
 	var shadowOffsetX : Float;
 	var shadowOffsetX : Float;
 	var shadowOffsetY : Float;
 	var shadowOffsetY : Float;
 	var shadowBlur : Float;
 	var shadowBlur : Float;
@@ -45,7 +45,7 @@ extern class CanvasRenderingContext2D
 	var font : String;
 	var font : String;
 	var textAlign : String;
 	var textAlign : String;
 	var textBaseline : String;
 	var textBaseline : String;
-	
+
 	function save() : Void;
 	function save() : Void;
 	function restore() : Void;
 	function restore() : Void;
 	/** @throws DOMError */
 	/** @throws DOMError */
@@ -64,7 +64,7 @@ extern class CanvasRenderingContext2D
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function createRadialGradient( x0 : Float, y0 : Float, r0 : Float, x1 : Float, y1 : Float, r1 : Float ) : CanvasGradient;
 	function createRadialGradient( x0 : Float, y0 : Float, r0 : Float, x1 : Float, y1 : Float, r1 : Float ) : CanvasGradient;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function createPattern( image : haxe.EitherType<ImageElement,haxe.EitherType<CanvasElement,VideoElement>>, repetition : String ) : CanvasPattern;
+	function createPattern( image : haxe.extern.EitherType<ImageElement,haxe.extern.EitherType<CanvasElement,VideoElement>>, repetition : String ) : CanvasPattern;
 	function clearRect( x : Float, y : Float, w : Float, h : Float ) : Void;
 	function clearRect( x : Float, y : Float, w : Float, h : Float ) : Void;
 	function fillRect( x : Float, y : Float, w : Float, h : Float ) : Void;
 	function fillRect( x : Float, y : Float, w : Float, h : Float ) : Void;
 	function strokeRect( x : Float, y : Float, w : Float, h : Float ) : Void;
 	function strokeRect( x : Float, y : Float, w : Float, h : Float ) : Void;
@@ -88,9 +88,9 @@ extern class CanvasRenderingContext2D
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function measureText( text : String ) : TextMetrics;
 	function measureText( text : String ) : TextMetrics;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	@:overload( function( image : haxe.EitherType<ImageElement,haxe.EitherType<CanvasElement,VideoElement>>, dx : Float, dy : Float ) : Void {} )
-	@:overload( function( image : haxe.EitherType<ImageElement,haxe.EitherType<CanvasElement,VideoElement>>, dx : Float, dy : Float, dw : Float, dh : Float ) : Void {} )
-	function drawImage( image : haxe.EitherType<ImageElement,haxe.EitherType<CanvasElement,VideoElement>>, sx : Float, sy : Float, sw : Float, sh : Float, dx : Float, dy : Float, dw : Float, dh : Float ) : Void;
+	@:overload( function( image : haxe.extern.EitherType<ImageElement,haxe.extern.EitherType<CanvasElement,VideoElement>>, dx : Float, dy : Float ) : Void {} )
+	@:overload( function( image : haxe.extern.EitherType<ImageElement,haxe.extern.EitherType<CanvasElement,VideoElement>>, dx : Float, dy : Float, dw : Float, dh : Float ) : Void {} )
+	function drawImage( image : haxe.extern.EitherType<ImageElement,haxe.extern.EitherType<CanvasElement,VideoElement>>, sx : Float, sy : Float, sw : Float, sh : Float, dx : Float, dy : Float, dw : Float, dh : Float ) : Void;
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function addHitRegion( ?options : HitRegionOptions ) : Void;
 	function addHitRegion( ?options : HitRegionOptions ) : Void;
 	function removeHitRegion( id : String ) : Void;
 	function removeHitRegion( id : String ) : Void;

+ 1 - 1
std/js/html/CreateFileOptions.hx

@@ -26,6 +26,6 @@ package js.html;
 
 
 typedef CreateFileOptions =
 typedef CreateFileOptions =
 {
 {
-	@:optional var data : haxe.EitherType<String,haxe.EitherType<Blob,haxe.EitherType<ArrayBuffer,ArrayBufferView>>>;
+	@:optional var data : haxe.extern.EitherType<String,haxe.extern.EitherType<Blob,haxe.extern.EitherType<ArrayBuffer,ArrayBufferView>>>;
 	@:optional var ifExists : Dynamic/*MISSING CreateIfExistsMode*/;
 	@:optional var ifExists : Dynamic/*MISSING CreateIfExistsMode*/;
 }
 }

+ 3 - 3
std/js/html/Directory.hx

@@ -28,10 +28,10 @@ package js.html;
 extern class Directory
 extern class Directory
 {
 {
 	var name(default,null) : String;
 	var name(default,null) : String;
-	
+
 	function createFile( path : String, ?options : CreateFileOptions ) : Promise/*<File (Wrapper)>*/;
 	function createFile( path : String, ?options : CreateFileOptions ) : Promise/*<File (Wrapper)>*/;
 	function createDirectory( path : String ) : Promise/*<Directory (Wrapper)>*/;
 	function createDirectory( path : String ) : Promise/*<Directory (Wrapper)>*/;
 	function get( path : String ) : Promise/*<FileOrDirectory>*/;
 	function get( path : String ) : Promise/*<FileOrDirectory>*/;
-	function remove( path : haxe.EitherType<String,haxe.EitherType<File,Directory>> ) : Promise/*<Boolean>*/;
-	function removeDeep( path : haxe.EitherType<String,haxe.EitherType<File,Directory>> ) : Promise/*<Boolean>*/;
+	function remove( path : haxe.extern.EitherType<String,haxe.extern.EitherType<File,Directory>> ) : Promise/*<Boolean>*/;
+	function removeDeep( path : haxe.extern.EitherType<String,haxe.extern.EitherType<File,Directory>> ) : Promise/*<Boolean>*/;
 }
 }

+ 4 - 4
std/js/html/Document.hx

@@ -136,7 +136,7 @@ extern class Document extends Node
 	var firstElementChild(default,null) : Element;
 	var firstElementChild(default,null) : Element;
 	var lastElementChild(default,null) : Element;
 	var lastElementChild(default,null) : Element;
 	var childElementCount(default,null) : Int;
 	var childElementCount(default,null) : Int;
-	
+
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function new() : Void;
 	function new() : Void;
 	function getElementsByTagName( localName : String ) : HTMLCollection;
 	function getElementsByTagName( localName : String ) : HTMLCollection;
@@ -188,11 +188,11 @@ extern class Document extends Node
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function querySelectorAll( selectors : String ) : NodeList;
 	function querySelectorAll( selectors : String ) : NodeList;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function convertQuadFromNode( quad : DOMQuad, from : haxe.EitherType<Text,haxe.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMQuad;
+	function convertQuadFromNode( quad : DOMQuad, from : haxe.extern.EitherType<Text,haxe.extern.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMQuad;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function convertRectFromNode( rect : DOMRectReadOnly, from : haxe.EitherType<Text,haxe.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMQuad;
+	function convertRectFromNode( rect : DOMRectReadOnly, from : haxe.extern.EitherType<Text,haxe.extern.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMQuad;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function convertPointFromNode( point : DOMPointInit, from : haxe.EitherType<Text,haxe.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMPoint;
+	function convertPointFromNode( point : DOMPointInit, from : haxe.extern.EitherType<Text,haxe.extern.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMPoint;
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function createExpression( expression : String, resolver : XPathNSResolver ) : XPathExpression;
 	function createExpression( expression : String, resolver : XPathNSResolver ) : XPathExpression;
 	function createNSResolver( nodeResolver : Node ) : Node;
 	function createNSResolver( nodeResolver : Node ) : Node;

+ 4 - 4
std/js/html/Element.hx

@@ -123,7 +123,7 @@ extern class Element extends Node
 	var firstElementChild(default,null) : Element;
 	var firstElementChild(default,null) : Element;
 	var lastElementChild(default,null) : Element;
 	var lastElementChild(default,null) : Element;
 	var childElementCount(default,null) : Int;
 	var childElementCount(default,null) : Int;
-	
+
 	function getAttribute( name : String ) : String;
 	function getAttribute( name : String ) : String;
 	function getAttributeNS( namespace_ : String, localName : String ) : String;
 	function getAttributeNS( namespace_ : String, localName : String ) : String;
 	/** @throws DOMError */
 	/** @throws DOMError */
@@ -182,9 +182,9 @@ extern class Element extends Node
 	function getAnimationPlayers() : Array<AnimationPlayer>;
 	function getAnimationPlayers() : Array<AnimationPlayer>;
 	function remove() : Void;
 	function remove() : Void;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function convertQuadFromNode( quad : DOMQuad, from : haxe.EitherType<Text,haxe.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMQuad;
+	function convertQuadFromNode( quad : DOMQuad, from : haxe.extern.EitherType<Text,haxe.extern.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMQuad;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function convertRectFromNode( rect : DOMRectReadOnly, from : haxe.EitherType<Text,haxe.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMQuad;
+	function convertRectFromNode( rect : DOMRectReadOnly, from : haxe.extern.EitherType<Text,haxe.extern.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMQuad;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function convertPointFromNode( point : DOMPointInit, from : haxe.EitherType<Text,haxe.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMPoint;
+	function convertPointFromNode( point : DOMPointInit, from : haxe.extern.EitherType<Text,haxe.extern.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMPoint;
 }
 }

+ 2 - 2
std/js/html/File.hx

@@ -30,9 +30,9 @@ extern class File extends Blob
 	var name(default,null) : String;
 	var name(default,null) : String;
 	var lastModified(default,null) : Int;
 	var lastModified(default,null) : Int;
 	var lastModifiedDate(default,null) : Date;
 	var lastModifiedDate(default,null) : Date;
-	
+
 	/** @throws DOMError */
 	/** @throws DOMError */
-	@:overload( function( fileBits : Array<haxe.EitherType<ArrayBuffer,haxe.EitherType<ArrayBufferView,haxe.EitherType<Blob,String>>>>, fileName : String, ?options : FilePropertyBag ) : Void {} )
+	@:overload( function( fileBits : Array<haxe.extern.EitherType<ArrayBuffer,haxe.extern.EitherType<ArrayBufferView,haxe.extern.EitherType<Blob,String>>>>, fileName : String, ?options : FilePropertyBag ) : Void {} )
 	@:overload( function( fileBits : Blob, ?options : ChromeFilePropertyBag ) : Void {} )
 	@:overload( function( fileBits : Blob, ?options : ChromeFilePropertyBag ) : Void {} )
 	@:overload( function( fileBits : Dynamic/*MISSING nsIFile*/, ?options : ChromeFilePropertyBag ) : Void {} )
 	@:overload( function( fileBits : Dynamic/*MISSING nsIFile*/, ?options : ChromeFilePropertyBag ) : Void {} )
 	function new( fileBits : String, ?options : ChromeFilePropertyBag ) : Void;
 	function new( fileBits : String, ?options : ChromeFilePropertyBag ) : Void;

+ 2 - 2
std/js/html/FontFace.hx

@@ -36,9 +36,9 @@ extern class FontFace
 	var featureSettings : String;
 	var featureSettings : String;
 	var status(default,null) : FontFaceLoadStatus;
 	var status(default,null) : FontFaceLoadStatus;
 	var loaded(default,null) : Promise/*<FontFace (Wrapper)>*/;
 	var loaded(default,null) : Promise/*<FontFace (Wrapper)>*/;
-	
+
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function new( family : String, source : haxe.EitherType<String,haxe.EitherType<ArrayBuffer,ArrayBufferView>>, ?descriptors : FontFaceDescriptors ) : Void;
+	function new( family : String, source : haxe.extern.EitherType<String,haxe.extern.EitherType<ArrayBuffer,ArrayBufferView>>, ?descriptors : FontFaceDescriptors ) : Void;
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function load() : Promise/*<FontFace (Wrapper)>*/;
 	function load() : Promise/*<FontFace (Wrapper)>*/;
 }
 }

+ 3 - 3
std/js/html/HTMLAllCollection.hx

@@ -28,8 +28,8 @@ package js.html;
 extern class HTMLAllCollection
 extern class HTMLAllCollection
 {
 {
 	var length(default,null) : Int;
 	var length(default,null) : Int;
-	
+
 	@:overload( function( index : Int ) : Node {} )
 	@:overload( function( index : Int ) : Node {} )
-	function item( name : String ) : haxe.EitherType<Node,HTMLCollection>;
-	function namedItem( name : String ) : haxe.EitherType<Node,HTMLCollection>;
+	function item( name : String ) : haxe.extern.EitherType<Node,HTMLCollection>;
+	function namedItem( name : String ) : haxe.extern.EitherType<Node,HTMLCollection>;
 }
 }

+ 2 - 2
std/js/html/HTMLOptionsCollection.hx

@@ -28,9 +28,9 @@ package js.html;
 extern class HTMLOptionsCollection extends HTMLCollection
 extern class HTMLOptionsCollection extends HTMLCollection
 {
 {
 	var selectedIndex : Int;
 	var selectedIndex : Int;
-	
+
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function add( element : haxe.EitherType<OptionElement,OptGroupElement>, ?before : haxe.EitherType<HTMLElement,Int> ) : Void;
+	function add( element : haxe.extern.EitherType<OptionElement,OptGroupElement>, ?before : haxe.extern.EitherType<HTMLElement,Int> ) : Void;
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function remove( index : Int ) : Void;
 	function remove( index : Int ) : Void;
 }
 }

+ 3 - 3
std/js/html/MediaKeySession.hx

@@ -32,10 +32,10 @@ extern class MediaKeySession extends EventTarget
 	var sessionId(default,null) : String;
 	var sessionId(default,null) : String;
 	var expiration(default,null) : Float;
 	var expiration(default,null) : Float;
 	var closed(default,null) : Promise/*<Void>*/;
 	var closed(default,null) : Promise/*<Void>*/;
-	
-	function generateRequest( initDataType : String, initData : haxe.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Void>*/;
+
+	function generateRequest( initDataType : String, initData : haxe.extern.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Void>*/;
 	function load( sessionId : String ) : Promise/*<Boolean>*/;
 	function load( sessionId : String ) : Promise/*<Boolean>*/;
-	function update( response : haxe.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Void>*/;
+	function update( response : haxe.extern.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Void>*/;
 	function close() : Promise/*<Void>*/;
 	function close() : Promise/*<Void>*/;
 	function remove() : Promise/*<Void>*/;
 	function remove() : Promise/*<Void>*/;
 	function getUsableKeyIds() : Promise/*<ArrayBufferSequence>*/;
 	function getUsableKeyIds() : Promise/*<ArrayBufferSequence>*/;

+ 2 - 2
std/js/html/MediaKeys.hx

@@ -28,8 +28,8 @@ package js.html;
 extern class MediaKeys
 extern class MediaKeys
 {
 {
 	var keySystem(default,null) : String;
 	var keySystem(default,null) : String;
-	
+
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function createSession( ?sessionType : SessionType = "temporary" ) : MediaKeySession;
 	function createSession( ?sessionType : SessionType = "temporary" ) : MediaKeySession;
-	function setServerCertificate( serverCertificate : haxe.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Void>*/;
+	function setServerCertificate( serverCertificate : haxe.extern.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Void>*/;
 }
 }

+ 2 - 2
std/js/html/MediaStreamConstraints.hx

@@ -26,10 +26,10 @@ package js.html;
 
 
 typedef MediaStreamConstraints =
 typedef MediaStreamConstraints =
 {
 {
-	@:optional var audio : haxe.EitherType<Bool,Dynamic/*MISSING MediaTrackConstraints*/>;
+	@:optional var audio : haxe.extern.EitherType<Bool,Dynamic/*MISSING MediaTrackConstraints*/>;
 	@:optional var fake : Bool;
 	@:optional var fake : Bool;
 	@:optional var fakeTracks : Bool;
 	@:optional var fakeTracks : Bool;
 	@:optional var peerIdentity : String;
 	@:optional var peerIdentity : String;
 	@:optional var picture : Bool;
 	@:optional var picture : Bool;
-	@:optional var video : haxe.EitherType<Bool,Dynamic/*MISSING MediaTrackConstraints*/>;
+	@:optional var video : haxe.extern.EitherType<Bool,Dynamic/*MISSING MediaTrackConstraints*/>;
 }
 }

+ 2 - 2
std/js/html/MessageEvent.hx

@@ -30,9 +30,9 @@ extern class MessageEvent extends Event
 	var data(default,null) : Dynamic;
 	var data(default,null) : Dynamic;
 	var origin(default,null) : String;
 	var origin(default,null) : String;
 	var lastEventId(default,null) : String;
 	var lastEventId(default,null) : String;
-	var source(default,null) : haxe.EitherType<Window,MessagePort>;
+	var source(default,null) : haxe.extern.EitherType<Window,MessagePort>;
 	var ports(default,null) : MessagePortList;
 	var ports(default,null) : MessagePortList;
-	
+
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function new( type : String, ?eventInitDict : MessageEventInit ) : Void;
 	function new( type : String, ?eventInitDict : MessageEventInit ) : Void;
 }
 }

+ 1 - 1
std/js/html/MessageEventInit.hx

@@ -31,5 +31,5 @@ typedef MessageEventInit =
 	@:optional var lastEventId : String;
 	@:optional var lastEventId : String;
 	@:optional var origin : String;
 	@:optional var origin : String;
 	@:optional var ports : Array<MessagePort>;
 	@:optional var ports : Array<MessagePort>;
-	@:optional var source : haxe.EitherType<Window,MessagePort>;
+	@:optional var source : haxe.extern.EitherType<Window,MessagePort>;
 }
 }

+ 2 - 2
std/js/html/Navigator.hx

@@ -48,7 +48,7 @@ extern class Navigator
 	var language(default,null) : String;
 	var language(default,null) : String;
 	var languages(default,null) : Array<String>;
 	var languages(default,null) : Array<String>;
 	var onLine(default,null) : Bool;
 	var onLine(default,null) : Bool;
-	
+
 	@:overload( function( duration : Int ) : Bool {} )
 	@:overload( function( duration : Int ) : Bool {} )
 	function vibrate( pattern : Array<Int> ) : Bool;
 	function vibrate( pattern : Array<Int> ) : Bool;
 	/** @throws DOMError */
 	/** @throws DOMError */
@@ -56,7 +56,7 @@ extern class Navigator
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function getGamepads() : Array<Gamepad>;
 	function getGamepads() : Array<Gamepad>;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function sendBeacon( url : String, ?data : haxe.EitherType<ArrayBufferView,haxe.EitherType<Blob,haxe.EitherType<String,FormData>>> ) : Bool;
+	function sendBeacon( url : String, ?data : haxe.extern.EitherType<ArrayBufferView,haxe.extern.EitherType<Blob,haxe.extern.EitherType<String,FormData>>> ) : Bool;
 	function requestMediaKeySystemAccess( keySystem : String, ?supportedConfigurations : Array<MediaKeySystemOptions> ) : Promise/*<MediaKeySystemAccess (Wrapper)>*/;
 	function requestMediaKeySystemAccess( keySystem : String, ?supportedConfigurations : Array<MediaKeySystemOptions> ) : Promise/*<MediaKeySystemAccess (Wrapper)>*/;
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function registerProtocolHandler( scheme : String, url : String, title : String ) : Void;
 	function registerProtocolHandler( scheme : String, url : String, title : String ) : Void;

+ 2 - 2
std/js/html/SelectElement.hx

@@ -43,10 +43,10 @@ extern class SelectElement extends HTMLElement implements ArrayAccess<Element>
 	var willValidate(default,null) : Bool;
 	var willValidate(default,null) : Bool;
 	var validity(default,null) : ValidityState;
 	var validity(default,null) : ValidityState;
 	var validationMessage(default,null) : String;
 	var validationMessage(default,null) : String;
-	
+
 	function namedItem( name : String ) : OptionElement;
 	function namedItem( name : String ) : OptionElement;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function add( element : haxe.EitherType<OptionElement,OptGroupElement>, ?before : haxe.EitherType<HTMLElement,Int> ) : Void;
+	function add( element : haxe.extern.EitherType<OptionElement,OptGroupElement>, ?before : haxe.extern.EitherType<HTMLElement,Int> ) : Void;
 	function checkValidity() : Bool;
 	function checkValidity() : Bool;
 	function setCustomValidity( error : String ) : Void;
 	function setCustomValidity( error : String ) : Void;
 }
 }

+ 11 - 11
std/js/html/SubtleCrypto.hx

@@ -28,27 +28,27 @@ package js.html;
 extern class SubtleCrypto
 extern class SubtleCrypto
 {
 {
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function encrypt( algorithm : haxe.EitherType<Dynamic,String>, key : CryptoKey, data : haxe.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Any>*/;
+	function encrypt( algorithm : haxe.extern.EitherType<Dynamic,String>, key : CryptoKey, data : haxe.extern.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Any>*/;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function decrypt( algorithm : haxe.EitherType<Dynamic,String>, key : CryptoKey, data : haxe.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Any>*/;
+	function decrypt( algorithm : haxe.extern.EitherType<Dynamic,String>, key : CryptoKey, data : haxe.extern.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Any>*/;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function sign( algorithm : haxe.EitherType<Dynamic,String>, key : CryptoKey, data : haxe.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Any>*/;
+	function sign( algorithm : haxe.extern.EitherType<Dynamic,String>, key : CryptoKey, data : haxe.extern.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Any>*/;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function verify( algorithm : haxe.EitherType<Dynamic,String>, key : CryptoKey, signature : haxe.EitherType<ArrayBufferView,ArrayBuffer>, data : haxe.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Any>*/;
+	function verify( algorithm : haxe.extern.EitherType<Dynamic,String>, key : CryptoKey, signature : haxe.extern.EitherType<ArrayBufferView,ArrayBuffer>, data : haxe.extern.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Any>*/;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function digest( algorithm : haxe.EitherType<Dynamic,String>, data : haxe.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Any>*/;
+	function digest( algorithm : haxe.extern.EitherType<Dynamic,String>, data : haxe.extern.EitherType<ArrayBufferView,ArrayBuffer> ) : Promise/*<Any>*/;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function generateKey( algorithm : haxe.EitherType<Dynamic,String>, extractable : Bool, keyUsages : Array<String> ) : Promise/*<Any>*/;
+	function generateKey( algorithm : haxe.extern.EitherType<Dynamic,String>, extractable : Bool, keyUsages : Array<String> ) : Promise/*<Any>*/;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function deriveKey( algorithm : haxe.EitherType<Dynamic,String>, baseKey : CryptoKey, derivedKeyType : haxe.EitherType<Dynamic,String>, extractable : Bool, keyUsages : Array<String> ) : Promise/*<Any>*/;
+	function deriveKey( algorithm : haxe.extern.EitherType<Dynamic,String>, baseKey : CryptoKey, derivedKeyType : haxe.extern.EitherType<Dynamic,String>, extractable : Bool, keyUsages : Array<String> ) : Promise/*<Any>*/;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function deriveBits( algorithm : haxe.EitherType<Dynamic,String>, baseKey : CryptoKey, length : Int ) : Promise/*<Any>*/;
+	function deriveBits( algorithm : haxe.extern.EitherType<Dynamic,String>, baseKey : CryptoKey, length : Int ) : Promise/*<Any>*/;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function importKey( format : String, keyData : Dynamic, algorithm : haxe.EitherType<Dynamic,String>, extractable : Bool, keyUsages : Array<String> ) : Promise/*<Any>*/;
+	function importKey( format : String, keyData : Dynamic, algorithm : haxe.extern.EitherType<Dynamic,String>, extractable : Bool, keyUsages : Array<String> ) : Promise/*<Any>*/;
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function exportKey( format : String, key : CryptoKey ) : Promise/*<Any>*/;
 	function exportKey( format : String, key : CryptoKey ) : Promise/*<Any>*/;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function wrapKey( format : String, key : CryptoKey, wrappingKey : CryptoKey, wrapAlgorithm : haxe.EitherType<Dynamic,String> ) : Promise/*<Any>*/;
+	function wrapKey( format : String, key : CryptoKey, wrappingKey : CryptoKey, wrapAlgorithm : haxe.extern.EitherType<Dynamic,String> ) : Promise/*<Any>*/;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function unwrapKey( format : String, wrappedKey : haxe.EitherType<ArrayBufferView,ArrayBuffer>, unwrappingKey : CryptoKey, unwrapAlgorithm : haxe.EitherType<Dynamic,String>, unwrappedKeyAlgorithm : haxe.EitherType<Dynamic,String>, extractable : Bool, keyUsages : Array<String> ) : Promise/*<Any>*/;
+	function unwrapKey( format : String, wrappedKey : haxe.extern.EitherType<ArrayBufferView,ArrayBuffer>, unwrappingKey : CryptoKey, unwrapAlgorithm : haxe.extern.EitherType<Dynamic,String>, unwrappedKeyAlgorithm : haxe.extern.EitherType<Dynamic,String>, extractable : Bool, keyUsages : Array<String> ) : Promise/*<Any>*/;
 }
 }

+ 4 - 4
std/js/html/Text.hx

@@ -28,15 +28,15 @@ package js.html;
 extern class Text extends CharacterData
 extern class Text extends CharacterData
 {
 {
 	var wholeText(default,null) : String;
 	var wholeText(default,null) : String;
-	
+
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function new( ?data : String = "" ) : Void;
 	function new( ?data : String = "" ) : Void;
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function splitText( offset : Int ) : Text;
 	function splitText( offset : Int ) : Text;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function convertQuadFromNode( quad : DOMQuad, from : haxe.EitherType<Text,haxe.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMQuad;
+	function convertQuadFromNode( quad : DOMQuad, from : haxe.extern.EitherType<Text,haxe.extern.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMQuad;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function convertRectFromNode( rect : DOMRectReadOnly, from : haxe.EitherType<Text,haxe.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMQuad;
+	function convertRectFromNode( rect : DOMRectReadOnly, from : haxe.extern.EitherType<Text,haxe.extern.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMQuad;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function convertPointFromNode( point : DOMPointInit, from : haxe.EitherType<Text,haxe.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMPoint;
+	function convertPointFromNode( point : DOMPointInit, from : haxe.extern.EitherType<Text,haxe.extern.EitherType<Element,Document>>, ?options : ConvertCoordinateOptions ) : DOMPoint;
 }
 }

+ 2 - 2
std/js/html/TextDecoder.hx

@@ -29,9 +29,9 @@ extern class TextDecoder
 {
 {
 	var encoding(default,null) : String;
 	var encoding(default,null) : String;
 	var fatal(default,null) : Bool;
 	var fatal(default,null) : Bool;
-	
+
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function new( ?label : String = "utf-8", ?options : TextDecoderOptions ) : Void;
 	function new( ?label : String = "utf-8", ?options : TextDecoderOptions ) : Void;
 	/** @throws DOMError */
 	/** @throws DOMError */
-	function decode( ?input : haxe.EitherType<ArrayBufferView,ArrayBuffer>, ?options : TextDecodeOptions ) : String;
+	function decode( ?input : haxe.extern.EitherType<ArrayBufferView,ArrayBuffer>, ?options : TextDecodeOptions ) : String;
 }
 }

+ 2 - 2
std/js/html/TrackEvent.hx

@@ -27,8 +27,8 @@ package js.html;
 @:native("TrackEvent")
 @:native("TrackEvent")
 extern class TrackEvent extends Event
 extern class TrackEvent extends Event
 {
 {
-	var track(default,null) : haxe.EitherType<VideoTrack,haxe.EitherType<AudioTrack,TextTrack>>;
-	
+	var track(default,null) : haxe.extern.EitherType<VideoTrack,haxe.extern.EitherType<AudioTrack,TextTrack>>;
+
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function new( type : String, ?eventInitDict : TrackEventInit ) : Void;
 	function new( type : String, ?eventInitDict : TrackEventInit ) : Void;
 }
 }

+ 1 - 1
std/js/html/TrackEventInit.hx

@@ -27,5 +27,5 @@ package js.html;
 typedef TrackEventInit =
 typedef TrackEventInit =
 {
 {
 	> EventInit,
 	> EventInit,
-	@:optional var track : haxe.EitherType<VideoTrack,haxe.EitherType<AudioTrack,TextTrack>>;
+	@:optional var track : haxe.extern.EitherType<VideoTrack,haxe.extern.EitherType<AudioTrack,TextTrack>>;
 }
 }

+ 2 - 2
std/js/html/VTTCue.hx

@@ -35,7 +35,7 @@ extern class VTTCue extends EventTarget
 	var region : VTTRegion;
 	var region : VTTRegion;
 	var vertical : DirectionSetting;
 	var vertical : DirectionSetting;
 	var snapToLines : Bool;
 	var snapToLines : Bool;
-	var line : haxe.EitherType<Int,Dynamic/*MISSING AutoKeyword*/>;
+	var line : haxe.extern.EitherType<Int,Dynamic/*MISSING AutoKeyword*/>;
 	var lineAlign : AlignSetting;
 	var lineAlign : AlignSetting;
 	var position : Int;
 	var position : Int;
 	var positionAlign : AlignSetting;
 	var positionAlign : AlignSetting;
@@ -44,7 +44,7 @@ extern class VTTCue extends EventTarget
 	var text : String;
 	var text : String;
 	var onenter : haxe.Constraints.Function;
 	var onenter : haxe.Constraints.Function;
 	var onexit : haxe.Constraints.Function;
 	var onexit : haxe.Constraints.Function;
-	
+
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function new( startTime : Float, endTime : Float, text : String ) : Void;
 	function new( startTime : Float, endTime : Float, text : String ) : Void;
 	function getCueAsHTML() : DocumentFragment;
 	function getCueAsHTML() : DocumentFragment;

+ 2 - 2
std/js/html/Window.hx

@@ -143,7 +143,7 @@ extern class Window extends EventTarget
 	var onpointerlockchange : haxe.Constraints.Function;
 	var onpointerlockchange : haxe.Constraints.Function;
 	var onpointerlockerror : haxe.Constraints.Function;
 	var onpointerlockerror : haxe.Constraints.Function;
 	var indexedDB(default,null) : js.html.idb.Factory;
 	var indexedDB(default,null) : js.html.idb.Factory;
-	var onerror : haxe.EitherType<Event,String> -> String -> Int -> Int -> Dynamic -> Bool;
+	var onerror : haxe.extern.EitherType<Event,String> -> String -> Int -> Int -> Dynamic -> Bool;
 	var speechSynthesis(default,null) : SpeechSynthesis;
 	var speechSynthesis(default,null) : SpeechSynthesis;
 	var onafterprint : haxe.Constraints.Function;
 	var onafterprint : haxe.Constraints.Function;
 	var onbeforeprint : haxe.Constraints.Function;
 	var onbeforeprint : haxe.Constraints.Function;
@@ -160,7 +160,7 @@ extern class Window extends EventTarget
 	var onunload : haxe.Constraints.Function;
 	var onunload : haxe.Constraints.Function;
 	var localStorage(default,null) : Storage;
 	var localStorage(default,null) : Storage;
 	var sessionStorage(default,null) : Storage;
 	var sessionStorage(default,null) : Storage;
-	
+
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function close() : Void;
 	function close() : Void;
 	/** @throws DOMError */
 	/** @throws DOMError */

+ 2 - 2
std/js/html/WorkerGlobalScope.hx

@@ -30,13 +30,13 @@ extern class WorkerGlobalScope extends EventTarget
 	var self(default,null) : WorkerGlobalScope;
 	var self(default,null) : WorkerGlobalScope;
 	var console(default,null) : Console;
 	var console(default,null) : Console;
 	var location(default,null) : WorkerLocation;
 	var location(default,null) : WorkerLocation;
-	var onerror : haxe.EitherType<Event,String> -> String -> Int -> Int -> Dynamic -> Bool;
+	var onerror : haxe.extern.EitherType<Event,String> -> String -> Int -> Int -> Dynamic -> Bool;
 	var onoffline : haxe.Constraints.Function;
 	var onoffline : haxe.Constraints.Function;
 	var ononline : haxe.Constraints.Function;
 	var ononline : haxe.Constraints.Function;
 	var navigator(default,null) : WorkerNavigator;
 	var navigator(default,null) : WorkerNavigator;
 	var onclose : haxe.Constraints.Function;
 	var onclose : haxe.Constraints.Function;
 	var performance(default,null) : Performance;
 	var performance(default,null) : Performance;
-	
+
 	function close() : Void;
 	function close() : Void;
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function importScripts( ?urls : String ) : Void;
 	function importScripts( ?urls : String ) : Void;

+ 2 - 2
std/js/html/idb/Cursor.hx

@@ -27,11 +27,11 @@ package js.html.idb;
 @:native("IDBCursor")
 @:native("IDBCursor")
 extern class Cursor
 extern class Cursor
 {
 {
-	var source(default,null) : haxe.EitherType<ObjectStore,Index>;
+	var source(default,null) : haxe.extern.EitherType<ObjectStore,Index>;
 	var direction(default,null) : CursorDirection;
 	var direction(default,null) : CursorDirection;
 	var key(default,null) : Dynamic;
 	var key(default,null) : Dynamic;
 	var primaryKey(default,null) : Dynamic;
 	var primaryKey(default,null) : Dynamic;
-	
+
 	/** @throws DOMError */
 	/** @throws DOMError */
 	function update( value : Dynamic ) : Request;
 	function update( value : Dynamic ) : Request;
 	/** @throws DOMError */
 	/** @throws DOMError */

+ 1 - 1
std/js/html/idb/ObjectStoreParameters.hx

@@ -27,5 +27,5 @@ package js.html.idb;
 typedef ObjectStoreParameters =
 typedef ObjectStoreParameters =
 {
 {
 	@:optional var autoIncrement : Bool;
 	@:optional var autoIncrement : Bool;
-	@:optional var keyPath : haxe.EitherType<String,Array<String>>;
+	@:optional var keyPath : haxe.extern.EitherType<String,Array<String>>;
 }
 }

+ 2 - 2
std/js/html/idb/Request.hx

@@ -29,10 +29,10 @@ extern class Request extends js.html.EventTarget
 {
 {
 	var result(default,null) : Dynamic;
 	var result(default,null) : Dynamic;
 	var error(default,null) : js.html.DOMError;
 	var error(default,null) : js.html.DOMError;
-	var source(default,null) : haxe.EitherType<ObjectStore,haxe.EitherType<Index,Cursor>>;
+	var source(default,null) : haxe.extern.EitherType<ObjectStore,haxe.extern.EitherType<Index,Cursor>>;
 	var transaction(default,null) : Transaction;
 	var transaction(default,null) : Transaction;
 	var readyState(default,null) : RequestReadyState;
 	var readyState(default,null) : RequestReadyState;
 	var onsuccess : haxe.Constraints.Function;
 	var onsuccess : haxe.Constraints.Function;
 	var onerror : haxe.Constraints.Function;
 	var onerror : haxe.Constraints.Function;
-	
+
 }
 }

+ 2 - 1
std/python/Exceptions.hx

@@ -21,11 +21,12 @@
  */
  */
 package python;
 package python;
 
 
+import haxe.extern.Rest;
 
 
 @:native("BaseException")
 @:native("BaseException")
 extern class BaseException
 extern class BaseException
 {
 {
-	function new(args:haxe.Rest<Dynamic>):Void;
+	function new(args:Rest<Dynamic>):Void;
 }
 }
 
 
 
 

+ 7 - 6
std/python/Set.hx

@@ -21,6 +21,7 @@
  */
  */
 package python;
 package python;
 
 
+import haxe.extern.Rest;
 import python.internal.UBuiltins;
 import python.internal.UBuiltins;
 import python.NativeIterator;
 import python.NativeIterator;
 import python.NativeIterable;
 import python.NativeIterable;
@@ -49,15 +50,15 @@ extern class Set<T> {
 	inline function issuperset_proper(other:Set<T>):Bool {
 	inline function issuperset_proper(other:Set<T>):Bool {
 		return Syntax.binop(this, ">", other);
 		return Syntax.binop(this, ">", other);
 	}
 	}
-	function union(other:Set<T>, others:haxe.Rest<Set<T>>):Set<T>;
-	function intersection(other:Set<T>, others:haxe.Rest<Set<T>>):Set<T>;
-	function difference(other:Set<T>, others:haxe.Rest<Set<T>>):Set<T>;
+	function union(other:Set<T>, others:Rest<Set<T>>):Set<T>;
+	function intersection(other:Set<T>, others:Rest<Set<T>>):Set<T>;
+	function difference(other:Set<T>, others:Rest<Set<T>>):Set<T>;
 	function symmetric_difference(other:Set<T>):Set<T>;
 	function symmetric_difference(other:Set<T>):Set<T>;
 	function copy():Set<T>;
 	function copy():Set<T>;
 
 
-	function update(other:Set<T>, others:haxe.Rest<Set<T>>):Set<T>;
-	function intersection_update(other:Set<T>, others:haxe.Rest<Set<T>>):Set<T>;
-	function difference_update(other:Set<T>, others:haxe.Rest<Set<T>>):Set<T>;
+	function update(other:Set<T>, others:Rest<Set<T>>):Set<T>;
+	function intersection_update(other:Set<T>, others:Rest<Set<T>>):Set<T>;
+	function difference_update(other:Set<T>, others:Rest<Set<T>>):Set<T>;
 	function symmetric_difference_update(other:Set<T>):Set<T>;
 	function symmetric_difference_update(other:Set<T>):Set<T>;
 
 
 	function add(elem:T):Void;
 	function add(elem:T):Void;

+ 5 - 4
std/python/lib/Builtins.hx

@@ -21,6 +21,7 @@
  */
  */
 package python.lib;
 package python.lib;
 
 
+import haxe.extern.Rest;
 
 
 import python.lib.io.FileIO;
 import python.lib.io.FileIO;
 import python.Dict;
 import python.Dict;
@@ -134,8 +135,8 @@ extern class Builtins {
 	//public static function xrange():Void;
 	//public static function xrange():Void;
 	//public static function cmp():Void;
 	//public static function cmp():Void;
 	//public static function globals():Void;
 	//public static function globals():Void;
-	@:overload(function (a1:Float, a2:Float, rest:haxe.Rest<Float>):Float {})
-	public static function max(a1:Int, a2:Int, rest:haxe.Rest<Int>):Int;
+	@:overload(function (a1:Float, a2:Float, rest:Rest<Float>):Float {})
+	public static function max(a1:Int, a2:Int, rest:Rest<Int>):Int;
 	//public static function reversed():Void;
 	//public static function reversed():Void;
 	//public static function zip():Void;
 	//public static function zip():Void;
 	//public static function compile():Void;
 	//public static function compile():Void;
@@ -145,8 +146,8 @@ extern class Builtins {
 	//public static function __import__():Void;
 	//public static function __import__():Void;
 	//public static function complex():Void;
 	//public static function complex():Void;
 	//public static function hash():Void;
 	//public static function hash():Void;
-	@:overload(function (a1:Float, a2:Float, rest:haxe.Rest<Float>):Float {})
-	public static function min(a1:Int, a2:Int, rest:haxe.Rest<Int>):Int;
+	@:overload(function (a1:Float, a2:Float, rest:Rest<Float>):Float {})
+	public static function min(a1:Int, a2:Int, rest:Rest<Int>):Int;
 	//public static function set():Void;
 	//public static function set():Void;
 	//public static function apply():Void;
 	//public static function apply():Void;
 	public static function delattr(o:Dynamic, attr:String):Void;
 	public static function delattr(o:Dynamic, attr:String):Void;

+ 3 - 2
std/python/lib/io/TextIOBase.hx

@@ -21,6 +21,7 @@
  */
  */
 package python.lib.io;
 package python.lib.io;
 
 
+import haxe.extern.EitherType;
 import python.lib.io.BufferedIOBase;
 import python.lib.io.BufferedIOBase;
 import python.lib.io.IOBase;
 import python.lib.io.IOBase;
 
 
@@ -29,7 +30,7 @@ extern class TextIOBase extends IOBase implements ITextIOBase {
 
 
 	public var encoding:String;
 	public var encoding:String;
 	public var error:String;
 	public var error:String;
-	public var newlines:Null<haxe.EitherType<String, Tuple<String>>>;
+	public var newlines:Null<EitherType<String, Tuple<String>>>;
 
 
 	public function detach ():BufferedIOBase;
 	public function detach ():BufferedIOBase;
 
 
@@ -45,7 +46,7 @@ extern class TextIOBase extends IOBase implements ITextIOBase {
 
 
 	public var encoding:String;
 	public var encoding:String;
 	public var error:String;
 	public var error:String;
-	public var newlines:Null<haxe.EitherType<String, Tuple<String>>>;
+	public var newlines:Null<EitherType<String, Tuple<String>>>;
 
 
 	public var buffer:BufferedIOBase;
 	public var buffer:BufferedIOBase;
 
 

+ 2 - 1
std/python/lib/os/Path.hx

@@ -21,6 +21,7 @@
  */
  */
 package python.lib.os;
 package python.lib.os;
 
 
+import haxe.extern.Rest;
 import python.Tuple;
 import python.Tuple;
 
 
 @:pythonImport("os", "path")
 @:pythonImport("os", "path")
@@ -63,7 +64,7 @@ extern class Path {
 
 
 	public static function ismount (path:String):Bool;
 	public static function ismount (path:String):Bool;
 
 
-	public static function join (path:String, paths:haxe.Rest<String>):String;
+	public static function join (path:String, paths:Rest<String>):String;
 
 
 	public static function normpath (path:String):String;
 	public static function normpath (path:String):String;
 
 

+ 1 - 1
tests/unit/src/unitstd/haxe/EitherType.unit.hx → tests/unit/src/unitstd/haxe/extern/EitherType.unit.hx

@@ -1,4 +1,4 @@
-var e:haxe.EitherType<Int,String> = "string";
+var e:haxe.extern.EitherType<Int,String> = "string";
 var s:String = e;
 var s:String = e;
 s == "string";
 s == "string";
 e = 1;
 e = 1;

+ 1 - 1
typeload.ml

@@ -2228,7 +2228,7 @@ let init_class ctx c p context_init herits fields =
 					(* TODO is_lib: avoid forcing the field to be typed *)
 					(* TODO is_lib: avoid forcing the field to be typed *)
 					let t, ct = type_function_arg ctx (type_opt ctx p t) ct opt p in
 					let t, ct = type_function_arg ctx (type_opt ctx p t) ct opt p in
 					delay ctx PTypeField (fun() -> match follow t with
 					delay ctx PTypeField (fun() -> match follow t with
-						| TAbstract({a_path = ["haxe"],"Rest"},_) ->
+						| TAbstract({a_path = ["haxe";"extern"],"Rest"},_) ->
 							if not c.cl_extern then error "Rest argument are only supported for extern methods" p;
 							if not c.cl_extern then error "Rest argument are only supported for extern methods" p;
 							if opt then error "Rest argument cannot be optional" p;
 							if opt then error "Rest argument cannot be optional" p;
 							if ct <> None then error "Rest argument cannot have default value" p;
 							if ct <> None then error "Rest argument cannot have default value" p;

+ 2 - 2
typer.ml

@@ -705,9 +705,9 @@ let rec unify_call_args' ctx el args r callp inline force_inline =
 	let rec loop el args = match el,args with
 	let rec loop el args = match el,args with
 		| [],[] ->
 		| [],[] ->
 			[]
 			[]
-		| _,[name,false,t] when (match follow t with TAbstract({a_path = ["haxe"],"Rest"},_) -> true | _ -> false) ->
+		| _,[name,false,t] when (match follow t with TAbstract({a_path = ["haxe";"extern"],"Rest"},_) -> true | _ -> false) ->
 			begin match follow t with
 			begin match follow t with
-				| TAbstract({a_path=(["haxe"],"Rest")},[t]) ->
+				| TAbstract({a_path=(["haxe";"extern"],"Rest")},[t]) ->
 					(try List.map (fun e -> type_against t e,false) el with WithTypeError(ul,p) -> arg_error ul name false p)
 					(try List.map (fun e -> type_against t e,false) el with WithTypeError(ul,p) -> arg_error ul name false p)
 				| _ ->
 				| _ ->
 					assert false
 					assert false