Update Files

This commit is contained in:
2025-01-22 16:18:30 +01:00
parent ed4603cf95
commit a36294b518
16718 changed files with 2960346 additions and 0 deletions

View File

@ -0,0 +1,246 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
import js.Syntax; // import it here so it's always available in the compiler
@:dox(hide)
class Boot {
static inline function isClass(o:Dynamic):Bool {
return untyped __define_feature__("js.Boot.isClass", o.__name__);
}
static inline function isInterface(o:Class<Dynamic>):Bool {
return untyped __define_feature__("js.Boot.isInterface", o.__isInterface__);
}
static inline function isEnum(e:Dynamic):Bool {
return untyped __define_feature__("js.Boot.isEnum", e.__ename__);
}
@:pure static function getClass(o:Null<Dynamic>):Null<Dynamic> {
if (o == null) {
return null;
} else if (Std.isOfType(o, Array)) {
return Array;
} else {
var cl = untyped __define_feature__("js.Boot.getClass", o.__class__);
if (cl != null)
return cl;
var name = __nativeClassName(o);
if (name != null)
return __resolveNativeClass(name);
return null;
}
}
@:ifFeature("has_enum")
private static function __string_rec(o, s:String) {
untyped {
if (o == null)
return "null";
if (s.length >= 5)
return "<...>"; // too much deep recursion
var t = js.Syntax.typeof(o);
if (t == "function" && (isClass(o) || isEnum(o)))
t = "object";
switch (t) {
case "object":
#if !js_enums_as_arrays
__feature__("has_enum", if (o.__enum__) {
var e = $hxEnums[o.__enum__];
var con = e.__constructs__[o._hx_index];
var n = con._hx_name;
if (con.__params__) {
s += "\t";
return n + "(" + [for (p in (con.__params__ : Array<String>)) __string_rec(o[p], s)].join(",") + ")";
} else {
return n;
}
});
#end
if (js.Syntax.instanceof(o, Array)) {
#if js_enums_as_arrays
__feature__("has_enum", if (o.__enum__) {
if (o.length == 2)
return o[0];
var str = o[0] + "(";
s += "\t";
for (i in 2...o.length) {
if (i != 2)
str += "," + __string_rec(o[i], s);
else
str += __string_rec(o[i], s);
}
return str + ")";
});
#end
var str = "[";
s += "\t";
for (i in 0...o.length)
str += (if (i > 0) "," else "") + __string_rec(o[i], s);
str += "]";
return str;
}
var tostr;
try {
tostr = untyped o.toString;
} catch (e:Dynamic) {
// strange error on IE
return "???";
}
if (tostr != null && tostr != js.Syntax.code("Object.toString") && js.Syntax.typeof(tostr) == "function") {
var s2 = o.toString();
if (s2 != "[object Object]")
return s2;
}
var str = "{\n";
s += "\t";
var hasp = (o.hasOwnProperty != null);
var k:String = null;
js.Syntax.code("for( {0} in {1} ) {", k, o);
if (hasp && !o.hasOwnProperty(k))
js.Syntax.code("continue");
if (k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__")
js.Syntax.code("continue");
if (str.length != 2)
str += ", \n";
str += s + k + " : " + __string_rec(o[k], s);
js.Syntax.code("}");
s = s.substring(1);
str += "\n" + s + "}";
return str;
case "function":
return "<function>";
case "string":
return o;
default:
return String(o);
}
}
}
@:pure private static function __interfLoop(cc:Dynamic, cl:Dynamic) {
if (cc == null)
return false;
if (cc == cl)
return true;
var intf:Dynamic = cc.__interfaces__;
if (intf != null
// ES6 classes inherit statics, so we want to avoid accessing inherited `__interfaces__`
#if (js_es >= 6) && (cc.__super__ == null || cc.__super__.__interfaces__ != intf) #end
) {
for (i in 0...intf.length) {
var i:Dynamic = intf[i];
if (i == cl || __interfLoop(i, cl))
return true;
}
}
return __interfLoop(cc.__super__, cl);
}
@:pure private static function __instanceof(o:Dynamic, cl:Dynamic) {
if (cl == null)
return false;
switch (cl) {
case Int:
return js.Syntax.typeof(o) == "number" && js.Syntax.strictEq(o | 0, o);
case Float:
return js.Syntax.typeof(o) == "number";
case Bool:
return js.Syntax.typeof(o) == "boolean";
case String:
return js.Syntax.typeof(o) == "string";
case Array:
return js.Syntax.instanceof(o, Array) #if js_enums_as_arrays && o.__enum__ == null #end;
case Dynamic:
return o != null;
default:
if (o != null) {
// Check if o is an instance of a Haxe class or a native JS object
if (js.Syntax.typeof(cl) == "function") {
if (__downcastCheck(o, cl))
return true;
} else if (js.Syntax.typeof(cl) == "object" && __isNativeObj(cl)) {
if (js.Syntax.instanceof(o, cl))
return true;
}
} else {
return false;
}
// do not use isClass/isEnum here
untyped __feature__("Class.*", if (cl == Class && o.__name__ != null) return true);
untyped __feature__("Enum.*", if (cl == Enum && o.__ename__ != null) return true);
#if js_enums_as_arrays
return o.__enum__ == cl;
#else
return untyped __feature__(
"has_enum",
if (o.__enum__ != null) ($hxEnums[o.__enum__]) == cl else false,
false
);
#end
}
}
static function __downcastCheck(o:Dynamic, cl:Class<Dynamic>):Bool {
return js.Syntax.instanceof(o, cl) || (isInterface(cl) && inline __implements(o, cl));
}
static function __implements(o:Dynamic, iface:Class<Dynamic>):Bool {
return __interfLoop(getClass(o), iface);
}
@:ifFeature("typed_cast") private static function __cast(o:Dynamic, t:Dynamic) {
if (o == null || __instanceof(o, t))
return o;
else
throw "Cannot cast " + Std.string(o) + " to " + Std.string(t);
}
static var __toStr:js.lib.Function;
static function __init__() {
Boot.__toStr = (cast {}).toString;
}
// get native JS [[Class]]
static function __nativeClassName(o:Dynamic):String {
var name:String = __toStr.call(o).slice(8, -1);
// exclude general Object and Function
// also exclude Math and JSON, because instanceof cannot be called on them
if (name == "Object" || name == "Function" || name == "Math" || name == "JSON")
return null;
return name;
}
// check for usable native JS object
static function __isNativeObj(o:Dynamic):Bool {
return __nativeClassName(o) != null;
}
// resolve native JS class in the global scope:
static function __resolveNativeClass(name:String) {
return js.Lib.global[cast name];
}
}

View File

@ -0,0 +1,137 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
import js.html.Storage;
import js.html.XMLHttpRequest;
class Browser {
/** The global scope typed with fields available only in a worker context. */
public static var self(get, never):js.html.WorkerGlobalScope;
static inline function get_self():js.html.WorkerGlobalScope {
return js.Lib.global;
}
/** The global window object. */
public static var window(get, never):js.html.Window;
extern inline static function get_window()
return js.Syntax.code("window");
/** Shortcut to Window.document. */
public static var document(get, never):js.html.HTMLDocument;
extern inline static function get_document()
return window.document;
/** Shortcut to Window.location. */
public static var location(get, never):js.html.Location;
extern inline static function get_location()
return js.Lib.global.location;
/** Shortcut to Window.navigator. */
public static var navigator(get, never):js.html.Navigator;
extern inline static function get_navigator()
return js.Lib.global.navigator;
/** Shortcut to Window.console. */
public static var console(get, never):js.html.ConsoleInstance;
extern inline static function get_console()
return js.Lib.global.console;
/**
* True if a window object exists, false otherwise.
*
* This can be used to check if the code is being executed in a non-browser
* environment such as node.js.
*/
public static var supported(get, never):Bool;
static function get_supported()
return
js.Syntax.typeof(window) != "undefined" &&
js.Syntax.typeof(window.location) != "undefined" &&
js.Syntax.typeof(window.location.protocol) == "string";
/**
* Safely gets the browser's local storage, or returns null if localStorage is unsupported or
* disabled.
*/
public static function getLocalStorage():Null<Storage> {
try {
var s = window.localStorage;
s.getItem("");
if (s.length == 0) {
var key = "_hx_" + Math.random();
s.setItem(key, key);
s.removeItem(key);
}
return s;
} catch (e:Dynamic) {
return null;
}
}
/**
* Safely gets the browser's session storage, or returns null if sessionStorage is unsupported
* or disabled.
*/
public static function getSessionStorage():Storage {
try {
var s = window.sessionStorage;
s.getItem("");
if (s.length == 0) {
var key = "_hx_" + Math.random();
s.setItem(key, key);
s.removeItem(key);
}
return s;
} catch (e:Dynamic) {
return null;
}
}
/**
* Creates an XMLHttpRequest, with a fallback to ActiveXObject for ancient versions of Internet
* Explorer.
*/
public static function createXMLHttpRequest():XMLHttpRequest {
if (js.Syntax.code("typeof XMLHttpRequest") != "undefined") {
return new XMLHttpRequest();
}
if (js.Syntax.code("typeof ActiveXObject") != "undefined") {
return js.Syntax.construct("ActiveXObject", "Microsoft.XMLHTTP");
}
throw "Unable to create XMLHttpRequest object.";
}
/**
Display an alert message box containing the given message. See also `Window.alert()`.
**/
public static inline function alert(v:Dynamic) {
window.alert(Std.string(v));
}
}

View File

@ -0,0 +1,83 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
import Date;
class Cookie {
/**
Create or update a cookie.
@param expireDelay In seconds. If null, the cookie expires at end of session.
**/
public static function set(name:String, value:String, ?expireDelay:Int, ?path:String, ?domain:String) {
var s = name + "=" + StringTools.urlEncode(value);
if (expireDelay != null) {
var d = DateTools.delta(Date.now(), expireDelay * 1000);
s += ";expires=" + untyped d.toGMTString();
}
if (path != null) {
s += ";path=" + path;
}
if (domain != null) {
s += ";domain=" + domain;
}
Browser.document.cookie = s;
}
/**
Returns all cookies.
**/
public static function all() {
var h = new haxe.ds.StringMap();
var a = Browser.document.cookie.split(";");
for (e in a) {
e = StringTools.ltrim(e);
var t = e.split("=");
if (t.length < 2)
continue;
h.set(t[0], StringTools.urlDecode(t[1]));
}
return h;
}
/**
Returns value of a cookie.
**/
public static function get(name:String) {
return all().get(name);
}
/**
Returns true if a cookie `name` exists.
**/
public static function exists(name:String) {
return all().exists(name);
}
/**
Remove a cookie.
**/
public static function remove(name:String, ?path:String, ?domain:String) {
set(name, "", -10, path, domain);
}
}

View File

@ -0,0 +1,31 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
@:deprecated typedef Error = js.lib.Error;
@:deprecated typedef EvalError = js.lib.Error.EvalError;
@:deprecated typedef RangeError = js.lib.Error.RangeError;
@:deprecated typedef ReferenceError = js.lib.Error.ReferenceError;
@:deprecated typedef SyntaxError = js.lib.Error.SyntaxError;
@:deprecated typedef TypeError = js.lib.Error.TypeError;
@:deprecated typedef URIError = js.lib.Error.URIError;

View File

@ -0,0 +1,25 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
@:deprecated typedef Function = js.lib.Function;

View File

@ -0,0 +1,26 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
@:deprecated typedef JsIterator<T> = js.lib.Iterator<T>;
@:deprecated typedef JsIteratorStep<T> = js.lib.Iterator.IteratorStep<T>;

View File

@ -0,0 +1,153 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
/**
Platform-specific JavaScript Library. Provides some platform-specific functions
for the JavaScript target.
**/
class Lib {
/**
Inserts a 'debugger' statement that will make a breakpoint if a debugger is available.
**/
public static inline function debug() {
js.Syntax.code("debugger");
}
/**
Display an alert message box containing the given message.
@deprecated Use Browser.alert() instead.
**/
@:deprecated("Lib.alert() is deprecated, use Browser.alert() instead")
public static function alert(v:Dynamic) {
js.Syntax.code("alert")(@:privateAccess js.Boot.__string_rec(v, ""));
}
public static inline function eval(code:String):Dynamic {
return js.Syntax.code("eval")(code);
}
/**
Inserts a `require` expression that loads JavaScript object from
a module or file specified in the `module` argument.
This is only supported in environments where `require` function
is available, such as Node.js or RequireJS.
**/
extern public static inline function require(module:String):Dynamic {
return js.Syntax.code("require")(module);
}
/**
Native JavaScript `parseInt` function.
Its specification is different from `Std.parseInt`, so one
might want to access the native one.
**/
public static var parseInt(get, never):(string:String, ?radix:Int) -> Float;
extern static inline function get_parseInt():(string:String, ?radix:Int) -> Float {
return js.Syntax.code("parseInt");
}
/**
Returns JavaScript `undefined` value.
Note that this is only needed in very rare cases when working with external JavaScript code.
In Haxe, `null` is used to represent the absence of a value.
**/
public static var undefined(get, never):Dynamic;
static inline function get_undefined():Dynamic {
return js.Syntax.code("undefined");
}
/**
`nativeThis` is the JavaScript `this`, which is semantically different
from the Haxe `this`. Use `nativeThis` only when working with external
JavaScript code.
In Haxe, `this` is always bound to a class instance.
In JavaScript, `this` in a function can be bound to an arbitrary
variable when the function is called using `func.call(thisObj, ...)` or
`func.apply(thisObj, [...])`.
Read more at https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this
**/
public static var nativeThis(get, never):Dynamic;
extern static inline function get_nativeThis():Dynamic {
return js.Syntax.code("this");
}
/**
Call JavaScript `typeof` operator on the `o` value
and return a string representing the JavaScript type of a value.
Read more at https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof
**/
extern public static inline function typeof(o:Dynamic):String {
return js.Syntax.typeof(o);
}
/**
An alias of the JS "global" object.
Concretely, it is set as the first defined value in the list of
`window`, `global`, `self`, and `this` in the top-level of the compiled output.
**/
public static var global(get, never):Dynamic;
extern static inline function get_global():Dynamic {
return untyped __define_feature__("js.Lib.global", js.Syntax.code("$global")); // $global is generated by the compiler
}
/**
Re-throw last cathed exception, preserving original stack information.
Calling this is only possible inside a catch statement.
**/
@:pure(false) public static function rethrow() {
// function is implemented in the compiler
}
/**
Get original caught exception object, before unwrapping the `js.Boot.HaxeError`.
Can be useful if we want to redirect the original error into some external API (e.g. Promise or node.js callbacks).
Calling this is only possible inside a catch statement.
**/
public static function getOriginalException():Dynamic {
return null; // function is implemented in the compiler
}
/**
Generate next unique id
**/
@:allow(haxe.ds.ObjectMap.assignId)
static inline function getNextHaxeUID():Int {
return js.Syntax.code("{0}.$haxeUID++", untyped __define_feature__("$global.$haxeUID", global));
}
}

View File

@ -0,0 +1,27 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
@:deprecated typedef Object = js.lib.Object;
@:deprecated typedef ObjectPrototype = js.lib.Object.ObjectPrototype;
@:deprecated typedef ObjectPropertyDescriptor = js.lib.Object.ObjectPropertyDescriptor;

View File

@ -0,0 +1,28 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
@:deprecated typedef Promise<T> = js.lib.Promise<T>;
@:deprecated typedef PromiseHandler<T, TOut> = js.lib.Promise.PromiseHandler<T, TOut>;
@:deprecated typedef Thenable<T> = js.lib.Promise.Thenable<T>;
@:deprecated typedef ThenableStruct<T> = js.lib.Promise.ThenableStruct<T>;

View File

@ -0,0 +1,26 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
@:deprecated typedef RegExp = js.lib.RegExp;
@:deprecated typedef RegExpMatch = js.lib.RegExp.RegExpMatch;

View File

@ -0,0 +1,101 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
import js.html.TextAreaElement;
class Selection {
var doc:Dynamic;
public function new(doc:TextAreaElement) {
this.doc = doc;
}
public function get() {
// Mozilla
if (doc.selectionStart != null)
return doc.value.substring(doc.selectionStart, doc.selectionEnd);
// IE
var range = untyped js.Lib.document.selection.createRange();
if (range.parentElement() != doc)
return "";
return range.text;
}
public function select(start:Int, end:Int) {
doc.focus();
// Mozilla
if (doc.selectionStart != null) {
doc.selectionStart = start;
doc.selectionEnd = end;
return;
}
// FIX : IE count \r\n as one single char for selection
// operations, we must then deal with it
var value:String = doc.value;
var p = 0, delta = 0;
while (true) {
var i = value.indexOf("\r\n", p);
if (i < 0 || i > start)
break;
delta++;
p = i + 2;
}
start -= delta;
while (true) {
var i = value.indexOf("\r\n", p);
if (i < 0 || i > end)
break;
delta++;
p = i + 2;
}
end -= delta;
// IE
var r = doc.createTextRange();
r.moveEnd('textedit', -1);
r.moveStart('character', start);
r.moveEnd('character', end - start);
r.select();
}
public function insert(left:String, text:String, right:String) {
doc.focus();
// Mozilla
if (doc.selectionStart != null) {
var top = doc.scrollTop;
var start = doc.selectionStart;
var end = doc.selectionEnd;
doc.value = doc.value.substr(0, start) + left + text + right + doc.value.substr(end);
doc.selectionStart = start + left.length;
doc.selectionEnd = start + left.length + text.length;
doc.scrollTop = top;
return;
}
// IE
var range = untyped js.Lib.document.selection.createRange();
range.text = left + text + right;
range.moveStart('character', -text.length - right.length);
range.moveEnd('character', -right.length);
range.select();
}
}

View File

@ -0,0 +1,25 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
@:deprecated typedef Set<T> = js.lib.Set<T>;

View File

@ -0,0 +1,25 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
@:deprecated typedef Symbol = js.lib.Symbol;

View File

@ -0,0 +1,94 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js;
import haxe.extern.Rest;
/**
Generate JavaScript syntax not directly supported by Haxe.
Use only at low-level when specific target-specific code-generation is required.
**/
@:noClosure
extern class Syntax {
/**
Inject `code` directly into generated source.
`code` must be a string constant.
Additional `args` are supported to provide code interpolation, for example:
```haxe
Syntax.code("console.log({0}, {1})", "hi", 42);
```
will generate
```haxe
console.log("hi", 42);
```
Emits a compilation error if the count of `args` does not match the count of placeholders in `code`.
**/
static function code(code:String, args:Rest<Dynamic>):Dynamic;
/**
Inject `code` directly into generated source.
The same as `js.Syntax.code` except this one does not provide code interpolation.
**/
static function plainCode(code:String):Dynamic;
/**
Generate `new cl(...args)` expression.
**/
@:overload(function(cl:String, args:Rest<Dynamic>):Dynamic {})
static function construct<T>(cl:Class<T>, args:Rest<Dynamic>):T;
/**
Generate `v instanceof cl` expression.
**/
@:pure static function instanceof(v:Dynamic, cl:Class<Dynamic>):Bool;
/**
Generate `typeof o` expression.
**/
@:pure static function typeof(o:Dynamic):String;
/**
Genearte `a === b` expression.
**/
@:pure static function strictEq(a:Dynamic, b:Dynamic):Bool;
/**
Genearte `a !== b` expression.
**/
@:pure static function strictNeq(a:Dynamic, b:Dynamic):Bool;
/**
Generate `delete o[f]` expression.
**/
@:overload(function(o:Dynamic, f:Int):Bool {})
static function delete(o:Dynamic, f:String):Bool;
/**
Generate `o.f` expression, if `f` is a constant string,
or `o[f]` if it's any other expression.
**/
static function field(o:Dynamic, f:String):Dynamic;
}

View File

@ -0,0 +1,99 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
import haxe.iterators.ArrayKeyValueIterator;
@:coreApi
extern class Array<T> {
var length(default, null):Int;
function new():Void;
function concat(a:Array<T>):Array<T>;
function join(sep:String):String;
function pop():Null<T>;
function push(x:T):Int;
function reverse():Void;
function shift():Null<T>;
function slice(pos:Int, ?end:Int):Array<T>;
function sort(f:T->T->Int):Void;
function splice(pos:Int, len:Int):Array<T>;
function toString():String;
function unshift(x:T):Void;
inline function insert(pos:Int, x:T):Void {
(cast this).splice(pos, 0, x);
}
inline function remove(x:T):Bool {
return @:privateAccess HxOverrides.remove(this, x);
}
inline function contains(x:T):Bool {
#if (js_es >= 6)
return (cast this).includes(x);
#else
return this.indexOf(x) != -1;
#end
}
#if (js_es >= 5)
@:pure function indexOf(x:T, ?fromIndex:Int):Int;
@:pure function lastIndexOf(x:T, ?fromIndex:Int):Int;
#else
inline function indexOf(x:T, ?fromIndex:Int):Int {
return @:privateAccess HxOverrides.indexOf(this, x, (fromIndex != null) ? fromIndex : 0);
}
inline function lastIndexOf(x:T, ?fromIndex:Int):Int {
return @:privateAccess HxOverrides.lastIndexOf(this, x, (fromIndex != null) ? fromIndex : length - 1);
}
#end
@:pure
inline function copy():Array<T> {
return (cast this).slice();
}
@:runtime inline function map<S>(f:T->S):Array<S> {
var result:Array<S> = js.Syntax.construct(Array, length);
for(i in 0...length) {
result[i] = f(this[i]);
}
return result;
}
@:runtime inline function filter(f:T->Bool):Array<T> {
return [for (v in this) if (f(v)) v];
}
@:runtime inline function iterator():haxe.iterators.ArrayIterator<T> {
return new haxe.iterators.ArrayIterator(this);
}
@:runtime inline function keyValueIterator():ArrayKeyValueIterator<T> {
return new ArrayKeyValueIterator(this);
}
inline function resize(len:Int):Void {
this.length = len;
}
}

View File

@ -0,0 +1,57 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
@:coreApi extern class Date {
@:pure function new(year:Int, month:Int, day:Int, hour:Int, min:Int, sec:Int):Void;
@:pure function getTime():Float;
@:pure function getHours():Int;
@:pure function getMinutes():Int;
@:pure function getSeconds():Int;
@:pure function getFullYear():Int;
@:pure function getMonth():Int;
@:pure function getDate():Int;
@:pure function getDay():Int;
@:pure function getUTCHours():Int;
@:pure function getUTCMinutes():Int;
@:pure function getUTCSeconds():Int;
@:pure function getUTCFullYear():Int;
@:pure function getUTCMonth():Int;
@:pure function getUTCDate():Int;
@:pure function getUTCDay():Int;
@:pure function getTimezoneOffset():Int;
@:pure inline function toString():String {
return @:privateAccess HxOverrides.dateStr(this);
}
@:pure static inline function now():Date {
return js.Syntax.construct(Date);
}
@:pure static inline function fromTime(t:Float):Date {
return js.Syntax.construct(Date, t);
}
@:pure static inline function fromString(s:String):Date {
return @:privateAccess HxOverrides.strDate(s);
}
}

View File

@ -0,0 +1,125 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
@:coreApi class EReg {
var r:HaxeRegExp;
public inline function new(r:String, opt:String):Void {
this.r = new HaxeRegExp(r, opt.split("u").join("")); // 'u' (utf8) depends on page encoding
}
public function match(s:String):Bool {
if (r.global)
r.lastIndex = 0;
r.m = r.exec(s);
r.s = s;
return (r.m != null);
}
public function matched(n:Int):String {
return if (r.m != null && n >= 0 && n < r.m.length) r.m[n] else throw "EReg::matched";
}
public function matchedLeft():String {
if (r.m == null)
throw "No string matched";
return r.s.substr(0, r.m.index);
}
public function matchedRight():String {
if (r.m == null)
throw "No string matched";
var sz = r.m.index + r.m[0].length;
return r.s.substr(sz, r.s.length - sz);
}
public function matchedPos():{pos:Int, len:Int} {
if (r.m == null)
throw "No string matched";
return {pos: r.m.index, len: r.m[0].length};
}
public function matchSub(s:String, pos:Int, len:Int = -1):Bool {
return if (r.global) {
r.lastIndex = pos;
r.m = r.exec(len < 0 ? s : s.substr(0, pos + len));
var b = r.m != null;
if (b) {
r.s = s;
}
b;
} else {
// TODO: check some ^/$ related corner cases
var b = match(len < 0 ? s.substr(pos) : s.substr(pos, len));
if (b) {
r.s = s;
r.m.index += pos;
}
b;
}
}
public function split(s:String):Array<String> {
// we can't use directly s.split because it's ignoring the 'g' flag
var d = "#__delim__#";
return replace(s, d).split(d);
}
public inline function replace(s:String, by:String):String {
return (cast s).replace(r, by);
}
public function map(s:String, f:EReg->String):String {
var offset = 0;
var buf = new StringBuf();
do {
if (offset >= s.length)
break;
else if (!matchSub(s, offset)) {
buf.add(s.substr(offset));
break;
}
var p = matchedPos();
buf.add(s.substr(offset, p.pos - offset));
buf.add(f(this));
if (p.len == 0) {
buf.add(s.substr(p.pos, 1));
offset = p.pos + 1;
} else
offset = p.pos + p.len;
} while (r.global);
if (!r.global && offset > 0 && offset < s.length)
buf.add(s.substr(offset));
return buf.toString();
}
public static inline function escape(s:String):String {
return (cast s).replace(escapeRe, "\\$&");
}
static var escapeRe = new js.lib.RegExp("[.*+?^${}()|[\\]\\\\]", "g");
}
@:native("RegExp")
private extern class HaxeRegExp extends js.lib.RegExp {
var m:js.lib.RegExp.RegExpMatch;
var s:String;
}

View File

@ -0,0 +1,164 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
@:noDoc
class HxOverrides {
static function dateStr(date:Date):String {
var m = date.getMonth() + 1;
var d = date.getDate();
var h = date.getHours();
var mi = date.getMinutes();
var s = date.getSeconds();
return date.getFullYear() + "-" + (if (m < 10) "0" + m else "" + m) + "-" + (if (d < 10) "0" + d else "" + d) + " "
+ (if (h < 10) "0" + h else "" + h) + ":" + (if (mi < 10) "0" + mi else "" + mi) + ":" + (if (s < 10) "0" + s else "" + s);
}
static function strDate(s:String):Date {
switch (s.length) {
case 8: // hh:mm:ss
var k = s.split(":");
var d = js.Syntax.construct(Date);
(cast d)[cast "setTime"](0);
(cast d)[cast "setUTCHours"](k[0]);
(cast d)[cast "setUTCMinutes"](k[1]);
(cast d)[cast "setUTCSeconds"](k[2]);
return d;
case 10: // YYYY-MM-DD
var k = s.split("-");
return new Date(cast k[0], (cast k[1]) - 1, cast k[2], 0, 0, 0);
case 19: // YYYY-MM-DD hh:mm:ss
var k = s.split(" ");
var y = k[0].split("-");
var t = k[1].split(":");
return new Date(cast y[0], (cast y[1]) - 1, cast y[2], cast t[0], cast t[1], cast t[2]);
default:
throw "Invalid date format : " + s;
}
}
@:pure
static function cca(s:String, index:Int):Null<Int> {
var x = (cast s).charCodeAt(index);
if (x != x) // fast isNaN
return js.Lib.undefined; // isNaN will still return true
return x;
}
@:pure
static function substr(s:String, pos:Int, ?len:Int):String {
if (len == null) {
len = s.length;
} else if (len < 0) {
if (pos == 0)
len = s.length + len;
else
return "";
}
#if (js_es < 5)
if (pos < 0) {
pos = s.length + pos;
if (pos < 0)
pos = 0;
}
#end
return (cast s).substr(pos, len);
}
@:pure
static function indexOf<T>(a:Array<T>, obj:T, i:Int) {
var len = a.length;
if (i < 0) {
i += len;
if (i < 0)
i = 0;
}
while (i < len) {
if (js.Syntax.strictEq(a[i], obj))
return i;
i++;
}
return -1;
}
@:pure
static function lastIndexOf<T>(a:Array<T>, obj:T, i:Int) {
var len = a.length;
if (i >= len)
i = len - 1;
else if (i < 0)
i += len;
while (i >= 0) {
if (js.Syntax.strictEq(a[i], obj))
return i;
i--;
}
return -1;
}
static function remove<T>(a:Array<T>, obj:T) {
var i = a.indexOf(obj);
if (i == -1)
return false;
a.splice(i, 1);
return true;
}
@:pure
static function iter<T>(a:Array<T>):Iterator<T>
untyped {
return {
cur: 0,
arr: a,
hasNext: function() {
return __this__.cur < __this__.arr.length;
},
next: function() {
return __this__.arr[__this__.cur++];
}
};
}
@:ifFeature("anon_read.keyValueIterator", "dynamic_read.keyValueIterator", "closure_read.keyValueIterator")
static function keyValueIter<T>( a : Array<T> ) {
return new haxe.iterators.ArrayKeyValueIterator(a);
}
@:pure
static function now(): Float return js.lib.Date.now();
static function __init__()
untyped {
#if (js_es < 5)
__feature__('HxOverrides.indexOf',
if (Array.prototype.indexOf) js.Syntax.code("HxOverrides").indexOf = function(a, o, i) return Array.prototype.indexOf.call(a, o, i));
__feature__('HxOverrides.lastIndexOf',
if (Array.prototype.lastIndexOf) js.Syntax.code("HxOverrides").lastIndexOf = function(a, o, i) return Array.prototype.lastIndexOf.call(a, o, i));
#end
__feature__('HxOverrides.now',
if (js.Syntax.typeof(performance) != 'undefined' && js.Syntax.typeof(performance.now) == 'function') {
HxOverrides.now = performance.now.bind(performance);
}
);
}
}

View File

@ -0,0 +1,87 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
import js.Syntax.code;
// Can't enable @:coreApi because some fields are now inline getters
// @:coreApi
@:keepInit
extern class Math {
static var PI(default, null):Float;
static var NEGATIVE_INFINITY(get, null):Float;
@:pure private static inline function get_NEGATIVE_INFINITY():Float {
return -code("Infinity");
}
static var POSITIVE_INFINITY(get, null):Float;
@:pure private static inline function get_POSITIVE_INFINITY():Float {
return code("Infinity");
}
static var NaN(get, null):Float;
@:pure private static inline function get_NaN():Float {
return code("NaN");
}
@:pure static function abs(v:Float):Float;
@:pure static function acos(v:Float):Float;
@:pure static function asin(v:Float):Float;
@:pure static function atan(v:Float):Float;
@:pure static function atan2(y:Float, x:Float):Float;
@:pure static function ceil(v:Float):Int;
@:pure static function cos(v:Float):Float;
@:pure static function exp(v:Float):Float;
@:pure static function floor(v:Float):Int;
@:pure static function log(v:Float):Float;
@:pure static function max(a:Float, b:Float):Float;
@:pure static function min(a:Float, b:Float):Float;
@:pure static function pow(v:Float, exp:Float):Float;
static function random():Float;
@:pure static function round(v:Float):Int;
@:pure static function sin(v:Float):Float;
@:pure static function sqrt(v:Float):Float;
@:pure static function tan(v:Float):Float;
@:pure static inline function ffloor(v:Float):Float {
return floor(v);
}
@:pure static inline function fceil(v:Float):Float {
return ceil(v);
}
@:pure static inline function fround(v:Float):Float {
return round(v);
}
@:pure static inline function isFinite(f:Float):Bool {
return code("isFinite")(f);
}
@:pure static inline function isNaN(f:Float):Bool {
return code("isNaN")(f);
}
static function __init__():Void {
untyped __feature__("Type.resolveClass", $hxClasses["Math"] = Math);
}
}

View File

@ -0,0 +1,126 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
@:coreApi class Reflect {
@:pure
public inline static function hasField(o:Dynamic, field:String):Bool {
return js.lib.Object.prototype.hasOwnProperty.call(o, field);
}
@:pure
public static function field(o:Dynamic, field:String):Dynamic {
try
return o[cast field]
catch (e:Dynamic)
return null;
}
public inline static function setField(o:Dynamic, field:String, value:Dynamic):Void {
o[cast field] = value;
}
public static function getProperty(o:Dynamic, field:String):Dynamic
untyped {
var tmp;
return if (o == null) __define_feature__("Reflect.getProperty",
null) else if (o.__properties__ && (tmp = o.__properties__["get_" + field])) o[tmp]() else o[field];
}
public static function setProperty(o:Dynamic, field:String, value:Dynamic):Void
untyped {
var tmp;
if (o.__properties__ && (tmp = o.__properties__["set_" + field]))
o[tmp](value)
else
o[field] = __define_feature__("Reflect.setProperty", value);
}
public inline static function callMethod(o:Dynamic, func:haxe.Constraints.Function, args:Array<Dynamic>):Dynamic {
return (cast func : js.lib.Function).apply(o, args);
}
public static function fields(o:Dynamic):Array<String> {
var a = [];
if (o != null)
untyped {
var hasOwnProperty = js.lib.Object.prototype.hasOwnProperty;
js.Syntax.code("for( var f in o ) {");
if (f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o, f))
a.push(f);
js.Syntax.code("}");
}
return a;
}
@:access(js.Boot)
public static function isFunction(f:Dynamic):Bool {
return js.Syntax.typeof(f) == "function" && !(js.Boot.isClass(f) || js.Boot.isEnum(f));
}
public static function compare<T>(a:T, b:T):Int {
return (a == b) ? 0 : (((cast a) > (cast b)) ? 1 : -1);
}
public static function compareMethods(f1:Dynamic, f2:Dynamic):Bool {
if (f1 == f2)
return true;
if (!isFunction(f1) || !isFunction(f2))
return false;
return f1.scope == f2.scope && f1.method == f2.method && f1.method != null;
}
@:access(js.Boot)
public static function isObject(v:Dynamic):Bool {
if (v == null)
return false;
var t = js.Syntax.typeof(v);
return (t == "string" || (t == "object" && v.__enum__ == null))
|| (t == "function" && (js.Boot.isClass(v) || js.Boot.isEnum(v)) != null);
}
public static function isEnumValue(v:Dynamic):Bool {
return v != null && v.__enum__ != null;
}
public static function deleteField(o:Dynamic, field:String):Bool {
if (!hasField(o, field))
return false;
js.Syntax.delete(o, field);
return true;
}
public static function copy<T>(o:Null<T>):Null<T> {
if (o == null)
return null;
var o2:Dynamic = {};
for (f in Reflect.fields(o))
Reflect.setField(o2, f, Reflect.field(o, f));
return o2;
}
@:overload(function(f:Array<Dynamic>->Void):Dynamic {})
public static function makeVarArgs(f:Array<Dynamic>->Dynamic):Dynamic {
return function() {
var a = untyped Array.prototype.slice.call(js.Syntax.code("arguments"));
return f(a);
};
}
}

