Преглед на файлове

applied interface syntax changes

Simon Krajewski преди 12 години
родител
ревизия
5ed2240611
променени са 56 файла, в които са добавени 206 реда и са изтрити 150 реда
  1. 3 3
      genxml.ml
  2. 9 2
      parser.ml
  3. 1 1
      std/cs/NativeArray.hx
  4. 0 41
      std/cs/internal/HxObject.hx
  5. 1 1
      std/cs/system/collections/ICollection.hx
  6. 1 1
      std/cs/system/collections/IDictionary.hx
  7. 1 1
      std/flash/Boot.hx
  8. 1 1
      std/flash/display/DisplayObject.hx
  9. 1 1
      std/flash/display/GraphicsBitmapFill.hx
  10. 1 1
      std/flash/display/GraphicsEndFill.hx
  11. 1 1
      std/flash/display/GraphicsGradientFill.hx
  12. 1 1
      std/flash/display/GraphicsPath.hx
  13. 1 1
      std/flash/display/GraphicsShaderFill.hx
  14. 1 1
      std/flash/display/GraphicsSolidFill.hx
  15. 1 1
      std/flash/display/GraphicsStroke.hx
  16. 1 1
      std/flash/display/GraphicsTrianglePath.hx
  17. 1 1
      std/flash/display/MovieClip.hx
  18. 1 1
      std/flash/net/NetStreamPlayOptions.hx
  19. 1 1
      std/flash/net/Socket.hx
  20. 1 1
      std/flash/net/URLStream.hx
  21. 1 1
      std/flash/text/StyleSheet.hx
  22. 1 1
      std/flash/utils/ByteArray.hx
  23. 1 1
      std/flash/utils/IDataInput2.hx
  24. 1 1
      std/flash/utils/IDataOutput2.hx
  25. 1 1
      std/haxe/remoting/AMFConnection.hx
  26. 1 1
      std/haxe/remoting/AsyncDebugConnection.hx
  27. 1 1
      std/haxe/remoting/DelayedConnection.hx
  28. 1 1
      std/haxe/remoting/ExternalConnection.hx
  29. 1 1
      std/haxe/remoting/FlashJsConnection.hx
  30. 1 1
      std/haxe/remoting/HttpAsyncConnection.hx
  31. 1 1
      std/haxe/remoting/HttpConnection.hx
  32. 1 1
      std/haxe/remoting/LocalConnection.hx
  33. 1 1
      std/haxe/remoting/SocketConnection.hx
  34. 1 1
      std/haxe/remoting/SyncSocketConnection.hx
  35. 99 16
      std/java/internal/HxObject.hx
  36. 1 1
      std/java/util/Collection.hx
  37. 1 1
      std/java/util/Set.hx
  38. 1 1
      std/js/html/CSSValueList.hx
  39. 2 2
      std/js/html/Float32Array.hx
  40. 2 2
      std/js/html/Float64Array.hx
  41. 2 2
      std/js/html/Int16Array.hx
  42. 2 2
      std/js/html/Int32Array.hx
  43. 2 2
      std/js/html/Int8Array.hx
  44. 20 20
      std/js/html/SelectElement.hx
  45. 1 1
      std/js/html/SourceBufferList.hx
  46. 1 1
      std/js/html/TextTrackList.hx
  47. 2 2
      std/js/html/Uint16Array.hx
  48. 2 2
      std/js/html/Uint32Array.hx
  49. 2 2
      std/js/html/Uint8Array.hx
  50. 1 1
      std/js/html/Uint8ClampedArray.hx
  51. 1 1
      std/js/html/rtc/MediaStreamTrackList.hx
  52. 6 6
      tests/unit/MyClass.hx
  53. 2 2
      tests/unit/TestDCE.hx
  54. 1 1
      tests/unit/TestMisc.hx
  55. 1 1
      tests/unit/TestSpecification.hx
  56. 11 4
      typeload.ml

+ 3 - 3
genxml.ml

@@ -168,7 +168,7 @@ let gen_type_decl com pos t =
 		) in
 		let fields = List.map (fun (f,att) -> gen_field att f) fields in
 		let constr = (match c.cl_constructor with None -> [] | Some f -> [gen_field [] f]) in
-		let impl = List.map (gen_class_path "implements") c.cl_implements in
+		let impl = List.map (gen_class_path (if c.cl_interface then "extends" else "implements")) c.cl_implements in
 		let tree = (match c.cl_super with
 			| None -> impl
 			| Some x -> gen_class_path "extends" x :: impl
@@ -394,7 +394,7 @@ let generate_type com t =
 		| None -> []
 		| Some (c,pl) -> [" extends " ^ stype (TInst (c,pl))]
 		) in
-		let ext = List.fold_left (fun acc (i,pl) -> (" implements " ^ stype (TInst (i,pl))) :: acc) ext c.cl_implements in
+		let ext = List.fold_left (fun acc (i,pl) -> ((if c.cl_interface then " extends " else " implements ") ^ stype (TInst (i,pl))) :: acc) ext c.cl_implements in
 		let ext = (match c.cl_dynamic with
 			| None -> ext
 			| Some t ->
@@ -412,7 +412,7 @@ let generate_type com t =
 			| ["flash";"errors"], "Error" -> [" #if !flash_strict implements Dynamic #end"]
 			| _ -> ext
 		) in
-		p "%s" (String.concat "," (List.rev ext));
+		p "%s" (String.concat " " (List.rev ext));
 		p " {\n";
 		let sort l =
 			let a = Array.of_list (List.filter (fun f -> f.cf_public && not (List.mem f.cf_name c.cl_overrides)) l) in