View File

@ -0,0 +1,113 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
import js.Boot;
import js.Syntax;
@:keepInit
@:coreApi class Std {
@:deprecated('Std.is is deprecated. Use Std.isOfType instead.')
public static inline function is(v:Dynamic, t:Dynamic):Bool {
return isOfType(v, t);
}
public static inline function isOfType(v:Dynamic, t:Dynamic):Bool {
return @:privateAccess js.Boot.__instanceof(v, t);
}
public static inline function downcast<T:{}, S:T>(value:T, c:Class<S>):S@:privateAccess {
return if (js.Boot.__downcastCheck(value, c)) cast value else null;
}
@:deprecated('Std.instance() is deprecated. Use Std.downcast() instead.')
public static inline function instance<T:{}, S:T>(value:T, c:Class<S>):S {
return downcast(value, c);
}
@:pure
public static function string(s:Dynamic):String {
return @:privateAccess js.Boot.__string_rec(s, "");
}
public static inline function int(x:Float):Int {
return (cast x) | 0;
}
@:pure
public static function parseInt(x:String):Null<Int> {
if(x != null) {
for(i in 0...x.length) {
var c = StringTools.fastCodeAt(x, i);
if(c <= 8 || (c >= 14 && c != ' '.code && c != '-'.code)) {
var nc = StringTools.fastCodeAt(x, i + 1);
var v = js.Lib.parseInt(x, (nc == "x".code || nc == "X".code) ? 16 : 10);
return Math.isNaN(v) ? null : cast v;
}
}
}
return null;
}
public static inline function parseFloat(x:String):Float {
return js.Syntax.code("parseFloat({0})", x);
}
public static function random(x:Int):Int {
return x <= 0 ? 0 : Math.floor(Math.random() * x);
}
static function __init__():Void
untyped {
__feature__("js.Boot.getClass", String.prototype.__class__ = __feature__("Type.resolveClass", $hxClasses["String"] = String, String));
__feature__("js.Boot.isClass", String.__name__ = __feature__("Type.getClassName", "String", true));
__feature__("Type.resolveClass", $hxClasses["Array"] = Array);
__feature__("js.Boot.isClass", Array.__name__ = __feature__("Type.getClassName", "Array", true));
__feature__("Date.*", {
__feature__("js.Boot.getClass",
js.Syntax.code('Date').prototype.__class__ = __feature__("Type.resolveClass", $hxClasses["Date"] = js.Syntax.code('Date'), js.Syntax.code('Date')));
__feature__("js.Boot.isClass", js.Syntax.code('Date').__name__ = "Date");
});
__feature__("Int.*", js.Syntax.code('var Int = { };'));
__feature__("Dynamic.*", js.Syntax.code('var Dynamic = { };'));
__feature__("Float.*", js.Syntax.code('var Float = Number'));
__feature__("Bool.*", js.Syntax.code('var Bool = Boolean'));
__feature__("Class.*", js.Syntax.code('var Class = { };'));
__feature__("Enum.*", js.Syntax.code('var Enum = { };'));
#if (js_es < 5)
__feature__("Array.map", if (Array.prototype.map == null) Array.prototype.map = function(f) {
var a = [];
for (i in 0...__this__.length)
a[i] = f(__this__[i]);
return a;
});
__feature__("Array.filter", if (Array.prototype.filter == null) Array.prototype.filter = function(f) {
var a = [];
for (i in 0...__this__.length) {
var e = __this__[i];
if (f(e))
a.push(e);
}
return a;
});
#end
}
}

View File

@ -0,0 +1,51 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
@:coreApi extern class String {
var length(default, null):Int;
@:pure function new(string:String):Void;
@:pure function toUpperCase():String;
@:pure function toLowerCase():String;
@:pure function charAt(index:Int):String;
@:pure function indexOf(str:String, ?startIndex:Int):Int;
@:pure function lastIndexOf(str:String, ?startIndex:Int):Int;
@:pure function split(delimiter:String):Array<String>;
@:pure function toString():String;
@:pure function substring(startIndex:Int, ?endIndex:Int):String;
@:pure inline function charCodeAt(index:Int):Null<Int> {
return @:privateAccess HxOverrides.cca(this, index);
}
@:pure inline function substr(pos:Int, ?len:Int):String {
return @:privateAccess HxOverrides.substr(this, pos, len);
}
@:pure static inline function fromCharCode(code:Int):String {
return untyped __define_feature__('String.fromCharCode', js.Syntax.code("String.fromCodePoint({0})", code));
}
static function __init__():Void {
untyped __feature__('String.fromCharCode',
js.Syntax.code("if( String.fromCodePoint == null ) String.fromCodePoint = function(c) { return c < 0x10000 ? String.fromCharCode(c) : String.fromCharCode((c>>10)+0xD7C0)+String.fromCharCode((c&0x3FF)+0xDC00); }"));
}
}

View File

@ -0,0 +1,338 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
enum ValueType {
TNull;
TInt;
TFloat;
TBool;
TObject;
TFunction;
TClass(c:Class<Dynamic>);
TEnum(e:Enum<Dynamic>);
TUnknown;
}
@:coreApi class Type {
public static inline function getClass<T>(o:T):Class<T> {
return @:privateAccess js.Boot.getClass(o);
}
public static function getEnum(o:EnumValue):Enum<Dynamic>
untyped {
if (o == null)
return null;
#if js_enums_as_arrays
return o.__enum__;
#else
return $hxEnums[o.__enum__];
#end
}
public static inline function getSuperClass(c:Class<Dynamic>):Class<Dynamic> {
return untyped __define_feature__("Type.getSuperClass", c.__super__);
}
public static inline function getClassName(c:Class<Dynamic>):String {
return untyped __define_feature__("Type.getClassName", c.__name__);
}
public static inline function getEnumName(e:Enum<Dynamic>):String {
return untyped __define_feature__("Type.getEnumName", e.__ename__);
}
#if js_enums_as_arrays
public static function resolveClass(name:String):Class<Dynamic>
untyped {
var cl:Class<Dynamic> = $hxClasses[name];
// ensure that this is a class
if (cl == null || !js.Boot.isClass(cl))
return null;
return cl;
}
public static function resolveEnum(name:String):Enum<Dynamic>
untyped {
var e:Dynamic = $hxClasses[name];
// ensure that this is an enum
if (e == null || !js.Boot.isEnum(e))
return null;
return e;
}
#else
public static inline function resolveClass(name:String):Class<Dynamic> {
return untyped __define_feature__("Type.resolveClass", $hxClasses[name]);
}
public static inline function resolveEnum(name:String):Enum<Dynamic> {
return untyped __define_feature__("Type.resolveEnum", $hxEnums[name]);
}
#end
#if (js_es < 5)
public static function createInstance<T>(cl:Class<T>, args:Array<Dynamic>):T {
switch (args.length) {
case 0:
return js.Syntax.construct(cl);
case 1:
return js.Syntax.construct(cl, args[0]);
case 2:
return js.Syntax.construct(cl, args[0], args[1]);
case 3:
return js.Syntax.construct(cl, args[0], args[1], args[2]);
case 4:
return js.Syntax.construct(cl, args[0], args[1], args[2], args[3]);
case 5:
return js.Syntax.construct(cl, args[0], args[1], args[2], args[3], args[4]);
case 6:
return js.Syntax.construct(cl, args[0], args[1], args[2], args[3], args[4], args[5]);
case 7:
return js.Syntax.construct(cl, args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
case 8:
return js.Syntax.construct(cl, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
case 9:
return js.Syntax.construct(cl, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]);
case 10:
return js.Syntax.construct(cl, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
case 11:
return js.Syntax.construct(cl, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10]);
case 12:
return js.Syntax.construct(cl, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11]);
case 13:
return js.Syntax.construct(cl, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11],
args[12]);
case 14:
return js.Syntax.construct(cl, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11],
args[12], args[13]);
default:
throw "Too many arguments";
}
}
public static function createEmptyInstance<T>(cl:Class<T>):T
untyped {
js.Syntax.code("function empty() {}; empty.prototype = cl.prototype");
return js.Syntax.code("new empty()");
}
#else
public static function createInstance<T>(cl:Class<T>, args:Array<Dynamic>):T {
var ctor = ((cast js.lib.Function).prototype.bind : js.lib.Function).apply(cl, [null].concat(args));
return js.Syntax.code("new ({0})", ctor); // cannot use `js.Syntax.construct` because we need parens if `ctor` is fused in
}
public static inline function createEmptyInstance<T>(cl:Class<T>):T {
return js.lib.Object.create((cast cl).prototype);
}
#end
public static function createEnum<T>(e:Enum<T>, constr:String, ?params:Array<Dynamic>):T {
var f:Dynamic = Reflect.field(e, constr);
if (f == null)
throw "No such constructor " + constr;
if (Reflect.isFunction(f)) {
if (params == null)
throw "Constructor " + constr + " need parameters";
return Reflect.callMethod(e, f, params);
}
if (params != null && params.length != 0)
throw "Constructor " + constr + " does not need parameters";
return f;
}
public static function createEnumIndex<T>(e:Enum<T>, index:Int, ?params:Array<Dynamic>):T {
#if js_enums_as_arrays
var c:String = (untyped e.__constructs__)[index];
#else
var c:String = switch (untyped e.__constructs__)[index] {
case null: null;
case ctor: ctor._hx_name;
}
#end
if (c == null)
throw index + " is not a valid enum constructor index";
return createEnum(e, c, params);
}
#if (js_es >= 6)
public static function getInstanceFields(c:Class<Dynamic>):Array<String> {
var result = [];
while (c != null) {
for (name in js.lib.Object.getOwnPropertyNames((cast c).prototype)) {
switch name {
case "constructor" | "__class__" | "__properties__":
// skip special names
case _:
if (result.indexOf(name) == -1)
result.push(name);
}
}
c = getSuperClass(c);
}
return result;
}
public static function getClassFields(c:Class<Dynamic>):Array<String> {
var a = js.lib.Object.getOwnPropertyNames(cast c);
a.remove("__id__");
a.remove("hx__closures__");
a.remove("__name__");
a.remove("__interfaces__");
a.remove("__isInterface__");
a.remove("__properties__");
a.remove("__instanceFields__");
a.remove("__super__");
a.remove("__meta__");
a.remove("prototype");
a.remove("name");
a.remove("length");
return a;
}
#else
public static function getInstanceFields(c:Class<Dynamic>):Array<String> {
var a = [];
js.Syntax.code("for(var i in c.prototype) a.push(i)");
a.remove("__class__");
a.remove("__properties__");
return a;
}
public static function getClassFields(c:Class<Dynamic>):Array<String> {
var a = Reflect.fields(c);
a.remove("__name__");
a.remove("__interfaces__");
a.remove("__properties__");
a.remove("__super__");
a.remove("__meta__");
a.remove("prototype");
return a;
}
#end
public static inline function getEnumConstructs(e:Enum<Dynamic>):Array<String> {
#if js_enums_as_arrays
return ((cast e).__constructs__ : Array<String>).copy();
#else
return ((cast e).__constructs__ : Array<{_hx_name:String}>).map(c -> c._hx_name);
#end
}
@:access(js.Boot)
public static function typeof(v:Dynamic):ValueType {
switch (js.Syntax.typeof(v)) {
case "boolean":
return TBool;
case "string":
return TClass(String);
case "number":
// this should handle all cases : NaN, +/-Inf and Floats outside range
if (Math.ceil(v) == v % 2147483648.0)
return TInt;
return TFloat;
case "object":
if (v == null)
return TNull;
var e = v.__enum__;
if (e != null) {
#if js_enums_as_arrays
return TEnum(e);
#else
return TEnum(untyped $hxEnums[e]);
#end
}
var c = js.Boot.getClass(v);
if (c != null)
return TClass(c);
return TObject;
case "function":
if (js.Boot.isClass(v) || js.Boot.isEnum(v))
return TObject;
return TFunction;
case "undefined":
return TNull;
default:
return TUnknown;
}
}
public static function enumEq<T:EnumValue>(a:T, b:T):Bool
untyped {
if (a == b)
return true;
try {
var e = a.__enum__;
if (e == null || e != b.__enum__)
return false;
#if js_enums_as_arrays
if (a[0] != b[0])
return false;
for (i in 2...a.length)
if (!enumEq(a[i], b[i]))
return false;
#else
if (a._hx_index != b._hx_index)
return false;
var enm = $hxEnums[e];
var params:Array<String> = enm.__constructs__[a._hx_index].__params__;
for (f in params) {
if (!enumEq(a[f], b[f])) {
return false;
}
}
#end
} catch (e:Dynamic) {
return false;
}
return true;
}
public inline static function enumConstructor(e:EnumValue):String {
#if js_enums_as_arrays
return untyped e[0];
#else
return untyped $hxEnums[e.__enum__].__constructs__[e._hx_index]._hx_name;
#end
}
#if js_enums_as_arrays
public inline static function enumParameters(e:EnumValue):Array<Dynamic> {
return untyped e.slice(2);
}
#else
public static function enumParameters(e:EnumValue):Array<Dynamic>
untyped {
var enm:Enum<Dynamic> = $hxEnums[e.__enum__];
var params:Array<String> = enm.__constructs__[e._hx_index].__params__;
return params != null ? [for (p in params) e[p]] : [];
}
#end
public inline static function enumIndex(e:EnumValue):Int {
#if !js_enums_as_arrays
return untyped e._hx_index;
#else
return untyped e[1];
#end
}
public inline static function allEnums<T>(e:Enum<T>):Array<T> {
return untyped __define_feature__("Type.allEnums", e.__empty_constructs__.slice());
}
}

View File

@ -0,0 +1,171 @@
package haxe;
import js.lib.Error;
@:coreApi
class Exception extends NativeException {
public var message(get,never):String;
public var stack(get,never):CallStack;
public var previous(get,never):Null<Exception>;
public var native(get,never):Any;
@:ifFeature("haxe.Exception.get_stack")
@:noCompletion var __skipStack:Int;
@:noCompletion var __exceptionStack(get,set):Null<CallStack>;
@:noCompletion var __nativeException:Any;
@:noCompletion var __previousException:Null<Exception>;
static function caught(value:Any):Exception {
if(Std.isOfType(value, Exception)) {
return value;
} else if(Std.isOfType(value, Error)) {
return new Exception((cast value:Error).message, null, value);
} else {
return new ValueException(value, null, value);
}
}
static function thrown(value:Any):Any {
if(Std.isOfType(value, Exception)) {
return (value:Exception).native;
} else if(Std.isOfType(value, Error)) {
return value;
} else {
var e = new ValueException(value);
untyped __feature__("haxe.Exception.get_stack", e.__shiftStack());
return e;
}
}
public function new(message:String, ?previous:Exception, ?native:Any) {
super(message);
(cast this).message = message;
__previousException = previous;
__nativeException = native != null ? native : this;
untyped __feature__('haxe.Exception.stack', {
__skipStack = 0;
var old = js.Syntax.code('Error.prepareStackTrace');
js.Syntax.code('Error.prepareStackTrace = function(e) { return e.stack; }');
if(Std.isOfType(native, Error)) {
(cast this).stack = native.stack;
} else {
var e:Error = null;
if ((cast Error).captureStackTrace) {
(cast Error).captureStackTrace(this, Exception);
e = cast this;
} else {
e = new Error();
//Internet Explorer provides call stack only if error was thrown
if(js.Syntax.typeof(e.stack) == "undefined") {
js.Syntax.code('try { throw {0}; } catch(_) {}', e);
__skipStack++;
}
}
(cast this).stack = e.stack;
}
js.Syntax.code('Error.prepareStackTrace = {0}', old);
});
}
function unwrap():Any {
return __nativeException;
}
public function toString():String {
return message;
}
public function details():String {
return inline CallStack.exceptionToString(this);
}
@:noCompletion
@:ifFeature("haxe.Exception.get_stack")
inline function __shiftStack():Void {
__skipStack++;
}
function get_message():String {
return (cast this:Error).message;
}
function get_previous():Null<Exception> {
return __previousException;
}
final function get_native():Any {
return __nativeException;
}
@:ifFeature('haxe.NativeStackTrace.exceptionStack')
function get_stack():CallStack {
return switch __exceptionStack {
case null:
__exceptionStack = NativeStackTrace.toHaxe(NativeStackTrace.normalize((cast this).stack), __skipStack);
case s: s;
}
}
@:noCompletion
function setProperty(name:String, value:Any):Void {
try {
js.lib.Object.defineProperty(this, name, {value:value});
} catch(e:Exception) {
js.Syntax.code('{0}[{1}] = {2}', this, name, value);
}
}
@:noCompletion
inline function get___exceptionStack():CallStack {
return (cast this).__exceptionStack;
}
@:noCompletion
inline function set___exceptionStack(value:CallStack):CallStack {
setProperty('__exceptionStack', value);
return value;
}
@:noCompletion
inline function get___skipStack():Int {
return (cast this).__skipStack;
}
@:noCompletion
inline function set___skipStack(value:Int):Int {
setProperty('__skipStack', value);
return value;
}
@:noCompletion
inline function get___nativeException():Any {
return (cast this).__nativeException;
}
@:noCompletion
inline function set___nativeException(value:Any):Any {
setProperty('__nativeException', value);
return value;
}
@:noCompletion
inline function get___previousException():Null<Exception> {
return (cast this).__previousException;
}
@:noCompletion
inline function set___previousException(value:Null<Exception>):Null<Exception> {
setProperty('__previousException', value);
return value;
}
}
@:dox(hide)
@:noCompletion
@:native('Error')
private extern class NativeException {
// private var message:String; //redefined in haxe.Exception
// private var stack(default, null):String; //redefined in haxe.Exception
function new(?message:String);
}

View File

@ -0,0 +1,46 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe;
@:coreApi
#if !haxeJSON
@:native("JSON")
extern
#end
class Json {
#if haxeJSON
inline
#end
public static function parse(text:String):Dynamic
#if !haxeJSON; #else {
return haxe.format.JsonParser.parse(text);
} #end
#if haxeJSON
inline
#end
public static function stringify(value:Dynamic, ?replacer:(key:Dynamic, value:Dynamic) -> Dynamic, ?space:String):String
#if !haxeJSON; #else {
return haxe.format.JsonPrinter.print(value, replacer, space);
} #end
}

View File

@ -0,0 +1,150 @@
package haxe;
import js.Syntax;
import js.lib.Error;
import haxe.CallStack.StackItem;
// https://v8.dev/docs/stack-trace-api
@:native("Error")
private extern class V8Error {
static var prepareStackTrace:(error:Error, structuredStackTrace:Array<V8CallSite>)->Any;
}
typedef V8CallSite = {
function getFunctionName():String;
function getFileName():String;
function getLineNumber():Int;
function getColumnNumber():Int;
}
/**
Do not use manually.
**/
@:dox(hide)
@:noCompletion
@:allow(haxe.Exception)
class NativeStackTrace {
static var lastError:Error;
// support for source-map-support module
@:noCompletion
public static var wrapCallSite:V8CallSite->V8CallSite;
@:ifFeature('haxe.NativeStackTrace.exceptionStack')
static public inline function saveStack(e:Error):Void {
lastError = e;
}
static public function callStack():Any {
var e:Null<Error> = new Error('');
var stack = tryHaxeStack(e);
//Internet Explorer provides call stack only if error was thrown
if(Syntax.typeof(stack) == "undefined") {
try throw e catch(e:Exception) {}
stack = e.stack;
}
return normalize(stack, 2);
}
static public function exceptionStack():Any {
return normalize(tryHaxeStack(lastError));
}
static public function toHaxe(s:Null<Any>, skip:Int = 0):Array<StackItem> {
if (s == null) {
return [];
} else if (Syntax.typeof(s) == "string") {
// Return the raw lines in browsers that don't support prepareStackTrace
var stack:Array<String> = (s:String).split("\n");
if (stack[0] == "Error")
stack.shift();
var m = [];
for (i in 0...stack.length) {
if(skip > i) continue;
var line = stack[i];
var matched:Null<Array<String>> = Syntax.code('{0}.match(/^ at ([A-Za-z0-9_. ]+) \\(([^)]+):([0-9]+):([0-9]+)\\)$/)', line);
if (matched != null) {
var path = matched[1].split(".");
if(path[0] == "$hxClasses") {
path.shift();
}
var meth = path.pop();
var file = matched[2];
var line = Std.parseInt(matched[3]);
var column = Std.parseInt(matched[4]);
m.push(FilePos(meth == "Anonymous function" ? LocalFunction() : meth == "Global code" ? null : Method(path.join("."), meth), file, line,
column));
} else {
m.push(Module(StringTools.trim(line))); // A little weird, but better than nothing
}
}
return m;
} else if(skip > 0 && Syntax.code('Array.isArray({0})', s)) {
return (s:Array<StackItem>).slice(skip);
} else {
return cast s;
}
}
static function tryHaxeStack(e:Null<Error>):Any {
if (e == null) {
return [];
}
// https://v8.dev/docs/stack-trace-api
var oldValue = V8Error.prepareStackTrace;
V8Error.prepareStackTrace = prepareHxStackTrace;
var stack = e.stack;
V8Error.prepareStackTrace = oldValue;
return stack;
}
static function prepareHxStackTrace(e:Error, callsites:Array<V8CallSite>):Any {
var stack = [];
for (site in callsites) {
if (wrapCallSite != null)
site = wrapCallSite(site);
var method = null;
var fullName = site.getFunctionName();
if (fullName != null) {
var idx = fullName.lastIndexOf(".");
if (idx >= 0) {
var className = fullName.substring(0, idx);
var methodName = fullName.substring(idx + 1);
method = Method(className, methodName);
} else {
method = Method(null, fullName);
}
}
var fileName = site.getFileName();
var fileAddr = fileName == null ? -1 : fileName.indexOf("file:");
if (wrapCallSite != null && fileAddr > 0)
fileName = fileName.substring(fileAddr + 6);
stack.push(FilePos(method, fileName, site.getLineNumber(), site.getColumnNumber()));
}
return stack;
}
static function normalize(stack:Any, skipItems:Int = 0):Any {
if(Syntax.code('Array.isArray({0})', stack) && skipItems > 0) {
return (stack:Array<StackItem>).slice(skipItems);
} else if(Syntax.typeof(stack) == "string") {
switch (stack:String).substring(0, 6) {
case 'Error:' | 'Error\n': skipItems += 1;
case _:
}
return skipLines(stack, skipItems);
} else {
//nothing we can do
return stack;
}
}
static function skipLines(stack:String, skip:Int, pos:Int = 0):String {
return if(skip > 0) {
pos = stack.indexOf('\n', pos);
return pos < 0 ? '' : skipLines(stack, --skip, pos + 1);
} else {
return stack.substring(pos);
}
}
}

View File

@ -0,0 +1,100 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe.ds;
@:coreApi class IntMap<T> implements haxe.Constraints.IMap<Int, T> {
private var h:Dynamic;
public inline function new():Void {
h = {};
}
public inline function set(key:Int, value:T):Void {
h[key] = value;
}
public inline function get(key:Int):Null<T> {
return h[key];
}
public inline function exists(key:Int):Bool {
return (cast h).hasOwnProperty(key);
}
public function remove(key:Int):Bool {
if (!(cast h).hasOwnProperty(key))
return false;
js.Syntax.delete(h, key);
return true;
}
public function keys():Iterator<Int> {
var a = [];
js.Syntax.code("for( var key in {0} ) if({0}.hasOwnProperty(key)) {1}.push(+key)", h, a);
return a.iterator();
}
public function iterator():Iterator<T> {
return untyped {
ref: h,
it: keys(),
hasNext: function() {
return __this__.it.hasNext();
},
next: function() {
var i = __this__.it.next();
return __this__.ref[i];
}
};
}
@:runtime public inline function keyValueIterator():KeyValueIterator<Int, T> {
return new haxe.iterators.MapKeyValueIterator(this);
}
public function copy():IntMap<T> {
var copied = new IntMap();
for (key in keys())
copied.set(key, get(key));
return copied;
}
public function toString():String {
var s = new StringBuf();
s.add("{");
var it = keys();
for (i in it) {
s.add(i);
s.add(" => ");
s.add(Std.string(get(i)));
if (it.hasNext())
s.add(", ");
}
s.add("}");
return s.toString();
}
public inline function clear():Void {
h = {};
}
}

View File

@ -0,0 +1,132 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of h software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and h permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe.ds;
import js.Syntax;
import js.Lib;
@:coreApi
class ObjectMap<K:{}, V> implements haxe.Constraints.IMap<K, V> {
static var count:Int;
// initialize count through __init__ magic, because these are generated
// before normal static initializations for which ObjectMap should be ready to use
// see https://github.com/HaxeFoundation/haxe/issues/6792
static inline function __init__():Void
count = 0;
static inline function assignId(obj:{}):Int {
return Syntax.code('({0}.__id__ = {1})', obj, Lib.getNextHaxeUID());
}
static inline function getId(obj:{}):Int {
return untyped obj.__id__;
}
var h:{__keys__:{}};
public function new():Void {
h = {__keys__: {}};
}
public function set(key:K, value:V):Void {
var id = getId(key);
if(id == null) {
id = assignId(key);
}
Syntax.code('{0}[{1}] = {2}', h, id, value);
Syntax.code('{0}[{1}] = {2}', h.__keys__, id, key);
}
public inline function get(key:K):Null<V> {
return untyped h[getId(key)];
}
public inline function exists(key:K):Bool {
return untyped h.__keys__[getId(key)] != null;
}
public function remove(key:K):Bool {
var id = getId(key);
if (untyped h.__keys__[id] == null)
return false;
js.Syntax.delete(h, id);
js.Syntax.delete(h.__keys__, id);
return true;
}
public function keys():Iterator<K> {
var a = [];
untyped {
js.Syntax.code("for( var key in this.h.__keys__ ) {");
if (h.hasOwnProperty(key))
a.push(h.__keys__[key]);
js.Syntax.code("}");
}
return a.iterator();
}
public function iterator():Iterator<V> {
return untyped {
ref: h,
it: keys(),
hasNext: function() {
return __this__.it.hasNext();
},
next: function() {
var i = __this__.it.next();
return __this__.ref[getId(i)];
}
};
}
@:runtime public inline function keyValueIterator():KeyValueIterator<K, V> {
return new haxe.iterators.MapKeyValueIterator(this);
}
public function copy():ObjectMap<K, V> {
var copied = new ObjectMap();
for (key in keys())
copied.set(key, get(key));
return copied;
}
public function toString():String {
var s = new StringBuf();
s.add("{");
var it = keys();
for (i in it) {
s.add(Std.string(i));
s.add(" => ");
s.add(Std.string(get(i)));
if (it.hasNext())
s.add(", ");
}
s.add("}");
return s.toString();
}
public inline function clear():Void {
h = {__keys__: {}};
}
}

View File

@ -0,0 +1,312 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe.ds;
import js.lib.Object;
import haxe.Constraints.IMap;
import haxe.DynamicAccess;
#if (js_es >= 5)
@:coreApi class StringMap<T> implements IMap<String, T> {
var h:Dynamic;
public inline function new() {
h = Object.create(null);
}
public inline function exists(key:String):Bool {
return Object.prototype.hasOwnProperty.call(h, key);
}
public inline function get(key:String):Null<T> {
return h[cast key];
}
public inline function set(key:String, value:T):Void {
h[cast key] = value;
}
public inline function remove(key:String):Bool {
return if (exists(key)) {
js.Syntax.delete(h, key); true;
} else {
false;
}
}
public inline function keys():Iterator<String> {
return new StringMapKeyIterator(h);
}
public inline function iterator():Iterator<T> {
return new StringMapValueIterator(h);
}
public inline function keyValueIterator():KeyValueIterator<String, T> {
return new StringMapKeyValueIterator(h);
}
public inline function copy():StringMap<T> {
return createCopy(h);
}
public inline function clear():Void {
h = Object.create(null);
}
public inline function toString():String {
return stringify(h);
}
// impl
static function createCopy<T>(h:Dynamic):StringMap<T> {
var copy = new StringMap();
js.Syntax.code("for (var key in {0}) {1}[key] = {0}[key]", h, copy.h);
return copy;
}
@:analyzer(no_optimize)
static function stringify(h:Dynamic):String {
var s = "{", first = true;
js.Syntax.code("for (var key in {0}) {", h);
js.Syntax.code("\tif ({0}) {0} = false; else {1} += ',';", first, s);
js.Syntax.code("\t{0} += key + ' => ' + {1}({2}[key]);", s, Std.string, h);
js.Syntax.code("}");
return s + "}";
}
}
private class StringMapKeyIterator {
final h:Dynamic;
final keys:Array<String>;
final length:Int;
var current:Int;
public inline function new(h:Dynamic) {
this.h = h;
keys = Object.keys(h);
length = keys.length;
current = 0;
}
public inline function hasNext():Bool {
return current < length;
}
public inline function next():String {
return keys[current++];
}
}
private class StringMapValueIterator<T> {
final h:Dynamic;
final keys:Array<String>;
final length:Int;
var current:Int;
public inline function new(h:Dynamic) {
this.h = h;
keys = Object.keys(h);
length = keys.length;
current = 0;
}
public inline function hasNext():Bool {
return current < length;
}
public inline function next():T {
return h[cast keys[current++]];
}
}
private class StringMapKeyValueIterator<T> {
final h:Dynamic;
final keys:Array<String>;
final length:Int;
var current:Int;
public inline function new(h:Dynamic) {
this.h = h;
keys = Object.keys(h);
length = keys.length;
current = 0;
}
public inline function hasNext():Bool {
return current < length;
}
public inline function next():{key:String, value:T} {
var key = keys[current++];
return {key: key, value: h[cast key]};
}
}
#else
private class StringMapIterator<T> {
var map:StringMap<T>;
var keys:Array<String>;
var index:Int;
var count:Int;
public inline function new(map:StringMap<T>, keys:Array<String>) {
this.map = map;
this.keys = keys;
this.index = 0;
this.count = keys.length;
}
public inline function hasNext() {
return index < count;
}
public inline function next() {
return map.get(keys[index++]);
}
}
@:coreApi class StringMap<T> implements haxe.Constraints.IMap<String, T> {
private var h:Dynamic;
private var rh:Dynamic;
public inline function new():Void {
h = {};
}
inline function isReserved(key:String):Bool {
return js.Syntax.code("__map_reserved[{0}]", key) != null;
}
public inline function set(key:String, value:T):Void {
if (isReserved(key))
setReserved(key, value);
else
h[cast key] = value;
}
public inline function get(key:String):Null<T> {
if (isReserved(key))
return getReserved(key);
return h[cast key];
}
public inline function exists(key:String):Bool {
if (isReserved(key))
return existsReserved(key);
return h.hasOwnProperty(key);
}
function setReserved(key:String, value:T):Void {
if (rh == null)
rh = {};
rh[cast "$" + key] = value;
}
function getReserved(key:String):Null<T> {
return rh == null ? null : rh[cast "$" + key];
}
function existsReserved(key:String):Bool {
if (rh == null)
return false;
return (cast rh).hasOwnProperty("$" + key);
}
public function remove(key:String):Bool {
if (isReserved(key)) {
key = "$" + key;
if (rh == null || !rh.hasOwnProperty(key))
return false;
js.Syntax.delete(rh, key);
return true;
} else {
if (!h.hasOwnProperty(key))
return false;
js.Syntax.delete(h, key);
return true;
}
}
public function keys():Iterator<String> {
return arrayKeys().iterator();
}
function arrayKeys():Array<String> {
var out = [];
untyped {
js.Syntax.code("for( var key in this.h ) {");
if (h.hasOwnProperty(key))
out.push(key);
js.Syntax.code("}");
}
if (rh != null)
untyped {
js.Syntax.code("for( var key in this.rh ) {");
if (key.charCodeAt(0) == "$".code)
out.push(key.substr(1));
js.Syntax.code("}");
}
return out;
}
public inline function iterator():Iterator<T> {
return new StringMapIterator(this, arrayKeys());
}
@:runtime public inline function keyValueIterator():KeyValueIterator<String, T> {
return new haxe.iterators.MapKeyValueIterator(this);
}
public function copy():StringMap<T> {
var copied = new StringMap();
for (key in keys())
copied.set(key, get(key));
return copied;
}
public function toString():String {
var s = new StringBuf();
s.add("{");
var keys = arrayKeys();
for (i in 0...keys.length) {
var k = keys[i];
s.add(k);
s.add(" => ");
s.add(Std.string(get(k)));
if (i < keys.length - 1)
s.add(", ");
}
s.add("}");
return s.toString();
}
public inline function clear():Void {
h = {};
rh = null;
}
static function __init__():Void {
js.Syntax.code("var __map_reserved = {};");
}
}
#end