+ 9 - 2
parser.ml

@@ -229,8 +229,15 @@ and parse_type_decl s =
 				d_flags = List.map snd c @ n;
 				d_data = l
 			}, punion p1 p2)
-		| [< d = parse_class meta c true >] ->
-			d
+		| [< n , p1 = parse_class_flags; doc = get_doc; name = type_name; tl = parse_constraint_params; hl = plist parse_class_herit; '(BrOpen,_); fl, p2 = parse_class_fields false p1 >] ->
+			(EClass {
+				d_name = name;
+				d_doc = doc;
+				d_meta = meta;
+				d_params = tl;
+				d_flags = List.map fst c @ n @ hl;
+				d_data = fl;
+			}, punion p1 p2)
 		| [< '(Kwd Typedef,p1); doc = get_doc; name = type_name; tl = parse_constraint_params; '(Binop OpAssign,p2); t = parse_complex_type; s >] ->
 			(match s with parser
 			| [< '(Semicolon,_) >] -> ()

+ 1 - 1
std/cs/NativeArray.hx

@@ -21,7 +21,7 @@
  */
 package cs;
 
-extern class NativeArray<T> extends cs.system.Array, implements ArrayAccess<T>
+extern class NativeArray<T> extends cs.system.Array implements ArrayAccess<T>
 {
 	public var Length(default, null):Int;
 	

Файловите разлики са ограничени, защото са твърде много
+ 0 - 41
std/cs/internal/HxObject.hx


+ 1 - 1
std/cs/system/collections/ICollection.hx

@@ -21,7 +21,7 @@
  */
 package cs.system.collections;
 
-@:native('System.Collections.ICollection') extern interface ICollection implements IEnumerable
+@:native('System.Collections.ICollection') extern interface ICollection extends IEnumerable
 {
 	var Count(default, null):Int;
 	var IsSynchronized(default, null):Bool;

+ 1 - 1
std/cs/system/collections/IDictionary.hx

@@ -21,7 +21,7 @@
  */
 package cs.system.collections;
 
-@:native('System.Collections.IDictionary') extern interface IDictionary implements ICollection, implements ArrayAccess<Dynamic>
+@:native('System.Collections.IDictionary') extern interface IDictionary extends ICollection extends ArrayAccess<Dynamic>
 {
 	var IsFixedSize(default, null):Bool;
 	var IsReadOnly(default, null):Bool;

+ 1 - 1
std/flash/Boot.hx

@@ -22,7 +22,7 @@
 package flash;
 
 #if !as3
-@:keep private class RealBoot extends Boot, implements Dynamic {
+@:keep private class RealBoot extends Boot implements Dynamic {
 	#if swc
 	public function new() {
 		super();

+ 1 - 1
std/flash/display/DisplayObject.hx

@@ -1,6 +1,6 @@
 package flash.display;
 
-extern class DisplayObject extends flash.events.EventDispatcher, implements IBitmapDrawable {
+extern class DisplayObject extends flash.events.EventDispatcher implements IBitmapDrawable {
 	var accessibilityProperties : flash.accessibility.AccessibilityProperties;
 	var alpha : Float;
 	var blendMode : BlendMode;

+ 1 - 1
std/flash/display/GraphicsBitmapFill.hx

@@ -1,6 +1,6 @@
 package flash.display;
 
-@:final extern class GraphicsBitmapFill implements IGraphicsData, implements IGraphicsFill {
+@:final extern class GraphicsBitmapFill implements IGraphicsData implements IGraphicsFill {
 	var bitmapData : BitmapData;
 	var matrix : flash.geom.Matrix;
 	var repeat : Bool;

+ 1 - 1
std/flash/display/GraphicsEndFill.hx

@@ -1,5 +1,5 @@
 package flash.display;
 
-extern class GraphicsEndFill implements IGraphicsData, implements IGraphicsFill {
+extern class GraphicsEndFill implements IGraphicsData implements IGraphicsFill {
 	function new() : Void;
 }

+ 1 - 1
std/flash/display/GraphicsGradientFill.hx

@@ -1,6 +1,6 @@
 package flash.display;
 
-@:final extern class GraphicsGradientFill implements IGraphicsData, implements IGraphicsFill {
+@:final extern class GraphicsGradientFill implements IGraphicsData implements IGraphicsFill {
 	var alphas : Array<Float>;
 	var colors : Array<UInt>;
 	var focalPointRatio : Float;

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

@@ -1,6 +1,6 @@
 package flash.display;
 
-@:final extern class GraphicsPath implements IGraphicsData, implements IGraphicsPath {
+@:final extern class GraphicsPath implements IGraphicsData implements IGraphicsPath {
 	var commands : flash.Vector<Int>;
 	var data : flash.Vector<Float>;
 	var winding : GraphicsPathWinding;

+ 1 - 1
std/flash/display/GraphicsShaderFill.hx

@@ -1,6 +1,6 @@
 package flash.display;
 
-@:final extern class GraphicsShaderFill implements IGraphicsData, implements IGraphicsFill {
+@:final extern class GraphicsShaderFill implements IGraphicsData implements IGraphicsFill {
 	var matrix : flash.geom.Matrix;
 	var shader : Shader;
 	function new(?shader : Shader, ?matrix : flash.geom.Matrix) : Void;

+ 1 - 1
std/flash/display/GraphicsSolidFill.hx

@@ -1,6 +1,6 @@
 package flash.display;
 
-@:final extern class GraphicsSolidFill implements IGraphicsData, implements IGraphicsFill {
+@:final extern class GraphicsSolidFill implements IGraphicsData implements IGraphicsFill {
 	var alpha : Float;
 	var color : UInt;
 	function new(color : UInt = 0, alpha : Float = 1) : Void;

+ 1 - 1
std/flash/display/GraphicsStroke.hx

@@ -1,6 +1,6 @@
 package flash.display;
 
-@:final extern class GraphicsStroke implements IGraphicsData, implements IGraphicsStroke {
+@:final extern class GraphicsStroke implements IGraphicsData implements IGraphicsStroke {
 	var caps : CapsStyle;
 	var fill : IGraphicsFill;
 	var joints : JointStyle;

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

@@ -1,6 +1,6 @@
 package flash.display;
 
-@:final extern class GraphicsTrianglePath implements IGraphicsData, implements IGraphicsPath {
+@:final extern class GraphicsTrianglePath implements IGraphicsData implements IGraphicsPath {
 	var culling : TriangleCulling;
 	var indices : flash.Vector<Int>;
 	var uvtData : flash.Vector<Float>;

+ 1 - 1
std/flash/display/MovieClip.hx

@@ -1,6 +1,6 @@
 package flash.display;
 
-extern class MovieClip extends Sprite #if !flash_strict, implements Dynamic #end {
+extern class MovieClip extends Sprite #if !flash_strict implements Dynamic #end {
 	var currentFrame(default,null) : Int;
 	@:require(flash10) var currentFrameLabel(default,null) : String;
 	var currentLabel(default,null) : String;

+ 1 - 1
std/flash/net/NetStreamPlayOptions.hx

@@ -1,6 +1,6 @@
 package flash.net;
 
-extern class NetStreamPlayOptions extends flash.events.EventDispatcher, implements Dynamic {
+extern class NetStreamPlayOptions extends flash.events.EventDispatcher implements Dynamic {
 	var len : Float;
 	@:require(flash10_1) var offset : Float;
 	var oldStreamName : String;

+ 1 - 1
std/flash/net/Socket.hx

@@ -1,6 +1,6 @@
 package flash.net;
 
-extern class Socket extends flash.events.EventDispatcher, implements flash.utils.IDataOutput, implements flash.utils.IDataInput {
+extern class Socket extends flash.events.EventDispatcher implements flash.utils.IDataOutput implements flash.utils.IDataInput {
 	var bytesAvailable(default,null) : UInt;
 	@:require(flash11) var bytesPending(default,null) : UInt;
 	var connected(default,null) : Bool;

+ 1 - 1
std/flash/net/URLStream.hx

@@ -1,6 +1,6 @@
 package flash.net;
 
-extern class URLStream extends flash.events.EventDispatcher, implements flash.utils.IDataInput {
+extern class URLStream extends flash.events.EventDispatcher implements flash.utils.IDataInput {
 	var bytesAvailable(default,null) : UInt;
 	var connected(default,null) : Bool;
 	@:require(flash11_4) var diskCacheEnabled(default,null) : Bool;

+ 1 - 1
std/flash/text/StyleSheet.hx

@@ -1,6 +1,6 @@
 package flash.text;
 
-extern class StyleSheet extends flash.events.EventDispatcher, implements Dynamic {
+extern class StyleSheet extends flash.events.EventDispatcher implements Dynamic {
 	var styleNames(default,null) : Array<Dynamic>;
 	function new() : Void;
 	function clear() : Void;

+ 1 - 1
std/flash/utils/ByteArray.hx

@@ -1,6 +1,6 @@
 package flash.utils;
 
-extern class ByteArray implements IDataOutput2, implements IDataInput2, implements ArrayAccess<Int> {
+extern class ByteArray implements IDataOutput2 implements IDataInput2 implements ArrayAccess<Int> {
 	var bytesAvailable(default,null) : UInt;
 	var endian : Endian;
 	var length : UInt;

+ 1 - 1
std/flash/utils/IDataInput2.hx

@@ -1,4 +1,4 @@
 package flash.utils;
 
-extern interface IDataInput2 implements IDataInput {
+extern interface IDataInput2 extends IDataInput {
 }

+ 1 - 1
std/flash/utils/IDataOutput2.hx

@@ -1,4 +1,4 @@
 package flash.utils;
 
-extern interface IDataOutput2 implements IDataOutput {
+extern interface IDataOutput2 extends IDataOutput {
 }

+ 1 - 1
std/haxe/remoting/AMFConnection.hx

@@ -21,7 +21,7 @@
  */
 package haxe.remoting;
 
-class AMFConnection implements AsyncConnection, implements Dynamic<AsyncConnection> {
+class AMFConnection implements AsyncConnection implements Dynamic<AsyncConnection> {
 
 	var __data : {
 		error : Dynamic -> Void,

+ 1 - 1
std/haxe/remoting/AsyncDebugConnection.hx

@@ -21,7 +21,7 @@
  */
 package haxe.remoting;
 
-class AsyncDebugConnection implements AsyncConnection, implements Dynamic<AsyncDebugConnection> {
+class AsyncDebugConnection implements AsyncConnection implements Dynamic<AsyncDebugConnection> {
 
 	var __path : Array<String>;
 	var __cnx : AsyncConnection;

+ 1 - 1
std/haxe/remoting/DelayedConnection.hx

@@ -21,7 +21,7 @@
  */
 package haxe.remoting;
 
-class DelayedConnection implements AsyncConnection, implements Dynamic<AsyncConnection> {
+class DelayedConnection implements AsyncConnection implements Dynamic<AsyncConnection> {
 
 	public var connection(get,set) : AsyncConnection;
 

+ 1 - 1
std/haxe/remoting/ExternalConnection.hx

@@ -25,7 +25,7 @@ package haxe.remoting;
 	Synchronous communications between Flash and Javascript.
 **/
 @:expose
-class ExternalConnection implements Connection, implements Dynamic<Connection> {
+class ExternalConnection implements Connection implements Dynamic<Connection> {
 
 	var __data : { name : String, ctx : Context, #if js flash : String #end };
 	var __path : Array<String>;

+ 1 - 1
std/haxe/remoting/FlashJsConnection.hx

@@ -21,7 +21,7 @@
  */
 package haxe.remoting;
 
-class FlashJsConnection #if flash implements AsyncConnection, implements Dynamic<AsyncConnection> #end {
+class FlashJsConnection #if flash implements AsyncConnection implements Dynamic<AsyncConnection> #end {
 
 #if flash
 

+ 1 - 1
std/haxe/remoting/HttpAsyncConnection.hx

@@ -21,7 +21,7 @@
  */
 package haxe.remoting;
 
-class HttpAsyncConnection implements AsyncConnection, implements Dynamic<AsyncConnection> {
+class HttpAsyncConnection implements AsyncConnection implements Dynamic<AsyncConnection> {
 
 	var __data : { url : String, error : Dynamic -> Void };
 	var __path : Array<String>;

+ 1 - 1
std/haxe/remoting/HttpConnection.hx

@@ -21,7 +21,7 @@
  */
 package haxe.remoting;
 
-class HttpConnection implements Connection, implements Dynamic<Connection> {
+class HttpConnection implements Connection implements Dynamic<Connection> {
 
 	public static var TIMEOUT = 10;
 

+ 1 - 1
std/haxe/remoting/LocalConnection.hx

@@ -21,7 +21,7 @@
  */
 package haxe.remoting;
 
-class LocalConnection implements AsyncConnection, implements Dynamic<AsyncConnection> {
+class LocalConnection implements AsyncConnection implements Dynamic<AsyncConnection> {
 
 	static var ID = 0;
 

+ 1 - 1
std/haxe/remoting/SocketConnection.hx

@@ -22,7 +22,7 @@
 package haxe.remoting;
 import haxe.remoting.SocketProtocol.Socket;
 
-class SocketConnection implements AsyncConnection, implements Dynamic<AsyncConnection> {
+class SocketConnection implements AsyncConnection implements Dynamic<AsyncConnection> {
 
 	var __path : Array<String>;
 	var __data : {

+ 1 - 1
std/haxe/remoting/SyncSocketConnection.hx

@@ -22,7 +22,7 @@
 package haxe.remoting;
 import haxe.remoting.SocketProtocol.Socket;
 
-class SyncSocketConnection implements Connection, implements Dynamic<Connection> {
+class SyncSocketConnection implements Connection implements Dynamic<Connection> {
 
 	var __path : Array<String>;
 	var __proto : SocketProtocol;

+ 99 - 16
std/java/internal/HxObject.hx

@@ -19,22 +19,105 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
  */
-package java.internal;
import java.internal.IEquatable;
private typedef StdType = Type;

@:native('haxe.lang.HxObject')
@:keep
private class HxObject implements IHxObject
{
-}

@:native('haxe.lang.IHxObject')
@:keep
private interface IHxObject
{
-}

@:native('haxe.lang.DynamicObject')
@:replaceReflection
@:keep
private class DynamicObject extends HxObject, implements Dynamic
{
	@:skipReflection public function toString():String
	{
		var ts = Reflect.field(this, "toString");
		if (ts != null)
			return ts();
-		var ret = new StringBuf();
		ret.add("{");
		var first = true;
		for (f in Reflect.fields(this))
		{
			if( first )
				first = false;
			else
				ret.add(",");
			ret.add(" "); ret.add(f);
			ret.add(" : ");
			ret.add(Reflect.field(this, f));
		}
		if (!first) ret.add(" ");
		ret.add("}");
-		return ret.toString();
	}
}

@:native('haxe.lang.Enum')
//@:skipCtor
+package java.internal;
+import java.internal.IEquatable;
+private typedef StdType = Type;
+
+@:native('haxe.lang.HxObject')
+@:keep
+private class HxObject implements IHxObject
+{
+}
+
+@:native('haxe.lang.IHxObject')
+@:keep
+private interface IHxObject
+{
+}
+
+@:native('haxe.lang.DynamicObject')
+@:replaceReflection
+@:keep
+private class DynamicObject extends HxObject implements Dynamic
+{
+	@:skipReflection public function toString():String
+	{
+		var ts = Reflect.field(this, "toString");
+		if (ts != null)
+			return ts();
+		var ret = new StringBuf();
+		ret.add("{");
+		var first = true;
+		for (f in Reflect.fields(this))
+		{
+			if( first )
+				first = false;
+			else
+				ret.add(",");
+			ret.add(" "); ret.add(f);
+			ret.add(" : ");
+			ret.add(Reflect.field(this, f));
+		}
+		if (!first) ret.add(" ");
+		ret.add("}");
+		return ret.toString();
+	}
+}
+
+@:native('haxe.lang.Enum')
+//@:skipCtor
 @:nativeGen
-@:keep
private class Enum
{
	@:readOnly private var index:Int;
+@:keep
+private class Enum
+{
+	@:readOnly private var index:Int;
 	@:readOnly private var params:Array<{}>;
 
-	public function new(index:Int, params:Array<{}>)
	{
		this.index = index;
		this.params = params;
	}
-	@:final public function getTag():String
	{
		var cl:Dynamic = StdType.getEnum(cast this);
		return cl.constructs[index];
	}
-	public function toString():String
	{
		if (params == null) return getTag();
		var ret = new StringBuf();
		ret.add(getTag()); ret.add("(");
-		var first = true;
-		for (p in params)
		{
			if (first)
				first = false;
			else
				ret.add(",");
			ret.add(p);
		}
-		ret.add(")");
		return ret.toString();
	}
-	public function equals(obj:Dynamic)
	{
		if (obj == this) //we cannot use == as .Equals !
			return true;
-		var obj:Enum = cast obj;
		var ret = obj != null && Std.is(obj, StdType.getEnum(cast this)) && obj.index == this.index;
		if (!ret)
-			return false;
		if (obj.params == this.params)
			return true;
		var len = 0;
		if (obj.params == null || this.params == null || (len = this.params.length) != obj.params.length)
			return false;
-		for (i in 0...len)
		{
			if (!StdType.enumEq(obj.params[i], this.params[i]))
				return false;
		}
		return true;
	}
}
+	public function new(index:Int, params:Array<{}>)
+	{
+		this.index = index;
+		this.params = params;
+	}
+	@:final public function getTag():String
+	{
+		var cl:Dynamic = StdType.getEnum(cast this);
+		return cl.constructs[index];
+	}
+	public function toString():String
+	{
+		if (params == null) return getTag();
+		var ret = new StringBuf();
+		ret.add(getTag()); ret.add("(");
+		var first = true;
+		for (p in params)
+		{
+			if (first)
+				first = false;
+			else
+				ret.add(",");
+			ret.add(p);
+		}
+		ret.add(")");
+		return ret.toString();
+	}
+	public function equals(obj:Dynamic)
+	{
+		if (obj == this) //we cannot use == as .Equals !
+			return true;
+		var obj:Enum = cast obj;
+		var ret = obj != null && Std.is(obj, StdType.getEnum(cast this)) && obj.index == this.index;
+		if (!ret)
+			return false;
+		if (obj.params == this.params)
+			return true;
+		var len = 0;
+		if (obj.params == null || this.params == null || (len = this.params.length) != obj.params.length)
+			return false;
+		for (i in 0...len)
+		{
+			if (!StdType.enumEq(obj.params[i], this.params[i]))
+				return false;
+		}
+		return true;
+	}
+}

+ 1 - 1
std/java/util/Collection.hx

@@ -21,7 +21,7 @@
  */
 package java.util;
 
-extern interface Collection<E> implements java.util.Iterable<E>
+extern interface Collection<E> extends java.util.Iterable<E>
 {
 	function add(o:E):Bool;
 	function addAll(c:Collection<E>):Bool;

+ 1 - 1
std/java/util/Set.hx

@@ -21,7 +21,7 @@
  */
 package java.util;
 
-extern interface Set<E> implements Collection<E>
+extern interface Set<E> extends Collection<E>
 {
 	
 }

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

@@ -24,7 +24,7 @@
 package js.html;
 
 @:native("CSSValueList")
-extern class CSSValueList extends CSSValue, implements ArrayAccess<CSSValue>
+extern class CSSValueList extends CSSValue implements ArrayAccess<CSSValue>
 {
 	var length (default,null) : Int;
 

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

@@ -27,7 +27,7 @@ package js.html;
 <p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p><br><br>
 Documentation for this class was provided by <a href="https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array">MDN</a>. */
 @:native("Float32Array")
-extern class Float32Array extends ArrayBufferView, implements ArrayAccess<Float>
+extern class Float32Array extends ArrayBufferView implements ArrayAccess<Float>
 {
 	/** The size, in bytes, of each array element. */
 	static inline var BYTES_PER_ELEMENT : Int = 4;
@@ -70,7 +70,7 @@ Float32Array Float32Array(
 	/** <p>Sets multiple values in the typed array, reading input values from a specified array.</p>
 
 <div id="section_13"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
-<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset 
+<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset
 <span title="">Optional</span>
 </dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>
 </dl>

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

@@ -27,7 +27,7 @@ package js.html;
 <p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p><br><br>
 Documentation for this class was provided by <a href="https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array">MDN</a>. */
 @:native("Float64Array")
-extern class Float64Array extends ArrayBufferView, implements ArrayAccess<Float>
+extern class Float64Array extends ArrayBufferView implements ArrayAccess<Float>
 {
 	/** The size, in bytes, of each array element. */
 	static inline var BYTES_PER_ELEMENT : Int = 8;
@@ -70,7 +70,7 @@ Float64Array Float64Array(
 	/** <p>Sets multiple values in the typed array, reading input values from a specified array.</p>
 
 <div id="section_13"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
-<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset 
+<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset
 <span title="">Optional</span>
 </dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>
 </dl>

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

@@ -27,7 +27,7 @@ package js.html;
 <p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p><br><br>
 Documentation for this class was provided by <a href="https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array">MDN</a>. */
 @:native("Int16Array")
-extern class Int16Array extends ArrayBufferView, implements ArrayAccess<Int>
+extern class Int16Array extends ArrayBufferView implements ArrayAccess<Int>
 {
 	/** The size, in bytes, of each array element. */
 	static inline var BYTES_PER_ELEMENT : Int = 2;
@@ -70,7 +70,7 @@ Int16Array Int16Array(
 	/** <p>Sets multiple values in the typed array, reading input values from a specified array.</p>
 
 <div id="section_13"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
-<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset 
+<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset
 <span title="">Optional</span>
 </dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>
 </dl>

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

@@ -27,7 +27,7 @@ package js.html;
 <p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p><br><br>
 Documentation for this class was provided by <a href="https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array">MDN</a>. */
 @:native("Int32Array")
-extern class Int32Array extends ArrayBufferView, implements ArrayAccess<Int>
+extern class Int32Array extends ArrayBufferView implements ArrayAccess<Int>
 {
 	/** The size, in bytes, of each array element. */
 	static inline var BYTES_PER_ELEMENT : Int = 4;
@@ -70,7 +70,7 @@ Int32Array Int32Array(
 	/** <p>Sets multiple values in the typed array, reading input values from a specified array.</p>
 
 <div id="section_13"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
-<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset 
+<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset
 <span title="">Optional</span>
 </dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>
 </dl>

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

@@ -27,7 +27,7 @@ package js.html;
 <p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p><br><br>
 Documentation for this class was provided by <a href="https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array">MDN</a>. */
 @:native("Int8Array")
-extern class Int8Array extends ArrayBufferView, implements ArrayAccess<Int>
+extern class Int8Array extends ArrayBufferView implements ArrayAccess<Int>
 {
 	/** The size, in bytes, of each array element. */
 	static inline var BYTES_PER_ELEMENT : Int = 1;
@@ -70,7 +70,7 @@ Int8Array Int8Array(
 	/** <p>Sets multiple values in the typed array, reading input values from a specified array.</p>
 
 <div id="section_13"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
-<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset 
+<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset
 <span title="">Optional</span>
 </dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>
 </dl>

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

@@ -24,22 +24,22 @@
 package js.html;
 
 /** <code>DOM select</code> elements share all of the properties and methods of other HTML elements described in the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/element">element</a></code>
- section. They also have the specialized interface <a class="external" title="http://dev.w3.org/html5/spec/the-button-element.html#htmlselectelement" rel="external" href="http://dev.w3.org/html5/spec/the-button-element.html#htmlselectelement" target="_blank">HTMLSelectElement</a> (or 
+ section. They also have the specialized interface <a class="external" title="http://dev.w3.org/html5/spec/the-button-element.html#htmlselectelement" rel="external" href="http://dev.w3.org/html5/spec/the-button-element.html#htmlselectelement" target="_blank">HTMLSelectElement</a> (or
 <span><a rel="custom" href="https://developer.mozilla.org/en/HTML">HTML 4</a></span> <a class="external" title="http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-94282980" rel="external" href="http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-94282980" target="_blank">HTMLSelectElement</a>).<br><br>
 Documentation for this class was provided by <a href="https://developer.mozilla.org/en/DOM/HTMLSelectElement">MDN</a>. */
 @:native("HTMLSelectElement")
-extern class SelectElement extends Element, implements ArrayAccess<Node>
+extern class SelectElement extends Element implements ArrayAccess<Node>
 {
-	/** Reflects the 
+	/** Reflects the
 
 <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select#attr-autofocus">autofocus</a></code>
- HTML attribute, which indicates whether the control should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified. 
-<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span> 
+ HTML attribute, which indicates whether the control should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified.
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
 <span title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
 ">Requires Gecko 2.0</span> */
 	var autofocus : Bool;
 
-	/** Reflects the 
+	/** Reflects the
 
 <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select#attr-disabled">disabled</a></code>
  HTML attribute, which indicates whether the control is disabled. If it is disabled, it does not accept clicks. */
@@ -57,13 +57,13 @@ extern class SelectElement extends Element, implements ArrayAccess<Node>
  elements in this <code>select</code> element. Setter throws DOMException. */
 	var length : Int;
 
-	/** Reflects the 
+	/** Reflects the
 
 <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select#attr-multiple">multiple</a></code>
  HTML attribute, whichindicates whether multiple items can be selected. */
 	var multiple : Bool;
 
-	/** Reflects the 
+	/** Reflects the
 
 <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select#attr-name">name</a></code>
  HTML attribute, containing the name of this control used by servers and DOM search functions. */
@@ -73,11 +73,11 @@ extern class SelectElement extends Element, implements ArrayAccess<Node>
  elements contained by this element. <strong>Read only.</strong> */
 	var options (default,null) : HTMLOptionsCollection;
 
-	/** Reflects the 
+	/** Reflects the
 
 <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select#attr-required">required</a></code>
- HTML attribute, which indicates whether the user is required to select a value before submitting the form. 
-<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span> 
+ HTML attribute, which indicates whether the user is required to select a value before submitting the form.
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
 <span title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
 ">Requires Gecko 2.0</span> */
 	var required : Bool;
@@ -86,28 +86,28 @@ extern class SelectElement extends Element, implements ArrayAccess<Node>
  element. */
 	var selectedIndex : Int;
 
-	/** The set of options that are selected. 
+	/** The set of options that are selected.
 <span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span> */
 	var selectedOptions (default,null) : HTMLCollection;
 
-	/** Reflects the 
+	/** Reflects the
 
 <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select#attr-size">size</a></code>
- HTML attribute, which contains the number of visible items in the control. The default is 1, 
+ HTML attribute, which contains the number of visible items in the control. The default is 1,
 <span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span> unless <strong>multiple</strong> is true, in which case it is 4. */
 	var size : Int;
 
 	/** The form control's type. When <strong>multiple</strong> is true, it returns <code>select-multiple</code>; otherwise, it returns <code>select-one</code>.<strong>Read only.</strong> */
 	var type (default,null) : String;
 
-	/** A localized message that describes the validation constraints that the control does not satisfy (if any). This attribute is the empty string if the control is not a candidate for constraint validation (<strong>willValidate</strong> is false), or it satisfies its constraints.<strong>Read only.</strong> 
-<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span> 
+	/** A localized message that describes the validation constraints that the control does not satisfy (if any). This attribute is the empty string if the control is not a candidate for constraint validation (<strong>willValidate</strong> is false), or it satisfies its constraints.<strong>Read only.</strong>
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
 <span title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
 ">Requires Gecko 2.0</span> */
 	var validationMessage (default,null) : String;
 
-	/** The validity states that this control is in. <strong>Read only.</strong> 
-<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span> 
+	/** The validity states that this control is in. <strong>Read only.</strong>
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
 <span title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
 ">Requires Gecko 2.0</span> */
 	var validity (default,null) : ValidityState;
@@ -115,8 +115,8 @@ extern class SelectElement extends Element, implements ArrayAccess<Node>
 	/** The value of this form control, that is, of the first selected option. */
 	var value : String;
 
-	/** Indicates whether the button is a candidate for constraint validation. It is false if any conditions bar it from constraint validation. <strong>Read only.</strong> 
-<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span> 
+	/** Indicates whether the button is a candidate for constraint validation. It is false if any conditions bar it from constraint validation. <strong>Read only.</strong>
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
 <span title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
 ">Requires Gecko 2.0</span> */
 	var willValidate (default,null) : Bool;

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

@@ -24,7 +24,7 @@
 package js.html;
 
 @:native("SourceBufferList")
-extern class SourceBufferList extends EventTarget, implements ArrayAccess<SourceBuffer>
+extern class SourceBufferList extends EventTarget implements ArrayAccess<SourceBuffer>
 {
 	var length (default,null) : Int;
 

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

@@ -24,7 +24,7 @@
 package js.html;
 
 @:native("TextTrackList")
-extern class TextTrackList extends EventTarget, implements ArrayAccess<TextTrack>
+extern class TextTrackList extends EventTarget implements ArrayAccess<TextTrack>
 {
 	var length (default,null) : Int;
 

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

@@ -27,7 +27,7 @@ package js.html;
 <p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p><br><br>
 Documentation for this class was provided by <a href="https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array">MDN</a>. */
 @:native("Uint16Array")
-extern class Uint16Array extends ArrayBufferView, implements ArrayAccess<Int>
+extern class Uint16Array extends ArrayBufferView implements ArrayAccess<Int>
 {
 	/** The size, in bytes, of each array element. */
 	static inline var BYTES_PER_ELEMENT : Int = 2;
@@ -70,7 +70,7 @@ Uint16Array Uint16Array(
 	/** <p>Sets multiple values in the typed array, reading input values from a specified array.</p>
 
 <div id="section_13"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
-<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset 
+<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset
 <span title="">Optional</span>
 </dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>
 </dl>

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

@@ -27,7 +27,7 @@ package js.html;
 <p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p><br><br>
 Documentation for this class was provided by <a href="https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array">MDN</a>. */
 @:native("Uint32Array")
-extern class Uint32Array extends ArrayBufferView, implements ArrayAccess<Int>
+extern class Uint32Array extends ArrayBufferView implements ArrayAccess<Int>
 {
 	/** The size, in bytes, of each array element. */
 	static inline var BYTES_PER_ELEMENT : Int = 4;
@@ -70,7 +70,7 @@ Uint32Array Uint32Array(
 	/** <p>Sets multiple values in the typed array, reading input values from a specified array.</p>
 
 <div id="section_13"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
-<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset 
+<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset
 <span title="">Optional</span>
 </dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>
 </dl>

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

@@ -27,7 +27,7 @@ package js.html;
 <p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p><br><br>
 Documentation for this class was provided by <a href="https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array">MDN</a>. */
 @:native("Uint8Array")
-extern class Uint8Array extends ArrayBufferView, implements ArrayAccess<Int>
+extern class Uint8Array extends ArrayBufferView implements ArrayAccess<Int>
 {
 	/** The size, in bytes, of each array element. */
 	static inline var BYTES_PER_ELEMENT : Int = 1;
@@ -70,7 +70,7 @@ Uint8Array Uint8Array(
 	/** <p>Sets multiple values in the typed array, reading input values from a specified array.</p>
 
 <div id="section_13"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
-<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset 
+<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title="en/JavaScript typed arrays/ArrayBuffer" rel="internal" href="https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset
 <span title="">Optional</span>
 </dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>
 </dl>

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

@@ -24,7 +24,7 @@
 package js.html;
 
 @:native("Uint8ClampedArray")
-extern class Uint8ClampedArray extends Uint8Array, implements ArrayAccess<Int>
+extern class Uint8ClampedArray extends Uint8Array implements ArrayAccess<Int>
 {
 	static inline var BYTES_PER_ELEMENT : Int = 1;
 

+ 1 - 1
std/js/html/rtc/MediaStreamTrackList.hx

@@ -24,7 +24,7 @@
 package js.html.rtc;
 
 @:native("MediaStreamTrackList")
-extern class MediaStreamTrackList extends js.html.EventTarget, implements ArrayAccess<MediaStreamTrack>
+extern class MediaStreamTrackList extends js.html.EventTarget implements ArrayAccess<MediaStreamTrack>
 {
 	var length (default,null) : Int;
 

+ 6 - 6
tests/unit/MyClass.hx

@@ -50,15 +50,15 @@ class MyChild2 extends MyParent {
 interface I1 { }
 class Base { public var s:String; public function new() { } }
 class Child1 extends Base { public function new() { super(); } }
-class Child2 extends Base, implements I1 { public function new() { super(); } }
+class Child2 extends Base implements I1 { public function new() { super(); } }
 class Child2_1 extends Child2 { public function new() { super(); } }
 class Unrelated implements I1 { public var s:String; public var t:Int;  public function new() { } }
 
-interface I2 implements I1 { }
+interface I2 extends I1 { }
 class ClassI2 implements I2 { public function new() { } }
 
-class CI1 extends Base, implements I1 { public function new() { super(); } }
-class CI2 extends Base, implements I1 { public function new() { super(); } }
+class CI1 extends Base implements I1 { public function new() { super(); } }
+class CI2 extends Base implements I1 { public function new() { super(); } }
 class CII1 extends CI1 { public function new() { super(); } }
 class CII2 extends CI2 { public function new() { super(); } }
 
@@ -70,7 +70,7 @@ interface CovI {
 	public function covariant():Base;
 }
 
-interface CovI2 implements CovI {
+interface CovI2 extends CovI {
 	public function covariant():Child2;
 }
 
@@ -79,7 +79,7 @@ class Cov1 {
 	public function covariant():Base { return new Base(); }
 }
 
-class Cov2 extends Cov1, implements CovI {
+class Cov2 extends Cov1 implements CovI {
 	public function new() { super(); }
 	public override function covariant():Child1 { return new Child1(); }
 }

+ 2 - 2
tests/unit/TestDCE.hx

@@ -185,7 +185,7 @@ class PropertyAccessorsFromBaseClass {
 	public function set_x(x:String) return "ok"
 }
 
-class PropertyAccessorsFromBaseClassChild extends PropertyAccessorsFromBaseClass, implements PropertyInterface {
+class PropertyAccessorsFromBaseClassChild extends PropertyAccessorsFromBaseClass implements PropertyInterface {
 	public var x(get_x, set_x):String;
 	public function new() { }
 }
@@ -195,6 +195,6 @@ class InterfaceMethodFromBaseClass {
 	public function unusedInterfaceFunc():Void { }
 }
 
-class InterfaceMethodFromBaseClassChild extends InterfaceMethodFromBaseClass, implements UsedInterface {
+class InterfaceMethodFromBaseClassChild extends InterfaceMethodFromBaseClass implements UsedInterface {
 	public function new() { }
 }

+ 1 - 1
tests/unit/TestMisc.hx

@@ -67,7 +67,7 @@ class BaseDefArgs {
 	}
 }
 
-class ExtDefArgs extends BaseDefArgs, implements IDefArgs {
+class ExtDefArgs extends BaseDefArgs implements IDefArgs {
 	public function new() {
 	}
 	override function get( x = 7 ) {

+ 1 - 1
tests/unit/TestSpecification.hx

@@ -25,7 +25,7 @@ typedef T = {
 
 class CChild extends C { }
 
-class CDyn extends C, implements Dynamic { }
+class CDyn extends C implements Dynamic { }
 
 private class EmptyClass {
 	public function new() { }

+ 11 - 4
typeload.ml

@@ -775,10 +775,15 @@ let set_heritance ctx c herits p =
 			| TInst (csup,params) ->
 				csup.cl_build();
 				if is_parent c csup then error "Recursive class" p;
-				if c.cl_interface then error "Cannot extend an interface" p;
-				if csup.cl_interface then error "Cannot extend by using an interface" p;
 				process_meta csup;
-				c.cl_super <- Some (csup,params)
+				(* interface extends are listed in cl_implements ! *)
+				if c.cl_interface then begin
+					if not csup.cl_interface then error "Cannot extend by using a class" p;
+					c.cl_implements <- (csup,params) :: c.cl_implements
+				end else begin
+					if csup.cl_interface then error "Cannot extend by using an interface" p;
+					c.cl_super <- Some (csup,params)
+				end
 			| _ -> error "Should extend by using a class" p)
 		| HImplements t ->
 			let t = load_instance ctx t p false in
@@ -789,6 +794,8 @@ let set_heritance ctx c herits p =
 			| TInst (intf,params) ->
 				intf.cl_build();
 				if is_parent c intf then error "Recursive class" p;
+				if c.cl_interface then error "Interfaces cannot implements another interface (use extends instead)" p;
+				if not intf.cl_interface then error "You can only implements an interface" p;
 				process_meta intf;
 				c.cl_implements <- (intf, params) :: c.cl_implements;
 				if not !has_interf then begin
@@ -798,7 +805,7 @@ let set_heritance ctx c herits p =
 			| TDynamic t ->
 				if c.cl_dynamic <> None then error "Cannot have several dynamics" p;
 				c.cl_dynamic <- Some t
-			| _ -> error "Should implement by using an interface or a class" p)
+			| _ -> error "Should implement by using an interface" p)
 	in
 	(*
 		resolve imports before calling build_inheritance, since it requires full paths.

Някои файлове не бяха показани, защото твърде много файлове са промени