View File

@ -0,0 +1,57 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe.io;
typedef ArrayBufferViewData = js.lib.ArrayBufferView;
abstract ArrayBufferView(ArrayBufferViewData) {
public var buffer(get, never):haxe.io.Bytes;
public var byteOffset(get, never):Int;
public var byteLength(get, never):Int;
public inline function new(size:Int) {
this = new js.lib.Uint8Array(size);
}
inline function get_byteOffset()
return this.byteOffset;
inline function get_byteLength()
return this.byteLength;
inline function get_buffer():haxe.io.Bytes {
return haxe.io.Bytes.ofData(this.buffer);
}
public inline function sub(begin:Int, ?length:Int) {
return fromData(new js.lib.Uint8Array(this.buffer, begin, length == null ? this.buffer.byteLength - begin : length));
}
public inline function getData():ArrayBufferViewData {
return this;
}
public static inline function fromData(a:ArrayBufferViewData):ArrayBufferView {
return cast a;
}
}

View File

@ -0,0 +1,272 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe.io;
@:coreApi
class Bytes {
public var length(default, null):Int;
var b:js.lib.Uint8Array;
var data:js.lib.DataView;
function new(data:BytesData) {
this.length = data.byteLength;
this.b = new js.lib.Uint8Array(data);
untyped {
b.bufferValue = data; // some impl does not return the same instance in .buffer
data.hxBytes = this;
data.bytes = this.b;
}
}
public inline function get(pos:Int):Int {
return b[pos];
}
public inline function set(pos:Int, v:Int):Void {
b[pos] = v;
}
public function blit(pos:Int, src:Bytes, srcpos:Int, len:Int):Void {
if (pos < 0 || srcpos < 0 || len < 0 || pos + len > length || srcpos + len > src.length)
throw Error.OutsideBounds;
if (srcpos == 0 && len == src.b.byteLength)
b.set(src.b, pos);
else
b.set(src.b.subarray(srcpos, srcpos + len), pos);
}
public function fill(pos:Int, len:Int, value:Int):Void {
for (i in 0...len)
set(pos++, value);
}
public function sub(pos:Int, len:Int):Bytes {
if (pos < 0 || len < 0 || pos + len > length)
throw Error.OutsideBounds;
return new Bytes(b.buffer.slice(pos + b.byteOffset, pos + b.byteOffset + len));
}
public function compare(other:Bytes):Int {
var b1 = b;
var b2 = other.b;
var len = (length < other.length) ? length : other.length;
for (i in 0...len)
if (b1[i] != b2[i])
return b1[i] - b2[i];
return length - other.length;
}
inline function initData():Void {
if (data == null)
data = new js.lib.DataView(b.buffer, b.byteOffset, b.byteLength);
}
public function getDouble(pos:Int):Float {
initData();
return data.getFloat64(pos, true);
}
public function getFloat(pos:Int):Float {
initData();
return data.getFloat32(pos, true);
}
public function setDouble(pos:Int, v:Float):Void {
initData();
data.setFloat64(pos, v, true);
}
public function setFloat(pos:Int, v:Float):Void {
initData();
data.setFloat32(pos, v, true);
}
public function getUInt16(pos:Int):Int {
initData();
return data.getUint16(pos, true);
}
public function setUInt16(pos:Int, v:Int):Void {
initData();
data.setUint16(pos, v, true);
}
public function getInt32(pos:Int):Int {
initData();
return data.getInt32(pos, true);
}
public function setInt32(pos:Int, v:Int):Void {
initData();
data.setInt32(pos, v, true);
}
public function getInt64(pos:Int):haxe.Int64 {
return Int64.make(getInt32(pos + 4), getInt32(pos));
}
public function setInt64(pos:Int, v:haxe.Int64):Void {
setInt32(pos, v.low);
setInt32(pos + 4, v.high);
}
public function getString(pos:Int, len:Int, ?encoding:Encoding):String {
if (pos < 0 || len < 0 || pos + len > length)
throw Error.OutsideBounds;
if (encoding == null)
encoding = UTF8;
var s = "";
var b = b;
var i = pos;
var max = pos + len;
switch (encoding) {
case UTF8:
var debug = pos > 0;
// utf8-decode and utf16-encode
while (i < max) {
var c = b[i++];
if (c < 0x80) {
if (c == 0)
break;
s += String.fromCharCode(c);
} else if (c < 0xE0)
s += String.fromCharCode(((c & 0x3F) << 6) | (b[i++] & 0x7F));
else if (c < 0xF0) {
var c2 = b[i++];
s += String.fromCharCode(((c & 0x1F) << 12) | ((c2 & 0x7F) << 6) | (b[i++] & 0x7F));
} else {
var c2 = b[i++];
var c3 = b[i++];
var u = ((c & 0x0F) << 18) | ((c2 & 0x7F) << 12) | ((c3 & 0x7F) << 6) | (b[i++] & 0x7F);
s += String.fromCharCode(u);
}
}
case RawNative:
while (i < max) {
var c = b[i++] | (b[i++] << 8);
s += String.fromCharCode(c);
}
}
return s;
}
@:deprecated("readString is deprecated, use getString instead")
@:noCompletion
public inline function readString(pos:Int, len:Int):String {
return getString(pos, len);
}
public function toString():String {
return getString(0, length);
}
public function toHex():String {
var s = new StringBuf();
var chars = [];
var str = "0123456789abcdef";
for (i in 0...str.length)
chars.push(str.charCodeAt(i));
for (i in 0...length) {
var c = get(i);
s.addChar(chars[c >> 4]);
s.addChar(chars[c & 15]);
}
return s.toString();
}
public inline function getData():BytesData {
return untyped b.bufferValue;
}
public static inline function alloc(length:Int):Bytes {
return new Bytes(new BytesData(length));
}
public static function ofString(s:String, ?encoding:Encoding):Bytes {
if (encoding == RawNative) {
var buf = new js.lib.Uint8Array(s.length << 1);
for (i in 0...s.length) {
var c:Int = StringTools.fastCodeAt(s, i);
buf[i << 1] = c & 0xFF;
buf[(i << 1) | 1] = c >> 8;
}
return new Bytes(buf.buffer);
}
var a = new Array();
// utf16-decode and utf8-encode
var i = 0;
while (i < s.length) {
var c:Int = StringTools.fastCodeAt(s, i++);
// surrogate pair
if (0xD800 <= c && c <= 0xDBFF)
c = (c - 0xD7C0 << 10) | (StringTools.fastCodeAt(s, i++) & 0x3FF);
if (c <= 0x7F)
a.push(c);
else if (c <= 0x7FF) {
a.push(0xC0 | (c >> 6));
a.push(0x80 | (c & 63));
} else if (c <= 0xFFFF) {
a.push(0xE0 | (c >> 12));
a.push(0x80 | ((c >> 6) & 63));
a.push(0x80 | (c & 63));
} else {
a.push(0xF0 | (c >> 18));
a.push(0x80 | ((c >> 12) & 63));
a.push(0x80 | ((c >> 6) & 63));
a.push(0x80 | (c & 63));
}
}
return new Bytes(new js.lib.Uint8Array(a).buffer);
}
public static function ofData(b:BytesData):Bytes {
var hb = untyped b.hxBytes;
if (hb != null)
return hb;
return new Bytes(b);
}
public static function ofHex(s:String):Bytes {
if ((s.length & 1) != 0)
throw "Not a hex string (odd number of digits)";
var a = new Array();
var i = 0;
var len = s.length >> 1;
while (i < len) {
var high = StringTools.fastCodeAt(s, i * 2);
var low = StringTools.fastCodeAt(s, i * 2 + 1);
high = (high & 0xF) + ((high & 0x40) >> 6) * 9;
low = (low & 0xF) + ((low & 0x40) >> 6) * 9;
a.push(((high << 4) | low) & 0xFF);
i++;
}
return new Bytes(new js.lib.Uint8Array(a).buffer);
}
public inline static function fastGet(b:BytesData, pos:Int):Int {
// this requires that we have wrapped it with haxe.io.Bytes beforehand
return untyped b.bytes[pos];
}
}

View File

@ -0,0 +1,127 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe.io;
@:coreApi
class BytesBuffer {
var buffer:js.lib.ArrayBuffer;
var view:js.lib.DataView;
var u8:js.lib.Uint8Array;
var pos:Int;
var size:Int;
public var length(get, never):Int;
public function new() {
pos = 0;
size = 0;
}
inline function get_length():Int {
return pos;
}
public function addByte(byte:Int):Void {
if (pos == size)
grow(1);
view.setUint8(pos++, byte);
}
public function add(src:Bytes):Void {
if (pos + src.length > size)
grow(src.length);
if (size == 0)
return;
var sub = new js.lib.Uint8Array(@:privateAccess src.b.buffer, @:privateAccess src.b.byteOffset, src.length);
u8.set(sub, pos);
pos += src.length;
}
public function addString(v:String, ?encoding:Encoding):Void {
add(Bytes.ofString(v, encoding));
}
public function addInt32(v:Int):Void {
if (pos + 4 > size)
grow(4);
view.setInt32(pos, v, true);
pos += 4;
}
public function addInt64(v:haxe.Int64):Void {
if (pos + 8 > size)
grow(8);
view.setInt32(pos, v.low, true);
view.setInt32(pos + 4, v.high, true);
pos += 8;
}
public function addFloat(v:Float):Void {
if (pos + 4 > size)
grow(4);
view.setFloat32(pos, v, true);
pos += 4;
}
public function addDouble(v:Float):Void {
if (pos + 8 > size)
grow(8);
view.setFloat64(pos, v, true);
pos += 8;
}
public function addBytes(src:Bytes, pos:Int, len:Int):Void {
if (pos < 0 || len < 0 || pos + len > src.length)
throw Error.OutsideBounds;
if (this.pos + len > size)
grow(len);
if (size == 0)
return;
var sub = new js.lib.Uint8Array(@:privateAccess src.b.buffer, @:privateAccess src.b.byteOffset + pos, len);
u8.set(sub, this.pos);
this.pos += len;
}
function grow(delta:Int):Void {
var req = pos + delta;
var nsize = size == 0 ? 16 : size;
while (nsize < req)
nsize = (nsize * 3) >> 1;
var nbuf = new js.lib.ArrayBuffer(nsize);
var nu8 = new js.lib.Uint8Array(nbuf);
if (size > 0)
nu8.set(u8);
size = nsize;
buffer = nbuf;
u8 = nu8;
view = new js.lib.DataView(buffer);
}
public function getBytes():Bytes@:privateAccess {
if (size == 0)
return haxe.io.Bytes.alloc(0);
var b = new Bytes(buffer);
b.length = pos;
return b;
}
}

View File

@ -0,0 +1,88 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe.io;
typedef Float32ArrayData = js.lib.Float32Array;
@:coreApi
abstract Float32Array(Float32ArrayData) {
public static inline var BYTES_PER_ELEMENT = 4;
public var length(get, never):Int;
public var view(get, never):ArrayBufferView;
public inline function new(elements:Int):Void {
this = new Float32ArrayData(elements);
}
inline function get_length():Int {
return this.length;
}
public inline function get_view():ArrayBufferView {
return ArrayBufferView.fromData(this);
}
@:arrayAccess public inline function get(index:Int):Float {
return this[index];
}
@:arrayAccess public inline function set(index:Int, value:Float):Float {
return this[index] = value;
}
public inline function sub(begin:Int, ?length:Int):Float32Array {
return fromData(this.subarray(begin, length == null ? this.length : begin + length));
}
public inline function subarray(?begin:Int, ?end:Int):Float32Array {
return fromData(this.subarray(begin, end));
}
public inline function getData():Float32ArrayData {
return this;
}
public inline static function fromData(d:Float32ArrayData):Float32Array {
return cast d;
}
public static function fromArray(a:Array<Float>, pos:Int = 0, ?length:Int):Float32Array {
if (length == null)
length = a.length - pos;
if (pos < 0 || length < 0 || pos + length > a.length)
throw Error.OutsideBounds;
if (pos == 0 && length == a.length)
return fromData(new Float32ArrayData(a));
var i = new Float32Array(a.length);
for (idx in 0...length)
i[idx] = a[idx + pos];
return i;
}
public static function fromBytes(bytes:haxe.io.Bytes, bytePos:Int = 0, ?length:Int):Float32Array {
if (length == null)
length = (bytes.length - bytePos) >> 2;
return fromData(new Float32ArrayData(bytes.getData(), bytePos, length));
}
}

View File

@ -0,0 +1,88 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe.io;
typedef Float64ArrayData = js.lib.Float64Array;
@:coreApi
abstract Float64Array(Float64ArrayData) {
public static inline var BYTES_PER_ELEMENT = 8;
public var length(get, never):Int;
public var view(get, never):ArrayBufferView;
public inline function new(elements:Int):Void {
this = new Float64ArrayData(elements);
}
inline function get_length():Int {
return this.length;
}
public inline function get_view():ArrayBufferView {
return ArrayBufferView.fromData(this);
}
@:arrayAccess public inline function get(index:Int):Float {
return this[index];
}
@:arrayAccess public inline function set(index:Int, value:Float):Float {
return this[index] = value;
}
public inline function sub(begin:Int, ?length:Int):Float64Array {
return fromData(this.subarray(begin, length == null ? this.length : begin + length));
}
public inline function subarray(?begin:Int, ?end:Int):Float64Array {
return fromData(this.subarray(begin, end));
}
public inline function getData():Float64ArrayData {
return this;
}
public static inline function fromData(d:Float64ArrayData):Float64Array {
return cast d;
}
public static function fromArray(a:Array<Float>, pos:Int = 0, ?length:Int):Float64Array {
if (length == null)
length = a.length - pos;
if (pos < 0 || length < 0 || pos + length > a.length)
throw Error.OutsideBounds;
if (pos == 0 && length == a.length)
return fromData(new Float64ArrayData(a));
var i = new Float64Array(a.length);
for (idx in 0...length)
i[idx] = a[idx + pos];
return i;
}
public static function fromBytes(bytes:haxe.io.Bytes, bytePos:Int = 0, ?length:Int):Float64Array {
if (length == null)
length = (bytes.length - bytePos) >> 3;
return fromData(new Float64ArrayData(bytes.getData(), bytePos, length));
}
}

View File

@ -0,0 +1,88 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe.io;
typedef Int32ArrayData = js.lib.Int32Array;
@:coreApi
abstract Int32Array(Int32ArrayData) {
public static inline var BYTES_PER_ELEMENT = 4;
public var length(get, never):Int;
public var view(get, never):ArrayBufferView;
public inline function new(elements:Int) {
this = new Int32ArrayData(elements);
}
inline function get_length():Int {
return this.length;
}
public inline function get_view():ArrayBufferView {
return ArrayBufferView.fromData(this);
}
@:arrayAccess public inline function get(index:Int):Int {
return this[index];
}
@:arrayAccess public inline function set(index:Int, value:Int):Int {
return this[index] = value;
}
public inline function sub(begin:Int, ?length:Int):Int32Array {
return fromData(this.subarray(begin, length == null ? this.length : begin + length));
}
public inline function subarray(?begin:Int, ?end:Int):Int32Array {
return fromData(this.subarray(begin, end));
}
public inline function getData():Int32ArrayData {
return this;
}
public static inline function fromData(d:Int32ArrayData):Int32Array {
return cast d;
}
public static function fromArray(a:Array<Int>, pos:Int = 0, ?length:Int):Int32Array {
if (length == null)
length = a.length - pos;
if (pos < 0 || length < 0 || pos + length > a.length)
throw Error.OutsideBounds;
if (pos == 0 && length == a.length)
return fromData(new Int32ArrayData(a));
var i = new Int32Array(a.length);
for (idx in 0...length)
i[idx] = a[idx + pos];
return i;
}
public static function fromBytes(bytes:haxe.io.Bytes, bytePos:Int = 0, ?length:Int):Int32Array {
if (length == null)
length = (bytes.length - bytePos) >> 2;
return fromData(new Int32ArrayData(bytes.getData(), bytePos, length));
}
}

View File

@ -0,0 +1,88 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe.io;
typedef UInt16ArrayData = js.lib.Uint16Array;
@:coreApi
abstract UInt16Array(UInt16ArrayData) {
public static inline var BYTES_PER_ELEMENT = 2;
public var length(get, never):Int;
public var view(get, never):ArrayBufferView;
public inline function new(elements:Int) {
this = new UInt16ArrayData(elements);
}
inline function get_length():Int {
return this.length;
}
public inline function get_view():ArrayBufferView {
return ArrayBufferView.fromData(this);
}
@:arrayAccess public inline function get(index:Int):Int {
return this[index];
}
@:arrayAccess public inline function set(index:Int, value:Int):Int {
return this[index] = value;
}
public inline function sub(begin:Int, ?length:Int):UInt16Array {
return fromData(this.subarray(begin, length == null ? this.length : begin + length));
}
public inline function subarray(?begin:Int, ?end:Int):UInt16Array {
return fromData(this.subarray(begin, end));
}
public inline function getData():UInt16ArrayData {
return this;
}
public static inline function fromData(d:UInt16ArrayData):UInt16Array {
return cast d;
}
public static function fromArray(a:Array<Int>, pos:Int = 0, ?length:Int):UInt16Array {
if (length == null)
length = a.length - pos;
if (pos < 0 || length < 0 || pos + length > a.length)
throw Error.OutsideBounds;
if (pos == 0 && length == a.length)
return fromData(new UInt16ArrayData(a));
var i = new UInt16Array(a.length);
for (idx in 0...length)
i[idx] = a[idx + pos];
return i;
}
public static function fromBytes(bytes:haxe.io.Bytes, bytePos:Int = 0, ?length:Int):UInt16Array {
if (length == null)
length = (bytes.length - bytePos) >> 1;
return fromData(new UInt16ArrayData(bytes.getData(), bytePos, length));
}
}

View File

@ -0,0 +1,88 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe.io;
typedef UInt32ArrayData = js.lib.Uint32Array;
@:coreApi
abstract UInt32Array(UInt32ArrayData) {
public static inline var BYTES_PER_ELEMENT = 4;
public var length(get, never):Int;
public var view(get, never):ArrayBufferView;
public inline function new(elements:Int) {
this = new UInt32ArrayData(elements);
}
inline function get_length():Int {
return this.length;
}
public inline function get_view():ArrayBufferView {
return ArrayBufferView.fromData(this);
}
@:arrayAccess public inline function get(index:Int):UInt {
return this[index];
}
@:arrayAccess public inline function set(index:Int, value:UInt):UInt {
return this[index] = value;
}
public inline function sub(begin:Int, ?length:Int):UInt32Array {
return fromData(this.subarray(begin, length == null ? this.length : begin + length));
}
public inline function subarray(?begin:Int, ?end:Int):UInt32Array {
return fromData(this.subarray(begin, end));
}
public inline function getData():UInt32ArrayData {
return this;
}
public static inline function fromData(d:UInt32ArrayData):UInt32Array {
return cast d;
}
public static function fromArray(a:Array<UInt>, pos:Int = 0, ?length:Int):UInt32Array {
if (length == null)
length = a.length - pos;
if (pos < 0 || length < 0 || pos + length > a.length)
throw Error.OutsideBounds;
if (pos == 0 && length == a.length)
return fromData(new UInt32ArrayData(a));
var i = new UInt32Array(a.length);
for (idx in 0...length)
i[idx] = a[idx + pos];
return i;
}
public static function fromBytes(bytes:haxe.io.Bytes, bytePos:Int = 0, ?length:Int):UInt32Array {
if (length == null)
length = (bytes.length - bytePos) >> 2;
return fromData(new UInt32ArrayData(bytes.getData(), bytePos, length));
}
}

View File

@ -0,0 +1,88 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package haxe.io;
typedef UInt8ArrayData = js.lib.Uint8Array;
@:coreApi
abstract UInt8Array(UInt8ArrayData) {
public static inline var BYTES_PER_ELEMENT = 1;
public var length(get, never):Int;
public var view(get, never):ArrayBufferView;
public inline function new(elements:Int) {
this = new UInt8ArrayData(elements);
}
inline function get_length():Int {
return this.length;
}
public inline function get_view():ArrayBufferView {
return ArrayBufferView.fromData(this);
}
@:arrayAccess public inline function get(index:Int):Int {
return this[index];
}
@:arrayAccess public inline function set(index:Int, value:Int):Int {
return this[index] = value;
}
public inline function sub(begin:Int, ?length:Int):UInt8Array {
return fromData(this.subarray(begin, length == null ? this.length : begin + length));
}
public inline function subarray(?begin:Int, ?end:Int):UInt8Array {
return fromData(this.subarray(begin, end));
}
public inline function getData():UInt8ArrayData {
return this;
}
public static inline function fromData(d:UInt8ArrayData):UInt8Array {
return cast d;
}
public static function fromArray(a:Array<Int>, pos:Int = 0, ?length:Int):UInt8Array {
if (length == null)
length = a.length - pos;
if (pos < 0 || length < 0 || pos + length > a.length)
throw Error.OutsideBounds;
if (pos == 0 && length == a.length)
return fromData(new UInt8ArrayData(a));
var i = new UInt8Array(a.length);
for (idx in 0...length)
i[idx] = a[idx + pos];
return i;
}
public static function fromBytes(bytes:haxe.io.Bytes, bytePos:Int = 0, ?length:Int):UInt8Array {
if (length == null)
length = bytes.length - bytePos;
return fromData(new UInt8ArrayData(bytes.getData(), bytePos, length));
}
}

View File

@ -0,0 +1,49 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\AbortController.webidl. Do not edit!
package js.html;
/**
The `AbortController` interface represents a controller object that allows you to abort one or more DOM requests as and when desired.
Documentation [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/AbortController$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/AbortController>
**/
@:native("AbortController")
extern class AbortController {
/**
Returns a `AbortSignal` object instance, which can be used to communicate with/abort a DOM request.
**/
var signal(default,null) : AbortSignal;
/** @throws DOMError */
function new() : Void;
/**
Aborts a DOM request before it has completed. This is able to abort fetch requests, consumption of any response `Body`, and streams.
**/
function abort() : Void;
}

View File

@ -0,0 +1,47 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\AbortSignal.webidl. Do not edit!
package js.html;
/**
The `AbortSignal` interface represents a signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an `AbortController` object.
Documentation [AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal>
**/
@:native("AbortSignal")
extern class AbortSignal extends EventTarget {
/**
A `Boolean` that indicates whether the request(s) the signal is communicating with is/are aborted (`true`) or not (`false`).
**/
var aborted(default,null) : Bool;
/**
Invoked when an `abort_(dom_abort_api)` event fires, i.e. when the DOM request(s) the signal is communicating with is/are aborted.
**/
var onabort : haxe.Constraints.Function;
}

View File

@ -0,0 +1,30 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\EventTarget.webidl. Do not edit!
package js.html;
typedef AddEventListenerOptions = EventListenerOptions & {
var ?once : Bool;
var ?passive : Bool;
}

View File

@ -0,0 +1,33 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\VTTCue.webidl. Do not edit!
package js.html;
enum abstract AlignSetting(String) {
var START = "start";
var CENTER = "center";
var END = "end";
var LEFT = "left";
var RIGHT = "right";
}

View File

@ -0,0 +1,116 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\HTMLAnchorElement.webidl. Do not edit!
package js.html;
/**
The `HTMLAnchorElement` interface represents hyperlink elements and provides special properties and methods (beyond those of the regular `HTMLElement` object interface that they inherit from) for manipulating the layout and presentation of such elements.
Documentation [HTMLAnchorElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement>
**/
@:native("HTMLAnchorElement")
extern class AnchorElement extends Element {
/**
Is a `DOMString` that reflects the `target` HTML attribute, indicating where to display the linked resource.
**/
var target : String;
/**
Is a `DOMString` indicating that the linked resource is intended to be downloaded rather than displayed in the browser. The value represent the proposed name of the file. If the name is not a valid filename of the underlying OS, browser will adapt it.
**/
var download : String;
var ping : String;
/**
Is a `DOMString` that reflects the `rel` HTML attribute, specifying the relationship of the target object to the linked object.
**/
var rel : String;
/**
Is a `DOMString` that reflects the `referrerpolicy` HTML attribute indicating which referrer to use.
**/
var referrerPolicy : String;
/**
Returns a `DOMTokenList` that reflects the `rel` HTML attribute, as a list of tokens.
**/
var relList(default,null) : DOMTokenList;
/**
Is a `DOMString` that reflects the `hreflang` HTML attribute, indicating the language of the linked resource.
**/
var hreflang : String;
/**
Is a `DOMString` that reflects the `type` HTML attribute, indicating the MIME type of the linked resource.
**/
var type : String;
/**
Is a `DOMString` being a synonym for the `Node.textContent` property.
**/
var text : String;
/**
Is a `DOMString` representing a comma-separated list of coordinates.
**/
var coords : String;
/**
Is a `DOMString` representing the character encoding of the linked resource.
**/
var charset : String;
/**
Is a `DOMString` representing the anchor name.
**/
var name : String;
/**
Is a `DOMString` representing that the `rev` HTML attribute, specifying the relationship of the link object to the target object.
Note: Currently the W3C HTML 5.2 spec states that `rev` is no longer obsolete, whereas the WHATWG living standard still has it labeled obsolete. Until this discrepancy is resolved, you should still assume it is obsolete.
**/
var rev : String;
/**
Is a `DOMString` representing the shape of the active area.
**/
var shape : String;
var href : String;
var origin(default,null) : String;
var protocol : String;
var username : String;
var password : String;
var host : String;
var hostname : String;
var port : String;
var pathname : String;
var search : String;
var hash : String;
}

View File

@ -0,0 +1,135 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\Animation.webidl. Do not edit!
package js.html;
import js.lib.Promise;
/**
The `Animation` interface of the Web Animations API represents a single animation player and provides playback controls and a timeline for an animation node or source.
Documentation [Animation](https://developer.mozilla.org/en-US/docs/Web/API/Animation) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/Animation$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/Animation>
**/
@:native("Animation")
extern class Animation extends EventTarget {
/**
Gets and sets the `String` used to identify the animation.
**/
var id : String;
/**
Gets and sets the `AnimationEffectReadOnly` associated with this animation. This will usually be a `KeyframeEffect` object.
**/
var effect : AnimationEffect;
/**
Gets or sets the `AnimationTimeline` associated with this animation.
**/
var timeline : AnimationTimeline;
/**
Gets or sets the scheduled time when an animation's playback should begin.
**/
var startTime : Float;
/**
The current time value of the animation in milliseconds, whether running or paused. If the animation lacks a `AnimationTimeline`, is inactive or hasn't been played yet, its value is `null`.
**/
var currentTime : Float;
/**
Gets or sets the playback rate of the animation.
**/
var playbackRate : Float;
/**
Returns an enumerated value describing the playback state of an animation.
**/
var playState(default,null) : AnimationPlayState;
/**
Indicates whether the animation is currently waiting for an asynchronous operation such as initiating playback or pausing a running animation.
**/
var pending(default,null) : Bool;
/**
Returns the current ready Promise for this animation.
**/
var ready(default,null) : Promise<Animation>;
/**
Returns the current finished Promise for this animation.
**/
var finished(default,null) : Promise<Animation>;
/**
Gets and sets the event handler for the `finish` event.
**/
var onfinish : haxe.Constraints.Function;
/**
Gets and sets the event handler for the `cancel` event.
**/
var oncancel : haxe.Constraints.Function;
/** @throws DOMError */
function new( ?effect : AnimationEffect, ?timeline : AnimationTimeline ) : Void;
/**
Clears all `KeyframeEffect` caused by this animation and aborts its playback.
**/
function cancel() : Void;
/**
Seeks either end of an animation, depending on whether the animation is playing or reversing.
@throws DOMError
**/
function finish() : Void;
/**
Starts or resumes playing of an animation, or begins the animation again if it previously finished.
@throws DOMError
**/
function play() : Void;
/**
Suspends playing of an animation.
@throws DOMError
**/
function pause() : Void;
/**
Sets the speed of an animation after first synchronizing its playback position.
**/
function updatePlaybackRate( playbackRate : Float ) : Void;
/**
Reverses playback direction, stopping at the start of the animation. If the animation is finished or unplayed, it will play from end to beginning.
@throws DOMError
**/
function reverse() : Void;
}

View File

@ -0,0 +1,40 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\AnimationEffect.webidl. Do not edit!
package js.html;
/**
The `AnimationEffect` interface of the Web Animations API defines current and future animation effects like `KeyframeEffect`, which can be passed to `Animation` objects for playing, and `KeyframeEffectReadOnly` (which is used by CSS Animations and Transitions).
Documentation [AnimationEffect](https://developer.mozilla.org/en-US/docs/Web/API/AnimationEffect) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/AnimationEffect$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/AnimationEffect>
**/
@:native("AnimationEffect")
extern class AnimationEffect {
function getTiming() : EffectTiming;
function getComputedTiming() : ComputedEffectTiming;
/** @throws DOMError */
function updateTiming( ?timing : OptionalEffectTiming ) : Void;
}

View File

@ -0,0 +1,54 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\AnimationEvent.webidl. Do not edit!
package js.html;
/**
The `AnimationEvent` interface represents events providing information related to animations.
Documentation [AnimationEvent](https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent>
**/
@:native("AnimationEvent")
extern class AnimationEvent extends Event {
/**
Is a `DOMString` containing the value of the `animation-name` CSS property associated with the transition.
**/
var animationName(default,null) : String;
/**
Is a `float` giving the amount of time the animation has been running, in seconds, when this event fired, excluding any time the animation was paused. For an `"animationstart"` event, `elapsedTime` is `0.0` unless there was a negative value for `animation-delay`, in which case the event will be fired with `elapsedTime` containing  `(-1 * `delay`)`.
**/
var elapsedTime(default,null) : Float;
/**
Is a `DOMString`, starting with `'::'`, containing the name of the pseudo-element the animation runs on. If the animation doesn't run on a pseudo-element but on the element, an empty string: `''``.`
**/
var pseudoElement(default,null) : String;
/** @throws DOMError */
function new( type : String, ?eventInitDict : AnimationEventInit ) : Void;
}

View File

@ -0,0 +1,31 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\AnimationEvent.webidl. Do not edit!
package js.html;
typedef AnimationEventInit = EventInit & {
var ?animationName : String;
var ?elapsedTime : Float;
var ?pseudoElement : String;
}

View File

@ -0,0 +1,29 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\Animatable.webidl. Do not edit!
package js.html;
typedef AnimationFilter = {
var ?subtree : Bool;
}

View File

@ -0,0 +1,32 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\Animation.webidl. Do not edit!
package js.html;
enum abstract AnimationPlayState(String) {
var IDLE = "idle";
var RUNNING = "running";
var PAUSED = "paused";
var FINISHED = "finished";
}

View File

@ -0,0 +1,41 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\AnimationPlaybackEvent.webidl. Do not edit!
package js.html;
/**
The AnimationPlaybackEvent interface of the Web Animations API represents animation events.
Documentation [AnimationPlaybackEvent](https://developer.mozilla.org/en-US/docs/Web/API/AnimationPlaybackEvent) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/AnimationPlaybackEvent$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/AnimationPlaybackEvent>
**/
@:native("AnimationPlaybackEvent")
extern class AnimationPlaybackEvent extends Event {
var currentTime(default,null) : Float;
var timelineTime(default,null) : Float;
/** @throws DOMError */
function new( type : String, ?eventInitDict : AnimationPlaybackEventInit ) : Void;
}

View File

@ -0,0 +1,30 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\AnimationPlaybackEvent.webidl. Do not edit!
package js.html;
typedef AnimationPlaybackEventInit = EventInit & {
var ?currentTime : Float;
var ?timelineTime : Float;
}

View File

@ -0,0 +1,42 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\AnimationTimeline.webidl. Do not edit!
package js.html;
/**
The `AnimationTimeline` interface of the Web Animations API represents the timeline of an animation. This interface exists to define timeline features (inherited by `DocumentTimeline` and future timeline types) and is not itself directly used by developers. Anywhere you see `AnimationTimeline`, you should use `DocumentTimeline` or any other timeline type instead.
Documentation [AnimationTimeline](https://developer.mozilla.org/en-US/docs/Web/API/AnimationTimeline) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/AnimationTimeline$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/AnimationTimeline>
**/
@:native("AnimationTimeline")
extern class AnimationTimeline {
/**
Returns the time value in milliseconds for this timeline or `null` if this timeline is inactive.
**/
var currentTime(default,null) : Float;
}

View File

@ -0,0 +1,94 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\HTMLAreaElement.webidl. Do not edit!
package js.html;
/**
The `HTMLAreaElement` interface provides special properties and methods (beyond those of the regular object `HTMLElement` interface it also has available to it by inheritance) for manipulating the layout and presentation of area elements.
Documentation [HTMLAreaElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement>
**/
@:native("HTMLAreaElement")
extern class AreaElement extends Element {
/**
Is a `DOMString` that reflects the `alt` HTML attribute, containing alternative text for the element.
**/
var alt : String;
/**
Is a `DOMString` that reflects the `coords` HTML attribute, containing coordinates to define the hot-spot region.
**/
var coords : String;
/**
Is a `DOMString` that reflects the `shape` HTML attribute, indicating the shape of the hot-spot, limited to known values.
**/
var shape : String;
/**
Is a `DOMString` that reflects the `target` HTML attribute, indicating the browsing context in which to open the linked resource.
**/
var target : String;
/**
Is a `DOMString` indicating that the linked resource is intended to be downloaded rather than displayed in the browser. The value represent the proposed name of the file. If the name is not a valid filename of the underlying OS, browser will adapt it.
**/
var download : String;
var ping : String;
/**
Is a `DOMString` that reflects the `rel` HTML attribute, indicating relationships of the current document to the linked resource.
**/
var rel : String;
/**
Is a `DOMString` that reflects the `referrerpolicy` HTML attribute indicating which referrer to use when fetching the linked resource.
**/
var referrerPolicy : String;
/**
Returns a `DOMTokenList` that reflects the `rel` HTML attribute, indicating relationships of the current document to the linked resource, as a list of tokens.
**/
var relList(default,null) : DOMTokenList;
/**
Is a `Boolean` flag indicating if the area is inactive (`true`) or active (`false`).
**/
var noHref : Bool;
var href : String;
var origin(default,null) : String;
var protocol : String;
var username : String;
var password : String;
var host : String;
var hostname : String;
var port : String;
var pathname : String;
var search : String;
var hash : String;
}

View File

@ -0,0 +1,25 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js.html;
@:deprecated typedef ArrayBuffer = js.lib.ArrayBuffer;

View File

@ -0,0 +1,25 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package js.html;
@:deprecated typedef ArrayBufferView = js.lib.ArrayBufferView;

View File

@ -0,0 +1,29 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\HTMLSlotElement.webidl. Do not edit!
package js.html;
typedef AssignedNodesOptions = {
var ?flatten : Bool;
}

View File

@ -0,0 +1,82 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\Attr.webidl. Do not edit!
package js.html;
/**
This type represents a DOM element's attribute as an object. In most DOM methods, you will probably directly retrieve the attribute as a string (e.g., `Element.getAttribute()`, but certain functions (e.g., `Element.getAttributeNode()`) or means of iterating give `Attr` types.
Documentation [Attr](https://developer.mozilla.org/en-US/docs/Web/API/Attr) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/Attr$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/Attr>
**/
@:native("Attr")
extern class Attr extends Node {
/**
A `DOMString` representing the local part of the qualified name of the attribute.
**/
var localName(default,null) : String;
/**
The attribute's value.
**/
var value : String;
/**
The attribute's name.
**/
var name(default,null) : String;
/**
A `DOMString` representing the namespace URI of the attribute, or `null` if there is no namespace.
**/
var namespaceURI(default,null) : String;
/**
A `DOMString` representing the namespace prefix of the attribute, or `null` if no prefix is specified.
**/
var prefix(default,null) : String;
/**
This property always returns `true`. Originally, it returned `true `if the attribute was explicitly specified in the source code or by a script, and `false` if its value came from the default one defined in the document's DTD.
**/
var specified(default,null) : Bool;
/**
The element holding the attribute.
Note: DOM Level 4 removed this property. The assumption was that since you get an `Attr` object from an `Element`, you should already know the associated element.
As that doesn't hold true in cases like `Attr` objects being returned by `Document.evaluate`, the DOM Living Standard reintroduced the property.
Gecko outputs a deprecation note starting from Gecko 7.0 `7.0`. This note was removed again in Gecko 49.0 `49.0`.
**/
var ownerElement(default,null) : Element;
}

View File

@ -0,0 +1,31 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from namedConstructors.webidl. Do not edit!
package js.html;
@:native("Audio")
extern class Audio extends AudioElement {
/** @throws DOMError */
function new( ?src : String ) : Void;
}

View File

@ -0,0 +1,36 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\HTMLAudioElement.webidl. Do not edit!
package js.html;
/**
The `HTMLAudioElement` interface provides access to the properties of `audio` elements, as well as methods to manipulate them. It derives from the `HTMLMediaElement` interface.
Documentation [HTMLAudioElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement>
**/
@:native("HTMLAudioElement")
extern class AudioElement extends MediaElement {
}

View File

@ -0,0 +1,29 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\AudioStreamTrack.webidl. Do not edit!
package js.html;
@:native("AudioStreamTrack")
extern class AudioStreamTrack extends MediaStreamTrack {
}

View File

@ -0,0 +1,62 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\AudioTrack.webidl. Do not edit!
package js.html;
/**
The `AudioTrack` interface represents a single audio track from one of the HTML media elements, `audio` or `video`.
Documentation [AudioTrack](https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack>
**/
@:native("AudioTrack")
extern class AudioTrack {
/**
A `DOMString` which uniquely identifies the track within the media. This ID can be used to locate a specific track within an audio track list by calling `AudioTrackList.getTrackById()`. The ID can also be used as the fragment part of the URL if the media supports seeking by media fragment per the Media Fragments URI specification.
**/
var id(default,null) : String;
/**
A `DOMString` specifying the category into which the track falls. For example, the main audio track would have a `kind` of `"main"`.
**/
var kind(default,null) : String;
/**
A `DOMString` providing a human-readable label for the track. For example, an audio commentary track for a movie might have a `label` of `"Commentary with director John Q. Public and actors John Doe and Jane Eod."` This string is empty if no label is provided.
**/
var label(default,null) : String;
/**
A `DOMString` specifying the audio track's primary language, or an empty string if unknown. The language is specified as a BCP 47 ({{RFC(5646)}}) language code, such as `"en-US"` or `"pt-BR"`.
**/
var language(default,null) : String;
/**
A Boolean value which controls whether or not the audio track's sound is enabled. Setting this value to `false` mutes the track's audio.
**/
var enabled : Bool;
}

View File

@ -0,0 +1,46 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\AudioTrackList.webidl. Do not edit!
package js.html;
/**
The `AudioTrackList` interface is used to represent a list of the audio tracks contained within a given HTML media element, with each track represented by a separate `AudioTrack` object in the list.
Documentation [AudioTrackList](https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList>
**/
@:native("AudioTrackList")
extern class AudioTrackList extends EventTarget implements ArrayAccess<AudioTrack> {
/**
The number of tracks in the list.
**/
var length(default,null) : Int;
var onchange : haxe.Constraints.Function;
var onaddtrack : haxe.Constraints.Function;
var onremovetrack : haxe.Constraints.Function;
function getTrackById( id : String ) : AudioTrack;
}

View File

@ -0,0 +1,29 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\VTTCue.webidl. Do not edit!
package js.html;
enum abstract AutoKeyword(String) {
var AUTO = "auto";
}

View File

@ -0,0 +1,42 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\HTMLBRElement.webidl. Do not edit!
package js.html;
/**
The `HTMLBRElement` interface represents a HTML line break element (`br`). It inherits from `HTMLElement`.
Documentation [HTMLBRElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLBRElement) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/HTMLBRElement$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBRElement>
**/
@:native("HTMLBRElement")
extern class BRElement extends Element {
/**
Is a `DOMString` indicating the flow of text around floating objects.
**/
var clear : String;
}

View File

@ -0,0 +1,31 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\BarProp.webidl. Do not edit!
package js.html;
@:native("BarProp")
extern class BarProp {
var visible : Bool;
}

View File

@ -0,0 +1,47 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\HTMLBaseElement.webidl. Do not edit!
package js.html;
/**
The `HTMLBaseElement` interface contains the base URI for a document. This object inherits all of the properties and methods as described in the `HTMLElement` interface.
Documentation [HTMLBaseElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement>
**/
@:native("HTMLBaseElement")
extern class BaseElement extends Element {
/**
Is a `DOMString` that reflects the `href` HTML attribute, containing a base URL for relative URLs in the document.
**/
var href : String;
/**
Is a `DOMString` that reflects the `target` HTML attribute, containing a default target browsing context or frame for elements that do not have a target reference specified.
**/
var target : String;
}

View File

@ -0,0 +1,77 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\BatteryManager.webidl. Do not edit!
package js.html;
/**
The `BatteryManager` interface provides ways to get information about the system's battery charge level.
Documentation [BatteryManager](https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager>
**/
@:native("BatteryManager")
extern class BatteryManager extends EventTarget {
/**
A Boolean value indicating whether or not the battery is currently being charged.
**/
var charging(default,null) : Bool;
/**
A number representing the remaining time in seconds until the battery is fully charged, or 0 if the battery is already fully charged.
**/
var chargingTime(default,null) : Float;
/**
A number representing the remaining time in seconds until the battery is completely discharged and the system will suspend.
**/
var dischargingTime(default,null) : Float;
/**
A number representing the system's battery charge level scaled to a value between 0.0 and 1.0.
**/
var level(default,null) : Float;
/**
A handler for the `chargingchange` event; This event is sent when the battery charging state is updated.
**/
var onchargingchange : haxe.Constraints.Function;
/**
A handler for the `chargingtimechange` event; This event is sent when the battery charging time is updated
**/
var onchargingtimechange : haxe.Constraints.Function;
/**
A handler for the `dischargingtimechange` event; This event is sent when the battery discharging time is updated.
**/
var ondischargingtimechange : haxe.Constraints.Function;
/**
A handler for the `levelchange` event; This event is sent when the battery level is updated.
**/
var onlevelchange : haxe.Constraints.Function;
}

View File

@ -0,0 +1,36 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\BeforeUnloadEvent.webidl. Do not edit!
package js.html;
/**
The `beforeunload` event is fired when the window, the document and its resources are about to be unloaded.
Documentation [BeforeUnloadEvent](https://developer.mozilla.org/en-US/docs/Web/API/BeforeUnloadEvent) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/BeforeUnloadEvent$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/BeforeUnloadEvent>
**/
@:native("BeforeUnloadEvent")
extern class BeforeUnloadEvent extends Event {
}

View File

@ -0,0 +1,30 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\WebSocket.webidl. Do not edit!
package js.html;
enum abstract BinaryType(String) {
var BLOB = "blob";
var ARRAYBUFFER = "arraybuffer";
}

View File

@ -0,0 +1,56 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\Blob.webidl. Do not edit!
package js.html;
/**
A `Blob` object represents a file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The `File` interface is based on `Blob`, inheriting blob functionality and expanding it to support files on the user's system.
Documentation [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/Blob$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/Blob>
**/
@:native("Blob")
extern class Blob
{
/**
The size, in bytes, of the data contained in the `Blob` object.
**/
var size(default,null) : Int;
/**
A string indicating the MIME type of the data contained in the `Blob`. If the type is unknown, this string is empty.
**/
var type(default,null) : String;
/** @throws DOMError */
function new( ?blobParts : Array<haxe.extern.EitherType<js.lib.ArrayBuffer,haxe.extern.EitherType<js.lib.ArrayBufferView,haxe.extern.EitherType<Blob,String>>>>, ?options : BlobPropertyBag ) : Void;
/**
Returns a new `Blob` object containing the data in the specified range of bytes of the source `Blob`.
@throws DOMError
**/
function slice( ?start : Int, ?end : Int, ?contentType : String ) : Blob;
}

View File

@ -0,0 +1,44 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\BlobEvent.webidl. Do not edit!
package js.html;
/**
The `BlobEvent` interface represents events associated with a `Blob`. These blobs are typically, but not necessarily,  associated with media content.
Documentation [BlobEvent](https://developer.mozilla.org/en-US/docs/Web/API/BlobEvent) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/BlobEvent$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/BlobEvent>
**/
@:native("BlobEvent")
extern class BlobEvent extends Event {
/**
A `Blob` representing the data associated with the event. The event was fired on the `EventTarget` because of something happening on that specific `Blob`.
**/
var data(default,null) : Blob;
/** @throws DOMError */
function new( type : String, ?eventInitDict : BlobEventInit ) : Void;
}

View File

@ -0,0 +1,29 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\BlobEvent.webidl. Do not edit!
package js.html;
typedef BlobEventInit = EventInit & {
var ?data : Blob;
}

View File

@ -0,0 +1,30 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\Blob.webidl. Do not edit!
package js.html;
typedef BlobPropertyBag = {
var ?endings : EndingTypes;
var ?type : String;
}

View File

@ -0,0 +1,81 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\HTMLBodyElement.webidl. Do not edit!
package js.html;
/**
The `HTMLBodyElement` interface provides special properties (beyond those of the regular `HTMLElement` interface they also inherit) for manipulating body elements.
Documentation [HTMLBodyElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement>
**/
@:native("HTMLBodyElement")
extern class BodyElement extends Element {
/**
Is a `DOMString` that represents the foreground color of text.
**/
var text : String;
/**
Is a `DOMString` that represents the color of unvisited links.
**/
var link : String;
/**
Is a `DOMString` that represents the color of visited links.
**/
var vLink : String;
/**
Is a `DOMString` that represents the color of active hyperlinks.
**/
var aLink : String;
/**
Is a `DOMString` that represents the background color for the document.
**/
var bgColor : String;
/**
Is a `DOMString` that represents the description of the location of the background image resource. Note that this is not an URI, though some older version of some browsers do expect it.
**/
var background : String;
var onafterprint : haxe.Constraints.Function;
var onbeforeprint : haxe.Constraints.Function;
var onbeforeunload : Event -> Null<String>;
var onhashchange : haxe.Constraints.Function;
var onlanguagechange : haxe.Constraints.Function;
var onmessage : haxe.Constraints.Function;
var onmessageerror : haxe.Constraints.Function;
var onoffline : haxe.Constraints.Function;
var ononline : haxe.Constraints.Function;
var onpagehide : haxe.Constraints.Function;
var onpageshow : haxe.Constraints.Function;
var onpopstate : haxe.Constraints.Function;
var onstorage : haxe.Constraints.Function;
var onunload : haxe.Constraints.Function;
}

View File

@ -0,0 +1,65 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\BroadcastChannel.webidl. Do not edit!
package js.html;
/**
The `BroadcastChannel` interface represents a named channel that any browsing context of a given origin can subscribe to. It allows communication between different documents (in different windows, tabs, frames or iframes) of the same origin. Messages are broadcasted via a `message` event fired at all `BroadcastChannel` objects listening to the channel.
Documentation [BroadcastChannel](https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel>
**/
@:native("BroadcastChannel")
extern class BroadcastChannel extends EventTarget {
/**
Returns a `DOMString`, the name of the channel.
**/
var name(default,null) : String;
/**
An `EventHandler` property that specifies the function to execute when a `message` event is fired on this object.
**/
var onmessage : haxe.Constraints.Function;
/**
An `EventHandler` called when a `MessageEvent` of type `MessageError` is fired—that is, when it receives a message that cannot be deserialized.
**/
var onmessageerror : haxe.Constraints.Function;
/** @throws DOMError */
function new( channel : String ) : Void;
/**
Sends the message, of any type of object, to each `BroadcastChannel` object listening to the same channel.
@throws DOMError
**/
function postMessage( message : Dynamic ) : Void;
/**
Closes the channel object, indicating it won't get any new messages, and allowing it to be, eventually, garbage collected.
**/
function close() : Void;
}

View File

@ -0,0 +1,124 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\HTMLButtonElement.webidl. Do not edit!
package js.html;
/**
The `HTMLButtonElement` interface provides properties and methods (beyond the `button` object interface it also has available to them by inheritance) for manipulating the layout and presentation of button elements.
Documentation [HTMLButtonElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement>
**/
@:native("HTMLButtonElement")
extern class ButtonElement extends Element {
/**
Is a `Boolean` indicating whether or not 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.
**/
var autofocus : Bool;
/**
Is a `Boolean` indicating whether or not the control is disabled, meaning that it does not accept any clicks.
**/
var disabled : Bool;
/**
Is a `HTMLFormElement` reflecting the form that this button is associated with. If the button is a descendant of a form element, then this attribute is the ID of that form element.
If the button is not a descendant of a form element, then the attribute can be the ID of any form element in the same document it is related to, or the `null` value if none matches.
**/
var form(default,null) : FormElement;
/**
Is a `DOMString` reflecting the URI of a resource that processes information submitted by the button. If specified, this attribute overrides the `action` attribute of the `form` element that owns this element.
**/
var formAction : String;
/**
Is a `DOMString` reflecting the type of content that is used to submit the form to the server. If specified, this attribute overrides the `enctype` attribute of the `form` element that owns this element.
**/
var formEnctype : String;
/**
Is a `DOMString` reflecting the HTTP method that the browser uses to submit the form. If specified, this attribute overrides the `method` attribute of the `form` element that owns this element.
**/
var formMethod : String;
/**
Is a `Boolean` indicating that the form is not to be validated when it is submitted. If specified, this attribute overrides the `novalidate` attribute of the `form` element that owns this element.
**/
var formNoValidate : Bool;
/**
Is a `DOMString` reflecting a name or keyword indicating where to display the response that is received after submitting the form. If specified, this attribute overrides the `target` attribute of the `form` element that owns this element.
**/
var formTarget : String;
/**
Is a `DOMString` representing the name of the object when submitted with a form. {{HTMLVersionInline(5)}} If specified, it must not be the empty string.
**/
var name : String;
/**
Is a `DOMString` indicating the behavior of the button. This is an enumerated attribute with the following possible values:
`"submit"`: The button submits the form. This is the default value if the attribute is not specified, {{HTMLVersionInline(5)}} or if it is dynamically changed to an empty or invalid value.
`"reset"`: The button resets the form.
`"button"`: The button does nothing.
`"menu"`: The button displays a menu. <em>(experimental)</em>
**/
var type : String;
/**
Is a `DOMString` representing the current form control value of the button.
**/
var value : String;
/**
Is a `Boolean` indicating whether the button is a candidate for constraint validation. It is `false` if any conditions bar it from constraint validation.
**/
var willValidate(default,null) : Bool;
/**
Is a `ValidityState` representing the validity states that this button is in.
**/
var validity(default,null) : ValidityState;
/**
Is a `DOMString` representing the 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 (`willValidate` is `false`), or it satisfies its constraints.
**/
var validationMessage(default,null) : String;
/**
Is a `NodeList` that represents a list of `label` elements that are labels for this button.
**/
var labels(default,null) : NodeList;
function checkValidity() : Bool;
function reportValidity() : Bool;
function setCustomValidity( error : String ) : Void;
}

View File

@ -0,0 +1,36 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CDATASection.webidl. Do not edit!
package js.html;
/**
The `CDATASection` interface represents a CDATA section that can be used within XML to include extended portions of unescaped text. The symbols `` and `&amp;` dont need escaping as they normally do when inside a CDATA section.
Documentation [CDATASection](https://developer.mozilla.org/en-US/docs/Web/API/CDATASection) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CDATASection$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CDATASection>
**/
@:native("CDATASection")
extern class CDATASection extends Text {
}

View File

@ -0,0 +1,48 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSS.webidl. Do not edit!
package js.html;
/**
The `CSS` interface holds useful CSS-related methods. No object with this interface are implemented: it contains only static methods and therefore is a utilitarian interface.
Documentation [CSS](https://developer.mozilla.org/en-US/docs/Web/API/CSS) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSS$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSS>
**/
@:native("CSS")
extern class CSS {
/**
Returns a `Boolean` indicating if the pair property-value, or the condition, given in parameter is supported.
@throws DOMError
**/
@:overload( function( property : String, value : String ) : Bool {} )
static function supports( conditionText : String ) : Bool;
/**
Can be used to escape a string mostly for use as part of a CSS selector.
**/
static function escape( ident : String ) : String;
}

View File

@ -0,0 +1,31 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSAnimation.webidl. Do not edit!
package js.html;
@:native("CSSAnimation")
extern class CSSAnimation extends Animation {
var animationName(default,null) : String;
}

View File

@ -0,0 +1,32 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\GeometryUtils.webidl. Do not edit!
package js.html;
enum abstract CSSBoxType(String) {
var MARGIN = "margin";
var BORDER = "border";
var PADDING = "padding";
var CONTENT = "content";
}

View File

@ -0,0 +1,42 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSConditionRule.webidl. Do not edit!
package js.html;
/**
An object implementing the `CSSConditionRule` interface represents a single condition CSS at-rule, which consists of a condition and a statement block. It is a child of `CSSGroupingRule`.
Documentation [CSSConditionRule](https://developer.mozilla.org/en-US/docs/Web/API/CSSConditionRule) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSConditionRule$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSConditionRule>
**/
@:native("CSSConditionRule")
extern class CSSConditionRule extends CSSGroupingRule {
/**
Represents the text of the condition of the rule.
**/
var conditionText : String;
}

View File

@ -0,0 +1,92 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSCounterStyleRule.webidl. Do not edit!
package js.html;
/**
The `CSSCounterStyleRule` interface represents an `@counter-style` at-rule.
Documentation [CSSCounterStyleRule](https://developer.mozilla.org/en-US/docs/Web/API/CSSCounterStyleRule) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSCounterStyleRule$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSCounterStyleRule>
**/
@:native("CSSCounterStyleRule")
extern class CSSCounterStyleRule extends CSSRule {
/**
Is a `DOMString` object that contains the serialization of the `counter-style-name` defined for the associated rule.
**/
var name : String;
/**
Is a `DOMString` object that contains the serialization of the `@counter-style/system` descriptor defined for the associated rule. If the descriptor was not specified in the associated rule, the attribute returns an empty string.
**/
var system : String;
/**
Is a `DOMString` object that contains the serialization of the `@counter-style/symbols` descriptor defined for the associated rule. If the descriptor was not specified in the associated rule, the attribute returns an empty string.
**/
var symbols : String;
/**
Is a `DOMString` object that contains the serialization of the `@counter-style/additive-symbols` descriptor defined for the associated rule. If the descriptor was not specified in the associated rule, the attribute returns an empty string.
**/
var additiveSymbols : String;
/**
Is a `DOMString` object that contains the serialization of the `@counter-style/negative` descriptor defined for the associated rule. If the descriptor was not specified in the associated rule, the attribute returns an empty string.
**/
var negative : String;
/**
Is a `DOMString` object that contains the serialization of the `@counter-style/prefix` descriptor defined for the associated rule. If the descriptor was not specified in the associated rule, the attribute returns an empty string.
**/
var prefix : String;
/**
Is a `DOMString` object that contains the serialization of the `@counter-style/suffix` descriptor defined for the associated rule. If the descriptor was not specified in the associated rule, the attribute returns an empty string.
**/
var suffix : String;
/**
Is a `DOMString` object that contains the serialization of the `@counter-style/range` descriptor defined for the associated rule. If the descriptor was not specified in the associated rule, the attribute returns an empty string.
**/
var range : String;
/**
Is a `DOMString` object that contains the serialization of the `@counter-style/pad` descriptor defined for the associated rule. If the descriptor was not specified in the associated rule, the attribute returns an empty string.
**/
var pad : String;
/**
Is a `DOMString` object that contains the serialization of the `@counter-style/speak-as` descriptor defined for the associated rule. If the descriptor was not specified in the associated rule, the attribute returns an empty string.
**/
var speakAs : String;
/**
Is a `DOMString` object that contains the serialization of the `@counter-style/fallback` descriptor defined for the associated rule. If the descriptor was not specified in the associated rule, the attribute returns an empty string.
**/
var fallback : String;
}

View File

@ -0,0 +1,31 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSFontFaceRule.webidl. Do not edit!
package js.html;
@:native("CSSFontFaceRule")
extern class CSSFontFaceRule extends CSSRule {
var style(default,null) : CSSStyleDeclaration;
}

View File

@ -0,0 +1,32 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSFontFeatureValuesRule.webidl. Do not edit!
package js.html;
@:native("CSSFontFeatureValuesRule")
extern class CSSFontFeatureValuesRule extends CSSRule {
var fontFamily : String;
var valueText : String;
}

View File

@ -0,0 +1,42 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSGroupingRule.webidl. Do not edit!
package js.html;
/**
An object implementing the `CSSGroupingRule` interface represents any CSS at-rule that contains other rules nested within it.
Documentation [CSSGroupingRule](https://developer.mozilla.org/en-US/docs/Web/API/CSSGroupingRule) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSGroupingRule$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSGroupingRule>
**/
@:native("CSSGroupingRule")
extern class CSSGroupingRule extends CSSRule {
var cssRules(default,null) : CSSRuleList;
/** @throws DOMError */
function insertRule( rule : String, index : Int = 0 ) : Int;
/** @throws DOMError */
function deleteRule( index : Int ) : Void;
}

View File

@ -0,0 +1,33 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSImportRule.webidl. Do not edit!
package js.html;
@:native("CSSImportRule")
extern class CSSImportRule extends CSSRule {
var href(default,null) : String;
var media(default,null) : MediaList;
var styleSheet(default,null) : CSSStyleSheet;
}

View File

@ -0,0 +1,39 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSKeyframeRule.webidl. Do not edit!
package js.html;
/**
The `CSSKeyframeRule` interface describes an object representing a set of style for a given keyframe. It corresponds to the contains of a single keyframe of a `@keyframes` at-rule. It implements the `CSSRule` interface with a type value of `8` (`CSSRule.KEYFRAME_RULE`).
Documentation [CSSKeyframeRule](https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframeRule) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframeRule$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframeRule>
**/
@:native("CSSKeyframeRule")
extern class CSSKeyframeRule extends CSSRule {
var keyText : String;
var style(default,null) : CSSStyleDeclaration;
}

View File

@ -0,0 +1,62 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSKeyframesRule.webidl. Do not edit!
package js.html;
/**
The `CSSKeyframesRule` interface describes an object representing a complete set of keyframes for a CSS animation. It corresponds to the contains of a whole `@keyframes` at-rule. It implements the `CSSRule` interface with a type value of `7` (`CSSRule.KEYFRAMES_RULE`).
Documentation [CSSKeyframesRule](https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule>
**/
@:native("CSSKeyframesRule")
extern class CSSKeyframesRule extends CSSRule {
/**
Represents the name of the animation, used by the `animation-name` property.
**/
var name : String;
/**
Returns a `CSSRuleList` of the CSS rules in the media rule.
**/
var cssRules(default,null) : CSSRuleList;
/**
Inserts a new keyframe rule into the current CSSKeyframesRule. The parameter is a `DOMString` containing a keyframe in the same format as an entry of a `@keyframes` at-rule. If it contains more than one keyframe rule, a `DOMException` with a `SYNTAX_ERR` is thrown.
**/
function appendRule( rule : String ) : Void;
/**
Deletes a keyframe rule from the current CSSKeyframesRule. The parameter is the index of the keyframe to be deleted, expressed as a `DOMString` resolving as a number between `0%` and `100%`.
**/
function deleteRule( select : String ) : Void;
/**
Returns a keyframe rule corresponding to the given key. The key is a `DOMString` containing an index of the keyframe to be returned, resolving to a percentage between `0%` and `100%`. If no such keyframe exists, `findRule` returns `null`.
**/
function findRule( select : String ) : CSSKeyframeRule;
}

View File

@ -0,0 +1,42 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSMediaRule.webidl. Do not edit!
package js.html;
/**
The `CSSMediaRule` is an interface representing a single CSS `@media` rule. It implements the `CSSConditionRule` interface, and therefore the `CSSGroupingRule` and the `CSSRule` interface with a type value of `4` (`CSSRule.MEDIA_RULE`).
Documentation [CSSMediaRule](https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule>
**/
@:native("CSSMediaRule")
extern class CSSMediaRule extends CSSConditionRule {
/**
Specifies a `MediaList` representing the intended destination medium for style information.
**/
var media(default,null) : MediaList;
}

View File

@ -0,0 +1,29 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSMozDocumentRule.webidl. Do not edit!
package js.html;
@:native("CSSMozDocumentRule")
extern class CSSMozDocumentRule extends CSSConditionRule {
}

View File

@ -0,0 +1,47 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSNamespaceRule.webidl. Do not edit!
package js.html;
/**
The `CSSNamespaceRule` interface describes an object representing a single CSS `@namespace` at-rule. It implements the `CSSRule` interface, with a type value of `10` (`CSSRule.NAMESPACE_RULE`).
Documentation [CSSNamespaceRule](https://developer.mozilla.org/en-US/docs/Web/API/CSSNamespaceRule) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSNamespaceRule$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSNamespaceRule>
**/
@:native("CSSNamespaceRule")
extern class CSSNamespaceRule extends CSSRule {
/**
Returns a `DOMString` containing the text of the URI of the given namespace.
**/
var namespaceURI(default,null) : String;
/**
Returns a `DOMString` with the name of the prefix associated to this namespace. If there is no such prefix, returns  `null`.
**/
var prefix(default,null) : String;
}

View File

@ -0,0 +1,42 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSPageRule.webidl. Do not edit!
package js.html;
/**
`CSSPageRule` is an interface representing a single CSS `@page` rule. It implements the `CSSRule` interface with a type value of `6` (`CSSRule.PAGE_RULE`).
Documentation [CSSPageRule](https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule>
**/
@:native("CSSPageRule")
extern class CSSPageRule extends CSSRule {
/**
Returns the declaration block associated with the at-rule.
**/
var style(default,null) : CSSStyleDeclaration;
}

View File

@ -0,0 +1,36 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSPseudoElement.webidl. Do not edit!
package js.html;
@:native("CSSPseudoElement")
extern class CSSPseudoElement {
var type(default,null) : String;
var parentElement(default,null) : Element;
/** @throws DOMError */
@:overload( function( keyframes : Dynamic, ?options : KeyframeAnimationOptions) : Animation {} )
function animate( keyframes : Dynamic, ?options : Float ) : Animation;
function getAnimations( ?filter : AnimationFilter ) : Array<Animation>;
}

View File

@ -0,0 +1,54 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSRule.webidl. Do not edit!
package js.html;
/**
The `CSSRule` interface represents a single CSS rule. There are several types of rules, listed in the Type constants section below.
Documentation [CSSRule](https://developer.mozilla.org/en-US/docs/Web/API/CSSRule) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSRule$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSRule>
**/
@:native("CSSRule")
extern class CSSRule {
static inline var STYLE_RULE : Int = 1;
static inline var CHARSET_RULE : Int = 2;
static inline var IMPORT_RULE : Int = 3;
static inline var MEDIA_RULE : Int = 4;
static inline var FONT_FACE_RULE : Int = 5;
static inline var PAGE_RULE : Int = 6;
static inline var NAMESPACE_RULE : Int = 10;
static inline var KEYFRAMES_RULE : Int = 7;
static inline var KEYFRAME_RULE : Int = 8;
static inline var COUNTER_STYLE_RULE : Int = 11;
static inline var SUPPORTS_RULE : Int = 12;
static inline var FONT_FEATURE_VALUES_RULE : Int = 14;
var type(default,null) : Int;
var cssText : String;
var parentRule(default,null) : CSSRule;
var parentStyleSheet(default,null) : CSSStyleSheet;
}

View File

@ -0,0 +1,39 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSRuleList.webidl. Do not edit!
package js.html;
/**
A `CSSRuleList` is an (indirect-modify only) array-like object containing an ordered collection of `CSSRule` objects.
Documentation [CSSRuleList](https://developer.mozilla.org/en-US/docs/Web/API/CSSRuleList) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSRuleList$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSRuleList>
**/
@:native("CSSRuleList")
extern class CSSRuleList implements ArrayAccess<CSSRule> {
var length(default,null) : Int;
function item( index : Int ) : CSSRule;
}

View File

@ -0,0 +1,963 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSStyleDeclaration.webidl. Do not edit!
package js.html;
/**
`CSSStyleDeclaration` represents a collection of CSS property-value pairs. It is used in a few APIs:
Documentation [CSSStyleDeclaration](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration>
**/
@:native("CSSStyleDeclaration")
extern class CSSStyleDeclaration implements ArrayAccess<String> {
var cssText : String;
var length(default,null) : Int;
var parentRule(default,null) : CSSRule;
/** Shorthand for the "align-content" CSS property. */
var alignContent :String;
/** Shorthand for the "align-items" CSS property. */
var alignItems :String;
/** Shorthand for the "align-self" CSS property. */
var alignSelf :String;
/** Shorthand for the "alignment-adjust" CSS property. */
var alignmentAdjust :String;
/** Shorthand for the "alignment-baseline" CSS property. */
var alignmentBaseline :String;
/** Shorthand for the "all" CSS property. */
var all :String;
/** Shorthand for the "anchor-point" CSS property. */
var anchorPoint :String;
/** Shorthand for the "animation" CSS property. */
var animation :String;
/** Shorthand for the "animation-delay" CSS property. */
var animationDelay :String;
/** Shorthand for the "animation-direction" CSS property. */
var animationDirection :String;
/** Shorthand for the "animation-duration" CSS property. */
var animationDuration :String;
/** Shorthand for the "animation-fill-mode" CSS property. */
var animationFillMode :String;
/** Shorthand for the "animation-iteration-count" CSS property. */
var animationIterationCount :String;
/** Shorthand for the "animation-name" CSS property. */
var animationName :String;
/** Shorthand for the "animation-play-state" CSS property. */
var animationPlayState :String;
/** Shorthand for the "animation-timing-function" CSS property. */
var animationTimingFunction :String;
/** Shorthand for the "azimuth" CSS property. */
var azimuth :String;
/** Shorthand for the "backface-visibility" CSS property. */
var backfaceVisibility :String;
/** Shorthand for the "background" CSS property. */
var background :String;
/** Shorthand for the "background-attachment" CSS property. */
var backgroundAttachment :String;
/** Shorthand for the "background-blend-mode" CSS property. */
var backgroundBlendMode :String;
/** Shorthand for the "background-clip" CSS property. */
var backgroundClip :String;
/** Shorthand for the "background-color" CSS property. */
var backgroundColor :String;
/** Shorthand for the "background-image" CSS property. */
var backgroundImage :String;
/** Shorthand for the "background-origin" CSS property. */
var backgroundOrigin :String;
/** Shorthand for the "background-position" CSS property. */
var backgroundPosition :String;
/** Shorthand for the "background-position-x" CSS property. */
var backgroundPositionX :String;
/** Shorthand for the "background-position-y" CSS property. */
var backgroundPositionY :String;
/** Shorthand for the "background-repeat" CSS property. */
var backgroundRepeat :String;
/** Shorthand for the "background-repeat-x" CSS property. */
var backgroundRepeatX :String;
/** Shorthand for the "background-repeat-y" CSS property. */
var backgroundRepeatY :String;
/** Shorthand for the "background-size" CSS property. */
var backgroundSize :String;
/** Shorthand for the "baseline-shift" CSS property. */
var baselineShift :String;
/** Shorthand for the "binding" CSS property. */
var binding :String;
/** Shorthand for the "bleed" CSS property. */
var bleed :String;
/** Shorthand for the "block-size" CSS property. */
var blockSize :String;
/** Shorthand for the "bookmark-label" CSS property. */
var bookmarkLabel :String;
/** Shorthand for the "bookmark-level" CSS property. */
var bookmarkLevel :String;
/** Shorthand for the "bookmark-state" CSS property. */
var bookmarkState :String;
/** Shorthand for the "border" CSS property. */
var border :String;
/** Shorthand for the "border-block-end" CSS property. */
var borderBlockEnd :String;
/** Shorthand for the "border-block-end-color" CSS property. */
var borderBlockEndColor :String;
/** Shorthand for the "border-block-end-style" CSS property. */
var borderBlockEndStyle :String;
/** Shorthand for the "border-block-end-width" CSS property. */
var borderBlockEndWidth :String;
/** Shorthand for the "border-block-start" CSS property. */
var borderBlockStart :String;
/** Shorthand for the "border-block-start-color" CSS property. */
var borderBlockStartColor :String;
/** Shorthand for the "border-block-start-style" CSS property. */
var borderBlockStartStyle :String;
/** Shorthand for the "border-block-start-width" CSS property. */
var borderBlockStartWidth :String;
/** Shorthand for the "border-bottom" CSS property. */
var borderBottom :String;
/** Shorthand for the "border-bottom-color" CSS property. */
var borderBottomColor :String;
/** Shorthand for the "border-bottom-left-radius" CSS property. */
var borderBottomLeftRadius :String;
/** Shorthand for the "border-bottom-right-radius" CSS property. */
var borderBottomRightRadius :String;
/** Shorthand for the "border-bottom-style" CSS property. */
var borderBottomStyle :String;
/** Shorthand for the "border-bottom-width" CSS property. */
var borderBottomWidth :String;
/** Shorthand for the "border-collapse" CSS property. */
var borderCollapse :String;
/** Shorthand for the "border-color" CSS property. */
var borderColor :String;
/** Shorthand for the "border-image" CSS property. */
var borderImage :String;
/** Shorthand for the "border-image-outset" CSS property. */
var borderImageOutset :String;
/** Shorthand for the "border-image-repeat" CSS property. */
var borderImageRepeat :String;
/** Shorthand for the "border-image-slice" CSS property. */
var borderImageSlice :String;
/** Shorthand for the "border-image-source" CSS property. */
var borderImageSource :String;
/** Shorthand for the "border-image-width" CSS property. */
var borderImageWidth :String;
/** Shorthand for the "border-inline-end" CSS property. */
var borderInlineEnd :String;
/** Shorthand for the "border-inline-end-color" CSS property. */
var borderInlineEndColor :String;
/** Shorthand for the "border-inline-end-style" CSS property. */
var borderInlineEndStyle :String;
/** Shorthand for the "border-inline-end-width" CSS property. */
var borderInlineEndWidth :String;
/** Shorthand for the "border-inline-start" CSS property. */
var borderInlineStart :String;
/** Shorthand for the "border-inline-start-color" CSS property. */
var borderInlineStartColor :String;
/** Shorthand for the "border-inline-start-style" CSS property. */
var borderInlineStartStyle :String;
/** Shorthand for the "border-inline-start-width" CSS property. */
var borderInlineStartWidth :String;
/** Shorthand for the "border-left" CSS property. */
var borderLeft :String;
/** Shorthand for the "border-left-color" CSS property. */
var borderLeftColor :String;
/** Shorthand for the "border-left-style" CSS property. */
var borderLeftStyle :String;
/** Shorthand for the "border-left-width" CSS property. */
var borderLeftWidth :String;
/** Shorthand for the "border-radius" CSS property. */
var borderRadius :String;
/** Shorthand for the "border-right" CSS property. */
var borderRight :String;
/** Shorthand for the "border-right-color" CSS property. */
var borderRightColor :String;
/** Shorthand for the "border-right-style" CSS property. */
var borderRightStyle :String;
/** Shorthand for the "border-right-width" CSS property. */
var borderRightWidth :String;
/** Shorthand for the "border-spacing" CSS property. */
var borderSpacing :String;
/** Shorthand for the "border-style" CSS property. */
var borderStyle :String;
/** Shorthand for the "border-top" CSS property. */
var borderTop :String;
/** Shorthand for the "border-top-color" CSS property. */
var borderTopColor :String;
/** Shorthand for the "border-top-left-radius" CSS property. */
var borderTopLeftRadius :String;
/** Shorthand for the "border-top-right-radius" CSS property. */
var borderTopRightRadius :String;
/** Shorthand for the "border-top-style" CSS property. */
var borderTopStyle :String;
/** Shorthand for the "border-top-width" CSS property. */
var borderTopWidth :String;
/** Shorthand for the "border-width" CSS property. */
var borderWidth :String;
/** Shorthand for the "bottom" CSS property. */
var bottom :String;
/** Shorthand for the "box-decoration-break" CSS property. */
var boxDecorationBreak :String;
/** Shorthand for the "box-shadow" CSS property. */
var boxShadow :String;
/** Shorthand for the "box-sizing" CSS property. */
var boxSizing :String;
/** Shorthand for the "box-snap" CSS property. */
var boxSnap :String;
/** Shorthand for the "box-suppress" CSS property. */
var boxSuppress :String;
/** Shorthand for the "break-after" CSS property. */
var breakAfter :String;
/** Shorthand for the "break-before" CSS property. */
var breakBefore :String;
/** Shorthand for the "break-inside" CSS property. */
var breakInside :String;
/** Shorthand for the "buffered-rendering" CSS property. */
var bufferedRendering :String;
/** Shorthand for the "caption-side" CSS property. */
var captionSide :String;
/** Shorthand for the "caret-color" CSS property. */
var caretColor :String;
/** Shorthand for the "chains" CSS property. */
var chains :String;
/** Shorthand for the "clear" CSS property. */
var clear :String;
/** Shorthand for the "clip" CSS property. */
var clip :String;
/** Shorthand for the "clip-path" CSS property. */
var clipPath :String;
/** Shorthand for the "clip-rule" CSS property. */
var clipRule :String;
/** Shorthand for the "color" CSS property. */
var color :String;
/** Shorthand for the "color-adjust" CSS property. */
var colorAdjust :String;
/** Shorthand for the "color-interpolation" CSS property. */
var colorInterpolation :String;
/** Shorthand for the "color-interpolation-filters" CSS property. */
var colorInterpolationFilters :String;
/** Shorthand for the "color-rendering" CSS property. */
var colorRendering :String;
/** Shorthand for the "column-count" CSS property. */
var columnCount :String;
/** Shorthand for the "column-fill" CSS property. */
var columnFill :String;
/** Shorthand for the "column-gap" CSS property. */
var columnGap :String;
/** Shorthand for the "column-rule" CSS property. */
var columnRule :String;
/** Shorthand for the "column-rule-color" CSS property. */
var columnRuleColor :String;
/** Shorthand for the "column-rule-style" CSS property. */
var columnRuleStyle :String;
/** Shorthand for the "column-rule-width" CSS property. */
var columnRuleWidth :String;
/** Shorthand for the "column-span" CSS property. */
var columnSpan :String;
/** Shorthand for the "column-width" CSS property. */
var columnWidth :String;
/** Shorthand for the "columns" CSS property. */
var columns :String;
/** Shorthand for the "contain" CSS property. */
var contain :String;
/** Shorthand for the "content" CSS property. */
var content :String;
/** Shorthand for the "counter-increment" CSS property. */
var counterIncrement :String;
/** Shorthand for the "counter-reset" CSS property. */
var counterReset :String;
/** Shorthand for the "counter-set" CSS property. */
var counterSet :String;
/** Shorthand for the "crop" CSS property. */
var crop :String;
/** Shorthand for the "css-float" CSS property. */
var cssFloat :String;
/** Shorthand for the "cue" CSS property. */
var cue :String;
/** Shorthand for the "cue-after" CSS property. */
var cueAfter :String;
/** Shorthand for the "cue-before" CSS property. */
var cueBefore :String;
/** Shorthand for the "cursor" CSS property. */
var cursor :String;
/** Shorthand for the "cx" CSS property. */
var cx :String;
/** Shorthand for the "cy" CSS property. */
var cy :String;
/** Shorthand for the "d" CSS property. */
var d :String;
/** Shorthand for the "direction" CSS property. */
var direction :String;
/** Shorthand for the "display" CSS property. */
var display :String;
/** Shorthand for the "display-inside" CSS property. */
var displayInside :String;
/** Shorthand for the "display-list" CSS property. */
var displayList :String;
/** Shorthand for the "display-outside" CSS property. */
var displayOutside :String;
/** Shorthand for the "dominant-baseline" CSS property. */
var dominantBaseline :String;
/** Shorthand for the "elevation" CSS property. */
var elevation :String;
/** Shorthand for the "empty-cells" CSS property. */
var emptyCells :String;
/** Shorthand for the "fill" CSS property. */
var fill :String;
/** Shorthand for the "fill-opacity" CSS property. */
var fillOpacity :String;
/** Shorthand for the "fill-rule" CSS property. */
var fillRule :String;
/** Shorthand for the "filter" CSS property. */
var filter :String;
/** Shorthand for the "flex" CSS property. */
var flex :String;
/** Shorthand for the "flex-basis" CSS property. */
var flexBasis :String;
/** Shorthand for the "flex-direction" CSS property. */
var flexDirection :String;
/** Shorthand for the "flex-flow" CSS property. */
var flexFlow :String;
/** Shorthand for the "flex-grow" CSS property. */
var flexGrow :String;
/** Shorthand for the "flex-shrink" CSS property. */
var flexShrink :String;
/** Shorthand for the "flex-wrap" CSS property. */
var flexWrap :String;
/** Shorthand for the "float" CSS property. */
var float :String;
/** Shorthand for the "float-offset" CSS property. */
var floatOffset :String;
/** Shorthand for the "flood-color" CSS property. */
var floodColor :String;
/** Shorthand for the "flood-opacity" CSS property. */
var floodOpacity :String;
/** Shorthand for the "flow-from" CSS property. */
var flowFrom :String;
/** Shorthand for the "flow-into" CSS property. */
var flowInto :String;
/** Shorthand for the "font" CSS property. */
var font :String;
/** Shorthand for the "font-display" CSS property. */
var fontDisplay :String;
/** Shorthand for the "font-family" CSS property. */
var fontFamily :String;
/** Shorthand for the "font-feature-settings" CSS property. */
var fontFeatureSettings :String;
/** Shorthand for the "font-kerning" CSS property. */
var fontKerning :String;
/** Shorthand for the "font-language-override" CSS property. */
var fontLanguageOverride :String;
/** Shorthand for the "font-optical-sizing" CSS property. */
var fontOpticalSizing :String;
/** Shorthand for the "font-size" CSS property. */
var fontSize :String;
/** Shorthand for the "font-size-adjust" CSS property. */
var fontSizeAdjust :String;
/** Shorthand for the "font-stretch" CSS property. */
var fontStretch :String;
/** Shorthand for the "font-style" CSS property. */
var fontStyle :String;
/** Shorthand for the "font-synthesis" CSS property. */
var fontSynthesis :String;
/** Shorthand for the "font-variant" CSS property. */
var fontVariant :String;
/** Shorthand for the "font-variant-alternates" CSS property. */
var fontVariantAlternates :String;
/** Shorthand for the "font-variant-caps" CSS property. */
var fontVariantCaps :String;
/** Shorthand for the "font-variant-east-asian" CSS property. */
var fontVariantEastAsian :String;
/** Shorthand for the "font-variant-ligatures" CSS property. */
var fontVariantLigatures :String;
/** Shorthand for the "font-variant-numeric" CSS property. */
var fontVariantNumeric :String;
/** Shorthand for the "font-variant-position" CSS property. */
var fontVariantPosition :String;
/** Shorthand for the "font-variation-settings" CSS property. */
var fontVariationSettings :String;
/** Shorthand for the "font-weight" CSS property. */
var fontWeight :String;
/** Shorthand for the "gap" CSS property. */
var gap :String;
/** Shorthand for the "grid" CSS property. */
var grid :String;
/** Shorthand for the "grid-area" CSS property. */
var gridArea :String;
/** Shorthand for the "grid-auto-columns" CSS property. */
var gridAutoColumns :String;
/** Shorthand for the "grid-auto-flow" CSS property. */
var gridAutoFlow :String;
/** Shorthand for the "grid-auto-rows" CSS property. */
var gridAutoRows :String;
/** Shorthand for the "grid-column" CSS property. */
var gridColumn :String;
/** Shorthand for the "grid-column-end" CSS property. */
var gridColumnEnd :String;
/** Shorthand for the "grid-column-gap" CSS property. */
var gridColumnGap :String;
/** Shorthand for the "grid-column-start" CSS property. */
var gridColumnStart :String;
/** Shorthand for the "grid-gap" CSS property. */
var gridGap :String;
/** Shorthand for the "grid-row" CSS property. */
var gridRow :String;
/** Shorthand for the "grid-row-end" CSS property. */
var gridRowEnd :String;
/** Shorthand for the "grid-row-gap" CSS property. */
var gridRowGap :String;
/** Shorthand for the "grid-row-start" CSS property. */
var gridRowStart :String;
/** Shorthand for the "grid-template" CSS property. */
var gridTemplate :String;
/** Shorthand for the "grid-template-areas" CSS property. */
var gridTemplateAreas :String;
/** Shorthand for the "grid-template-columns" CSS property. */
var gridTemplateColumns :String;
/** Shorthand for the "grid-template-rows" CSS property. */
var gridTemplateRows :String;
/** Shorthand for the "hanging-punctuation" CSS property. */
var hangingPunctuation :String;
/** Shorthand for the "height" CSS property. */
var height :String;
/** Shorthand for the "hyphens" CSS property. */
var hyphens :String;
/** Shorthand for the "icon" CSS property. */
var icon :String;
/** Shorthand for the "image-orientation" CSS property. */
var imageOrientation :String;
/** Shorthand for the "image-rendering" CSS property. */
var imageRendering :String;
/** Shorthand for the "image-resolution" CSS property. */
var imageResolution :String;
/** Shorthand for the "ime-mode" CSS property. */
var imeMode :String;
/** Shorthand for the "initial-letters" CSS property. */
var initialLetters :String;
/** Shorthand for the "inline-box-align" CSS property. */
var inlineBoxAlign :String;
/** Shorthand for the "inline-size" CSS property. */
var inlineSize :String;
/** Shorthand for the "isolation" CSS property. */
var isolation :String;
/** Shorthand for the "justify-content" CSS property. */
var justifyContent :String;
/** Shorthand for the "justify-items" CSS property. */
var justifyItems :String;
/** Shorthand for the "justify-self" CSS property. */
var justifySelf :String;
/** Shorthand for the "left" CSS property. */
var left :String;
/** Shorthand for the "letter-spacing" CSS property. */
var letterSpacing :String;
/** Shorthand for the "lighting-color" CSS property. */
var lightingColor :String;
/** Shorthand for the "line-box-contain" CSS property. */
var lineBoxContain :String;
/** Shorthand for the "line-break" CSS property. */
var lineBreak :String;
/** Shorthand for the "line-grid" CSS property. */
var lineGrid :String;
/** Shorthand for the "line-height" CSS property. */
var lineHeight :String;
/** Shorthand for the "line-snap" CSS property. */
var lineSnap :String;
/** Shorthand for the "line-stacking" CSS property. */
var lineStacking :String;
/** Shorthand for the "line-stacking-ruby" CSS property. */
var lineStackingRuby :String;
/** Shorthand for the "line-stacking-shift" CSS property. */
var lineStackingShift :String;
/** Shorthand for the "line-stacking-strategy" CSS property. */
var lineStackingStrategy :String;
/** Shorthand for the "list-style" CSS property. */
var listStyle :String;
/** Shorthand for the "list-style-image" CSS property. */
var listStyleImage :String;
/** Shorthand for the "list-style-position" CSS property. */
var listStylePosition :String;
/** Shorthand for the "list-style-type" CSS property. */
var listStyleType :String;
/** Shorthand for the "margin" CSS property. */
var margin :String;
/** Shorthand for the "margin-block-end" CSS property. */
var marginBlockEnd :String;
/** Shorthand for the "margin-block-start" CSS property. */
var marginBlockStart :String;
/** Shorthand for the "margin-bottom" CSS property. */
var marginBottom :String;
/** Shorthand for the "margin-inline-end" CSS property. */
var marginInlineEnd :String;
/** Shorthand for the "margin-inline-start" CSS property. */
var marginInlineStart :String;
/** Shorthand for the "margin-left" CSS property. */
var marginLeft :String;
/** Shorthand for the "margin-right" CSS property. */
var marginRight :String;
/** Shorthand for the "margin-top" CSS property. */
var marginTop :String;
/** Shorthand for the "marker" CSS property. */
var marker :String;
/** Shorthand for the "marker-end" CSS property. */
var markerEnd :String;
/** Shorthand for the "marker-mid" CSS property. */
var markerMid :String;
/** Shorthand for the "marker-offset" CSS property. */
var markerOffset :String;
/** Shorthand for the "marker-side" CSS property. */
var markerSide :String;
/** Shorthand for the "marker-start" CSS property. */
var markerStart :String;
/** Shorthand for the "marks" CSS property. */
var marks :String;
/** Shorthand for the "mask" CSS property. */
var mask :String;
/** Shorthand for the "mask-box" CSS property. */
var maskBox :String;
/** Shorthand for the "mask-box-outset" CSS property. */
var maskBoxOutset :String;
/** Shorthand for the "mask-box-repeat" CSS property. */
var maskBoxRepeat :String;
/** Shorthand for the "mask-box-slice" CSS property. */
var maskBoxSlice :String;
/** Shorthand for the "mask-box-source" CSS property. */
var maskBoxSource :String;
/** Shorthand for the "mask-box-width" CSS property. */
var maskBoxWidth :String;
/** Shorthand for the "mask-clip" CSS property. */
var maskClip :String;
/** Shorthand for the "mask-composite" CSS property. */
var maskComposite :String;
/** Shorthand for the "mask-image" CSS property. */
var maskImage :String;
/** Shorthand for the "mask-mode" CSS property. */
var maskMode :String;
/** Shorthand for the "mask-origin" CSS property. */
var maskOrigin :String;
/** Shorthand for the "mask-position" CSS property. */
var maskPosition :String;
/** Shorthand for the "mask-position-x" CSS property. */
var maskPositionX :String;
/** Shorthand for the "mask-position-y" CSS property. */
var maskPositionY :String;
/** Shorthand for the "mask-repeat" CSS property. */
var maskRepeat :String;
/** Shorthand for the "mask-size" CSS property. */
var maskSize :String;
/** Shorthand for the "mask-source-type" CSS property. */
var maskSourceType :String;
/** Shorthand for the "mask-type" CSS property. */
var maskType :String;
/** Shorthand for the "max-block-size" CSS property. */
var maxBlockSize :String;
/** Shorthand for the "max-height" CSS property. */
var maxHeight :String;
/** Shorthand for the "max-inline-size" CSS property. */
var maxInlineSize :String;
/** Shorthand for the "max-lines" CSS property. */
var maxLines :String;
/** Shorthand for the "max-width" CSS property. */
var maxWidth :String;
/** Shorthand for the "max-zoom" CSS property. */
var maxZoom :String;
/** Shorthand for the "min-block-size" CSS property. */
var minBlockSize :String;
/** Shorthand for the "min-height" CSS property. */
var minHeight :String;
/** Shorthand for the "min-inline-size" CSS property. */
var minInlineSize :String;
/** Shorthand for the "min-width" CSS property. */
var minWidth :String;
/** Shorthand for the "min-zoom" CSS property. */
var minZoom :String;
/** Shorthand for the "mix-blend-mode" CSS property. */
var mixBlendMode :String;
/** Shorthand for the "move-to" CSS property. */
var moveTo :String;
/** Shorthand for the "nav-down" CSS property. */
var navDown :String;
/** Shorthand for the "nav-index" CSS property. */
var navIndex :String;
/** Shorthand for the "nav-left" CSS property. */
var navLeft :String;
/** Shorthand for the "nav-right" CSS property. */
var navRight :String;
/** Shorthand for the "nav-up" CSS property. */
var navUp :String;
/** Shorthand for the "object-fit" CSS property. */
var objectFit :String;
/** Shorthand for the "object-position" CSS property. */
var objectPosition :String;
/** Shorthand for the "offset" CSS property. */
var offset :String;
/** Shorthand for the "offset-block-end" CSS property. */
var offsetBlockEnd :String;
/** Shorthand for the "offset-block-start" CSS property. */
var offsetBlockStart :String;
/** Shorthand for the "offset-distance" CSS property. */
var offsetDistance :String;
/** Shorthand for the "offset-inline-end" CSS property. */
var offsetInlineEnd :String;
/** Shorthand for the "offset-inline-start" CSS property. */
var offsetInlineStart :String;
/** Shorthand for the "offset-path" CSS property. */
var offsetPath :String;
/** Shorthand for the "offset-rotate" CSS property. */
var offsetRotate :String;
/** Shorthand for the "opacity" CSS property. */
var opacity :String;
/** Shorthand for the "order" CSS property. */
var order :String;
/** Shorthand for the "orientation" CSS property. */
var orientation :String;
/** Shorthand for the "orphans" CSS property. */
var orphans :String;
/** Shorthand for the "outline" CSS property. */
var outline :String;
/** Shorthand for the "outline-color" CSS property. */
var outlineColor :String;
/** Shorthand for the "outline-offset" CSS property. */
var outlineOffset :String;
/** Shorthand for the "outline-style" CSS property. */
var outlineStyle :String;
/** Shorthand for the "outline-width" CSS property. */
var outlineWidth :String;
/** Shorthand for the "overflow" CSS property. */
var overflow :String;
/** Shorthand for the "overflow-anchor" CSS property. */
var overflowAnchor :String;
/** Shorthand for the "overflow-wrap" CSS property. */
var overflowWrap :String;
/** Shorthand for the "overflow-x" CSS property. */
var overflowX :String;
/** Shorthand for the "overflow-y" CSS property. */
var overflowY :String;
/** Shorthand for the "overscroll-behavior" CSS property. */
var overscrollBehavior :String;
/** Shorthand for the "overscroll-behavior-x" CSS property. */
var overscrollBehaviorX :String;
/** Shorthand for the "overscroll-behavior-y" CSS property. */
var overscrollBehaviorY :String;
/** Shorthand for the "padding" CSS property. */
var padding :String;
/** Shorthand for the "padding-block-end" CSS property. */
var paddingBlockEnd :String;
/** Shorthand for the "padding-block-start" CSS property. */
var paddingBlockStart :String;
/** Shorthand for the "padding-bottom" CSS property. */
var paddingBottom :String;
/** Shorthand for the "padding-inline-end" CSS property. */
var paddingInlineEnd :String;
/** Shorthand for the "padding-inline-start" CSS property. */
var paddingInlineStart :String;
/** Shorthand for the "padding-left" CSS property. */
var paddingLeft :String;
/** Shorthand for the "padding-right" CSS property. */
var paddingRight :String;
/** Shorthand for the "padding-top" CSS property. */
var paddingTop :String;
/** Shorthand for the "page" CSS property. */
var page :String;
/** Shorthand for the "page-break-after" CSS property. */
var pageBreakAfter :String;
/** Shorthand for the "page-break-before" CSS property. */
var pageBreakBefore :String;
/** Shorthand for the "page-break-inside" CSS property. */
var pageBreakInside :String;
/** Shorthand for the "page-policy" CSS property. */
var pagePolicy :String;
/** Shorthand for the "paint-order" CSS property. */
var paintOrder :String;
/** Shorthand for the "pause" CSS property. */
var pause :String;
/** Shorthand for the "pause-after" CSS property. */
var pauseAfter :String;
/** Shorthand for the "pause-before" CSS property. */
var pauseBefore :String;
/** Shorthand for the "perspective" CSS property. */
var perspective :String;
/** Shorthand for the "perspective-origin" CSS property. */
var perspectiveOrigin :String;
/** Shorthand for the "pitch" CSS property. */
var pitch :String;
/** Shorthand for the "pitch-range" CSS property. */
var pitchRange :String;
/** Shorthand for the "place-content" CSS property. */
var placeContent :String;
/** Shorthand for the "place-items" CSS property. */
var placeItems :String;
/** Shorthand for the "place-self" CSS property. */
var placeSelf :String;
/** Shorthand for the "play-during" CSS property. */
var playDuring :String;
/** Shorthand for the "pointer-events" CSS property. */
var pointerEvents :String;
/** Shorthand for the "position" CSS property. */
var position :String;
/** Shorthand for the "presentation-level" CSS property. */
var presentationLevel :String;
/** Shorthand for the "quotes" CSS property. */
var quotes :String;
/** Shorthand for the "r" CSS property. */
var r :String;
/** Shorthand for the "region-fragment" CSS property. */
var regionFragment :String;
/** Shorthand for the "resize" CSS property. */
var resize :String;
/** Shorthand for the "rest" CSS property. */
var rest :String;
/** Shorthand for the "rest-after" CSS property. */
var restAfter :String;
/** Shorthand for the "rest-before" CSS property. */
var restBefore :String;
/** Shorthand for the "richness" CSS property. */
var richness :String;
/** Shorthand for the "right" CSS property. */
var right :String;
/** Shorthand for the "rotation" CSS property. */
var rotation :String;
/** Shorthand for the "rotation-point" CSS property. */
var rotationPoint :String;
/** Shorthand for the "row-gap" CSS property. */
var rowGap :String;
/** Shorthand for the "ruby-align" CSS property. */
var rubyAlign :String;
/** Shorthand for the "ruby-merge" CSS property. */
var rubyMerge :String;
/** Shorthand for the "ruby-position" CSS property. */
var rubyPosition :String;
/** Shorthand for the "rx" CSS property. */
var rx :String;
/** Shorthand for the "ry" CSS property. */
var ry :String;
/** Shorthand for the "scroll-behavior" CSS property. */
var scrollBehavior :String;
/** Shorthand for the "scroll-snap-coordinate" CSS property. */
var scrollSnapCoordinate :String;
/** Shorthand for the "scroll-snap-destination" CSS property. */
var scrollSnapDestination :String;
/** Shorthand for the "scroll-snap-points-x" CSS property. */
var scrollSnapPointsX :String;
/** Shorthand for the "scroll-snap-points-y" CSS property. */
var scrollSnapPointsY :String;
/** Shorthand for the "scroll-snap-type" CSS property. */
var scrollSnapType :String;
/** Shorthand for the "scroll-snap-type-x" CSS property. */
var scrollSnapTypeX :String;
/** Shorthand for the "scroll-snap-type-y" CSS property. */
var scrollSnapTypeY :String;
/** Shorthand for the "shape-image-threshold" CSS property. */
var shapeImageThreshold :String;
/** Shorthand for the "shape-margin" CSS property. */
var shapeMargin :String;
/** Shorthand for the "shape-outside" CSS property. */
var shapeOutside :String;
/** Shorthand for the "shape-rendering" CSS property. */
var shapeRendering :String;
/** Shorthand for the "size" CSS property. */
var size :String;
/** Shorthand for the "speak" CSS property. */
var speak :String;
/** Shorthand for the "speak-as" CSS property. */
var speakAs :String;
/** Shorthand for the "speak-header" CSS property. */
var speakHeader :String;
/** Shorthand for the "speak-numeral" CSS property. */
var speakNumeral :String;
/** Shorthand for the "speak-punctuation" CSS property. */
var speakPunctuation :String;
/** Shorthand for the "speech-rate" CSS property. */
var speechRate :String;
/** Shorthand for the "src" CSS property. */
var src :String;
/** Shorthand for the "stop-color" CSS property. */
var stopColor :String;
/** Shorthand for the "stop-opacity" CSS property. */
var stopOpacity :String;
/** Shorthand for the "stress" CSS property. */
var stress :String;
/** Shorthand for the "string-set" CSS property. */
var stringSet :String;
/** Shorthand for the "stroke" CSS property. */
var stroke :String;
/** Shorthand for the "stroke-dasharray" CSS property. */
var strokeDasharray :String;
/** Shorthand for the "stroke-dashoffset" CSS property. */
var strokeDashoffset :String;
/** Shorthand for the "stroke-linecap" CSS property. */
var strokeLinecap :String;
/** Shorthand for the "stroke-linejoin" CSS property. */
var strokeLinejoin :String;
/** Shorthand for the "stroke-miterlimit" CSS property. */
var strokeMiterlimit :String;
/** Shorthand for the "stroke-opacity" CSS property. */
var strokeOpacity :String;
/** Shorthand for the "stroke-width" CSS property. */
var strokeWidth :String;
/** Shorthand for the "tab-size" CSS property. */
var tabSize :String;
/** Shorthand for the "table-layout" CSS property. */
var tableLayout :String;
/** Shorthand for the "text-align" CSS property. */
var textAlign :String;
/** Shorthand for the "text-align-last" CSS property. */
var textAlignLast :String;
/** Shorthand for the "text-anchor" CSS property. */
var textAnchor :String;
/** Shorthand for the "text-combine-upright" CSS property. */
var textCombineUpright :String;
/** Shorthand for the "text-decoration" CSS property. */
var textDecoration :String;
/** Shorthand for the "text-decoration-color" CSS property. */
var textDecorationColor :String;
/** Shorthand for the "text-decoration-line" CSS property. */
var textDecorationLine :String;
/** Shorthand for the "text-decoration-skip" CSS property. */
var textDecorationSkip :String;
/** Shorthand for the "text-decoration-skip-ink" CSS property. */
var textDecorationSkipInk :String;
/** Shorthand for the "text-decoration-style" CSS property. */
var textDecorationStyle :String;
/** Shorthand for the "text-emphasis" CSS property. */
var textEmphasis :String;
/** Shorthand for the "text-emphasis-color" CSS property. */
var textEmphasisColor :String;
/** Shorthand for the "text-emphasis-position" CSS property. */
var textEmphasisPosition :String;
/** Shorthand for the "text-emphasis-style" CSS property. */
var textEmphasisStyle :String;
/** Shorthand for the "text-height" CSS property. */
var textHeight :String;
/** Shorthand for the "text-indent" CSS property. */
var textIndent :String;
/** Shorthand for the "text-justify" CSS property. */
var textJustify :String;
/** Shorthand for the "text-orientation" CSS property. */
var textOrientation :String;
/** Shorthand for the "text-overflow" CSS property. */
var textOverflow :String;
/** Shorthand for the "text-rendering" CSS property. */
var textRendering :String;
/** Shorthand for the "text-shadow" CSS property. */
var textShadow :String;
/** Shorthand for the "text-size-adjust" CSS property. */
var textSizeAdjust :String;
/** Shorthand for the "text-space-collapse" CSS property. */
var textSpaceCollapse :String;
/** Shorthand for the "text-transform" CSS property. */
var textTransform :String;
/** Shorthand for the "text-underline-position" CSS property. */
var textUnderlinePosition :String;
/** Shorthand for the "text-wrap" CSS property. */
var textWrap :String;
/** Shorthand for the "top" CSS property. */
var top :String;
/** Shorthand for the "touch-action" CSS property. */
var touchAction :String;
/** Shorthand for the "transform" CSS property. */
var transform :String;
/** Shorthand for the "transform-box" CSS property. */
var transformBox :String;
/** Shorthand for the "transform-origin" CSS property. */
var transformOrigin :String;
/** Shorthand for the "transform-style" CSS property. */
var transformStyle :String;
/** Shorthand for the "transition" CSS property. */
var transition :String;
/** Shorthand for the "transition-delay" CSS property. */
var transitionDelay :String;
/** Shorthand for the "transition-duration" CSS property. */
var transitionDuration :String;
/** Shorthand for the "transition-property" CSS property. */
var transitionProperty :String;
/** Shorthand for the "transition-timing-function" CSS property. */
var transitionTimingFunction :String;
/** Shorthand for the "unicode-bidi" CSS property. */
var unicodeBidi :String;
/** Shorthand for the "unicode-range" CSS property. */
var unicodeRange :String;
/** Shorthand for the "user-select" CSS property. */
var userSelect :String;
/** Shorthand for the "user-zoom" CSS property. */
var userZoom :String;
/** Shorthand for the "vector-effect" CSS property. */
var vectorEffect :String;
/** Shorthand for the "vertical-align" CSS property. */
var verticalAlign :String;
/** Shorthand for the "visibility" CSS property. */
var visibility :String;
/** Shorthand for the "voice-balance" CSS property. */
var voiceBalance :String;
/** Shorthand for the "voice-duration" CSS property. */
var voiceDuration :String;
/** Shorthand for the "voice-family" CSS property. */
var voiceFamily :String;
/** Shorthand for the "voice-pitch" CSS property. */
var voicePitch :String;
/** Shorthand for the "voice-range" CSS property. */
var voiceRange :String;
/** Shorthand for the "voice-rate" CSS property. */
var voiceRate :String;
/** Shorthand for the "voice-stress" CSS property. */
var voiceStress :String;
/** Shorthand for the "voice-volume" CSS property. */
var voiceVolume :String;
/** Shorthand for the "volume" CSS property. */
var volume :String;
/** Shorthand for the "white-space" CSS property. */
var whiteSpace :String;
/** Shorthand for the "widows" CSS property. */
var widows :String;
/** Shorthand for the "width" CSS property. */
var width :String;
/** Shorthand for the "will-change" CSS property. */
var willChange :String;
/** Shorthand for the "word-break" CSS property. */
var wordBreak :String;
/** Shorthand for the "word-spacing" CSS property. */
var wordSpacing :String;
/** Shorthand for the "word-wrap" CSS property. */
var wordWrap :String;
/** Shorthand for the "wrap-flow" CSS property. */
var wrapFlow :String;
/** Shorthand for the "wrap-through" CSS property. */
var wrapThrough :String;
/** Shorthand for the "writing-mode" CSS property. */
var writingMode :String;
/** Shorthand for the "x" CSS property. */
var x :String;
/** Shorthand for the "y" CSS property. */
var y :String;
/** Shorthand for the "z-index" CSS property. */
var zIndex :String;
/** Shorthand for the "zoom" CSS property. */
var zoom :String;
function item( index : Int ) : String;
/** @throws DOMError */
function getPropertyValue( property : String ) : String;
function getPropertyPriority( property : String ) : String;
/** @throws DOMError */
function setProperty( property : String, value : String, priority : String = "" ) : Void;
/** @throws DOMError */
function removeProperty( property : String ) : String;
}

View File

@ -0,0 +1,47 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSStyleRule.webidl. Do not edit!
package js.html;
/**
`CSSStyleRule` represents a single CSS style rule. It implements the `CSSRule` interface with a type value of `1` (`CSSRule.STYLE_RULE`).
Documentation [CSSStyleRule](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule>
**/
@:native("CSSStyleRule")
extern class CSSStyleRule extends CSSRule {
/**
Gets the textual representation of the selector for this rule, e.g. `"h1,h2"`.
**/
var selectorText : String;
/**
Returns the `CSSStyleDeclaration` object for the rule.
**/
var style(default,null) : CSSStyleDeclaration;
}

View File

@ -0,0 +1,65 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSStyleSheet.webidl. Do not edit!
package js.html;
/**
The `CSSStyleSheet` interface represents a single CSS style sheet. It inherits properties and methods from its parent, `StyleSheet`.
Documentation [CSSStyleSheet](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet>
**/
@:native("CSSStyleSheet")
extern class CSSStyleSheet extends StyleSheet {
/**
If this style sheet is imported into the document using an `@import` rule, the `ownerRule` property will return that `CSSImportRule`, otherwise it returns `null`.
**/
var ownerRule(default,null) : CSSRule;
/**
Returns a live `CSSRuleList`, listing the `CSSRule` objects in the style sheet.
This is normally used to access individual rules like this:
`   styleSheet.cssRules[i] // where i = 0..cssRules.length-1`
To add or remove items in `cssRules`, use the `CSSStyleSheet`'s `deleteRule()` and `insertRule()` methods, described below.
**/
var cssRules(default,null) : CSSRuleList;
/**
Inserts a new rule at the specified position in the style sheet, given the textual representation of the rule.
@throws DOMError
**/
function insertRule( rule : String, index : Int = 0 ) : Int;
/**
Deletes a rule at the specified position from the style sheet.
@throws DOMError
**/
function deleteRule( index : Int ) : Void;
}

View File

@ -0,0 +1,36 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSSupportsRule.webidl. Do not edit!
package js.html;
/**
The `CSSSupportsRule` interface describes an object representing a single CSS `@supports` at-rule. It implements the `CSSConditionRule` interface, and therefore the `CSSRule` and `CSSGroupingRule` interfaces with a type value of `12` (`CSSRule.SUPPORTS_RULE`).
Documentation [CSSSupportsRule](https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
@see <https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule>
**/
@:native("CSSSupportsRule")
extern class CSSSupportsRule extends CSSConditionRule {
}

View File

@ -0,0 +1,31 @@
/*
* Copyright (C)2005-2019 Haxe Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// This file is generated from mozilla\CSSTransition.webidl. Do not edit!
package js.html;
@:native("CSSTransition")
extern class CSSTransition extends Animation {
var transitionProperty(default,null) : String;
}

Some files were not shown because too many files have changed in this diff Show More