forked from LeenkxTeam/LNXSDK
Update Files
This commit is contained in:
123
Kha/Tools/linux_arm64/std/flash/_std/EReg.hx
Normal file
123
Kha/Tools/linux_arm64/std/flash/_std/EReg.hx
Normal file
@ -0,0 +1,123 @@
|
||||
/*
|
||||
* 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:flash.utils.RegExp;
|
||||
var result:Dynamic;
|
||||
|
||||
public function new(r:String, opt:String):Void {
|
||||
this.r = new flash.utils.RegExp(r, opt);
|
||||
}
|
||||
|
||||
public function match(s:String):Bool {
|
||||
if (r.global)
|
||||
r.lastIndex = 0;
|
||||
result = r.exec(s);
|
||||
return (result != null);
|
||||
}
|
||||
|
||||
public function matched(n:Int):String {
|
||||
return if (result != null && n >= 0 && n < (result:Array<Dynamic>).length) result[n] else throw "EReg::matched";
|
||||
}
|
||||
|
||||
public function matchedLeft():String {
|
||||
if (result == null)
|
||||
throw "No string matched";
|
||||
var s:String = result.input;
|
||||
return s.substr(0, result.index);
|
||||
}
|
||||
|
||||
public function matchedRight():String {
|
||||
if (result == null)
|
||||
throw "No string matched";
|
||||
var rl = (result.index : Int) + (result[0] : String).length;
|
||||
var s:String = result.input;
|
||||
return s.substr(rl, s.length - rl);
|
||||
}
|
||||
|
||||
public function matchedPos():{pos:Int, len:Int} {
|
||||
if (result == null)
|
||||
throw "No string matched";
|
||||
return {pos: result.index, len: (result[0] : String).length};
|
||||
}
|
||||
|
||||
public function matchSub(s:String, pos:Int, len:Int = -1):Bool {
|
||||
return if (r.global) {
|
||||
r.lastIndex = pos;
|
||||
result = r.exec(len < 0 ? s : s.substr(0, pos + len));
|
||||
var b = result != null;
|
||||
if (b) {
|
||||
result.input = s;
|
||||
}
|
||||
b;
|
||||
} else {
|
||||
var b = match(len < 0 ? s.substr(pos) : s.substr(pos, len));
|
||||
if (b) {
|
||||
result.input = s;
|
||||
result.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__#";
|
||||
var s:String = (s : Dynamic).replace(r, d);
|
||||
return s.split(d);
|
||||
}
|
||||
|
||||
public function replace(s:String, by:String):String {
|
||||
return (s : Dynamic).replace(r, by);
|
||||
}
|
||||
|
||||
public function map(s:String, f:EReg->String):String {
|
||||
var offset = 0;
|
||||
var buf = new StringBuf();
|
||||
var first = true;
|
||||
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;
|
||||
first = false;
|
||||
} 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 flash.utils.RegExp("[.*+?^${}()|[\\]\\\\]", "g");
|
||||
}
|
131
Kha/Tools/linux_arm64/std/flash/_std/Reflect.hx
Normal file
131
Kha/Tools/linux_arm64/std/flash/_std/Reflect.hx
Normal file
@ -0,0 +1,131 @@
|
||||
/*
|
||||
* 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 {
|
||||
public static function hasField(o:Dynamic, field:String):Bool
|
||||
untyped {
|
||||
return o.hasOwnProperty(field);
|
||||
}
|
||||
|
||||
public static function field(o:Dynamic, field:String):Dynamic
|
||||
untyped {
|
||||
return o != null && __in__(field, o) ? o[field] : null;
|
||||
}
|
||||
|
||||
public inline static function setField(o:Dynamic, field:String, value:Dynamic):Void
|
||||
untyped {
|
||||
o[field] = value;
|
||||
}
|
||||
|
||||
public static function getProperty(o:Dynamic, field:String):Dynamic
|
||||
untyped {
|
||||
if (o == null)
|
||||
return null;
|
||||
var getter = 'get_$field';
|
||||
if (__in__(getter, o)) {
|
||||
return o[getter]();
|
||||
}
|
||||
return __in__(field, o) ? o[field] : null;
|
||||
}
|
||||
|
||||
public static function setProperty(o:Dynamic, field:String, value:Dynamic):Void
|
||||
untyped {
|
||||
var setter = 'set_$field';
|
||||
if (__in__(setter, o)) {
|
||||
o[setter](value);
|
||||
} else {
|
||||
o[field] = value;
|
||||
}
|
||||
}
|
||||
|
||||
public inline static function callMethod(o:Dynamic, func:haxe.Constraints.Function, args:Array<Dynamic>):Dynamic
|
||||
untyped {
|
||||
return func.apply(o, args);
|
||||
}
|
||||
|
||||
public static function fields(o:Dynamic):Array<String>
|
||||
untyped {
|
||||
if (o == null)
|
||||
return new Array();
|
||||
var i = 0;
|
||||
var a = [];
|
||||
while (untyped __has_next__(o, i)) {
|
||||
var prop = untyped __forin__(o, i);
|
||||
if (o.hasOwnProperty(prop))
|
||||
a.push(prop);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
public static function isFunction(f:Dynamic):Bool
|
||||
untyped {
|
||||
return __typeof__(f) == "function";
|
||||
}
|
||||
|
||||
public static function compare<T>(a:T, b:T):Int {
|
||||
var a:Dynamic = a;
|
||||
var b:Dynamic = b;
|
||||
return (a == b) ? 0 : ((a > b) ? 1 : -1);
|
||||
}
|
||||
|
||||
public static function compareMethods(f1:Dynamic, f2:Dynamic):Bool {
|
||||
return f1 == f2; // VM-level closures
|
||||
}
|
||||
|
||||
public static function isObject(v:Dynamic):Bool
|
||||
untyped {
|
||||
if (v == null)
|
||||
return false;
|
||||
var t = __typeof__(v);
|
||||
if (t == "object") {
|
||||
return !isEnumValue(v);
|
||||
}
|
||||
return (t == "string");
|
||||
}
|
||||
|
||||
public static function isEnumValue(v:Dynamic):Bool {
|
||||
return try v.__enum__ == true catch (e:Dynamic) false;
|
||||
}
|
||||
|
||||
public static function deleteField(o:Dynamic, field:String):Bool
|
||||
untyped {
|
||||
if (o.hasOwnProperty(field) != true)
|
||||
return false;
|
||||
__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(__arguments__) {
|
||||
return f(__arguments__);
|
||||
};
|
||||
}
|
||||
}
|
67
Kha/Tools/linux_arm64/std/flash/_std/Std.hx
Normal file
67
Kha/Tools/linux_arm64/std/flash/_std/Std.hx
Normal file
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* 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 flash.Boot;
|
||||
|
||||
@: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 function isOfType(v:Dynamic, t:Dynamic):Bool {
|
||||
return flash.Boot.__instanceof(v, t);
|
||||
}
|
||||
|
||||
public static inline function downcast<T:{}, S:T>(value:T, c:Class<S>):S {
|
||||
return flash.Lib.as(value, c);
|
||||
}
|
||||
|
||||
@: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);
|
||||
}
|
||||
|
||||
public static function string(s:Dynamic):String {
|
||||
return flash.Boot.__string_rec(s, "");
|
||||
}
|
||||
|
||||
public inline static function int(x:Float):Int {
|
||||
return untyped __int__(x);
|
||||
}
|
||||
|
||||
public static function parseInt(x:String):Null<Int>
|
||||
untyped {
|
||||
var v = __global__["parseInt"](x);
|
||||
if (__global__["isNaN"](v))
|
||||
return null;
|
||||
return v;
|
||||
}
|
||||
|
||||
public static function parseFloat(x:String):Float {
|
||||
return untyped __global__["parseFloat"](x);
|
||||
}
|
||||
|
||||
public static function random(x:Int):Int {
|
||||
return x <= 0 ? 0 : Math.floor(Math.random() * x);
|
||||
}
|
||||
}
|
41
Kha/Tools/linux_arm64/std/flash/_std/String.hx
Normal file
41
Kha/Tools/linux_arm64/std/flash/_std/String.hx
Normal 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.
|
||||
*/
|
||||
@:coreApi
|
||||
extern class String {
|
||||
var length(default, null):Int;
|
||||
function new(string:String):Void;
|
||||
function toUpperCase():String;
|
||||
function toLowerCase():String;
|
||||
function charAt(index:Int):String;
|
||||
function charCodeAt(index:Int):Null<Int>;
|
||||
function indexOf(str:String, ?startIndex:Int):Int;
|
||||
function lastIndexOf(str:String, ?startIndex:Int):Int;
|
||||
function split(delimiter:String):Array<String>;
|
||||
function substr(pos:Int, ?len:Int):String;
|
||||
function substring(startIndex:Int, ?endIndex:Int):String;
|
||||
function toString():String;
|
||||
|
||||
@:pure static inline function fromCharCode(code:Int):String
|
||||
untyped {
|
||||
return code < 0x10000 ? String["fromCharCode"](code) : flash.Boot.fromCodePoint(code);
|
||||
}
|
||||
}
|
308
Kha/Tools/linux_arm64/std/flash/_std/Type.hx
Normal file
308
Kha/Tools/linux_arm64/std/flash/_std/Type.hx
Normal file
@ -0,0 +1,308 @@
|
||||
/*
|
||||
* 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 function getClass<T>(o:T):Class<T>
|
||||
untyped {
|
||||
var cname = __global__["flash.utils.getQualifiedClassName"](o);
|
||||
if (cname == "null" || cname == "Object" || cname == "int" || cname == "Number" || cname == "Boolean")
|
||||
return null;
|
||||
if (o.hasOwnProperty("prototype"))
|
||||
return null;
|
||||
var c = __as__(__global__["flash.utils.getDefinitionByName"](cname), Class);
|
||||
if (c.__isenum)
|
||||
return null;
|
||||
return c;
|
||||
}
|
||||
|
||||
public static function getEnum(o:EnumValue):Enum<Dynamic>
|
||||
untyped {
|
||||
var cname = __global__["flash.utils.getQualifiedClassName"](o);
|
||||
if (cname == "null" || cname.substr(0, 8) == "builtin.")
|
||||
return null;
|
||||
// getEnum(Enum) should be null
|
||||
if (o.hasOwnProperty("prototype"))
|
||||
return null;
|
||||
var c = __as__(__global__["flash.utils.getDefinitionByName"](cname), Class);
|
||||
if (!c.__isenum)
|
||||
return null;
|
||||
return c;
|
||||
}
|
||||
|
||||
public static function getSuperClass(c:Class<Dynamic>):Class<Dynamic>
|
||||
untyped {
|
||||
var cname = __global__["flash.utils.getQualifiedSuperclassName"](c);
|
||||
if (cname == null || cname == "Object")
|
||||
return null;
|
||||
return __as__(__global__["flash.utils.getDefinitionByName"](cname), Class);
|
||||
}
|
||||
|
||||
public static function getClassName(c:Class<Dynamic>):String {
|
||||
if (c == null)
|
||||
return null;
|
||||
var str:String = untyped __global__["flash.utils.getQualifiedClassName"](c);
|
||||
switch (str) {
|
||||
case "int":
|
||||
return "Int";
|
||||
case "Number":
|
||||
return "Float";
|
||||
case "Boolean":
|
||||
return "Bool";
|
||||
case _:
|
||||
var idx = str.lastIndexOf("::");
|
||||
if (idx == -1) {
|
||||
return str;
|
||||
} else {
|
||||
return str.substring(0, idx) + "." + str.substring(idx + 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function getEnumName(e:Enum<Dynamic>):String {
|
||||
return getClassName(cast e);
|
||||
}
|
||||
|
||||
public static function resolveClass(name:String):Class<Dynamic>
|
||||
untyped {
|
||||
var cl:Class<Dynamic>;
|
||||
try {
|
||||
cl = __as__(__global__["flash.utils.getDefinitionByName"](name), Class);
|
||||
if (cl.__isenum)
|
||||
return null;
|
||||
return cl; // skip test below
|
||||
} catch (e:Dynamic) {
|
||||
switch (name) {
|
||||
case "Int":
|
||||
return Int;
|
||||
case "Float":
|
||||
return Float;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
// ensure that this is a class
|
||||
if (cl == null || cl.__name__ == null)
|
||||
return null;
|
||||
return cl;
|
||||
}
|
||||
|
||||
public static function resolveEnum(name:String):Enum<Dynamic>
|
||||
untyped {
|
||||
var e:Dynamic;
|
||||
try {
|
||||
e = __global__["flash.utils.getDefinitionByName"](name);
|
||||
if (!e.__isenum)
|
||||
return null;
|
||||
return e;
|
||||
} catch (e:Dynamic) {
|
||||
if (name == "Bool")
|
||||
return Bool;
|
||||
return null;
|
||||
}
|
||||
// ensure that this is an enum
|
||||
if (e == null || e.__ename__ == null)
|
||||
return null;
|
||||
return e;
|
||||
}
|
||||
|
||||
public static function createInstance<T>(cl:Class<T>, args:Array<Dynamic>):T
|
||||
untyped {
|
||||
return switch (args.length) {
|
||||
case 0: __new__(cl);
|
||||
case 1: __new__(cl, args[0]);
|
||||
case 2: __new__(cl, args[0], args[1]);
|
||||
case 3: __new__(cl, args[0], args[1], args[2]);
|
||||
case 4: __new__(cl, args[0], args[1], args[2], args[3]);
|
||||
case 5: __new__(cl, args[0], args[1], args[2], args[3], args[4]);
|
||||
case 6: __new__(cl, args[0], args[1], args[2], args[3], args[4], args[5]);
|
||||
case 7: __new__(cl, args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
|
||||
case 8: __new__(cl, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
|
||||
case 9: __new__(cl, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]);
|
||||
case 10: __new__(cl, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
|
||||
case 11: __new__(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: __new__(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: __new__(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: __new__(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 {
|
||||
try {
|
||||
flash.Boot.skip_constructor = true;
|
||||
var i = __new__(cl);
|
||||
flash.Boot.skip_constructor = false;
|
||||
return i;
|
||||
} catch (e:Dynamic) {
|
||||
flash.Boot.skip_constructor = false;
|
||||
throw e;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static function createEnum<T>(e:Enum<T>, constr:String, ?params:Array<Dynamic>):T {
|
||||
var f:Dynamic = untyped 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 {
|
||||
var c:String = (untyped e.__constructs__)[index];
|
||||
if (c == null)
|
||||
throw index + " is not a valid enum constructor index";
|
||||
return createEnum(e, c, params);
|
||||
}
|
||||
|
||||
static function describe(t:Dynamic, fact:Bool):Array<String>
|
||||
untyped {
|
||||
var fields = new Array();
|
||||
var xml:flash.xml.XML = __global__["flash.utils.describeType"](t);
|
||||
if (fact)
|
||||
xml = xml.factory[0];
|
||||
var methods = xml.child("method");
|
||||
for (i in 0...methods.length())
|
||||
fields.push(Std.string(methods[i].attribute("name")));
|
||||
var vars = xml.child("variable");
|
||||
for (i in 0...vars.length())
|
||||
fields.push(Std.string(vars[i].attribute("name")));
|
||||
var accs = xml.child("accessor");
|
||||
for (i in 0...accs.length())
|
||||
fields.push(Std.string(accs[i].attribute("name")));
|
||||
return fields;
|
||||
}
|
||||
|
||||
public static function getInstanceFields(c:Class<Dynamic>):Array<String> {
|
||||
return describe(c, true);
|
||||
}
|
||||
|
||||
public static function getClassFields(c:Class<Dynamic>):Array<String> {
|
||||
var a = describe(c, false);
|
||||
a.remove("__construct__");
|
||||
a.remove("prototype");
|
||||
return a;
|
||||
}
|
||||
|
||||
public static function getEnumConstructs(e:Enum<Dynamic>):Array<String> {
|
||||
var a:Array<String> = untyped e.__constructs__;
|
||||
return a.copy();
|
||||
}
|
||||
|
||||
public static function typeof(v:Dynamic):ValueType
|
||||
untyped {
|
||||
var cname = __global__["flash.utils.getQualifiedClassName"](v);
|
||||
switch (cname) {
|
||||
case "null":
|
||||
return TNull;
|
||||
case "void":
|
||||
return TNull; // undefined
|
||||
case "int":
|
||||
return TInt;
|
||||
case "Number":
|
||||
// integers >28 bits are stored as Numbers in avm2
|
||||
if ((v < -0x10000000 || v >= 0x10000000) && Std.int(v) == v)
|
||||
return TInt;
|
||||
return TFloat;
|
||||
case "Boolean":
|
||||
return TBool;
|
||||
case "Object":
|
||||
return TObject;
|
||||
case "Function":
|
||||
return TFunction;
|
||||
default:
|
||||
var c:Dynamic = null;
|
||||
try {
|
||||
c = __global__["flash.utils.getDefinitionByName"](cname);
|
||||
if (v.hasOwnProperty("prototype"))
|
||||
return TObject;
|
||||
if (c.__isenum)
|
||||
return TEnum(c);
|
||||
return TClass(c);
|
||||
} catch (e:Dynamic) {
|
||||
if (cname == "builtin.as$0::MethodClosure" || cname.indexOf("-") != -1)
|
||||
return TFunction;
|
||||
return if (c == null) TFunction else TClass(c);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static function enumEq<T>(a:T, b:T):Bool
|
||||
untyped {
|
||||
if (a == b)
|
||||
return true;
|
||||
try {
|
||||
if (a.index != b.index)
|
||||
return false;
|
||||
var ap:Array<Dynamic> = a.params;
|
||||
var bp:Array<Dynamic> = b.params;
|
||||
for (i in 0...ap.length)
|
||||
if (!enumEq(ap[i], bp[i]))
|
||||
return false;
|
||||
} catch (e:Dynamic) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function enumConstructor(e:EnumValue):String {
|
||||
return untyped e.tag;
|
||||
}
|
||||
|
||||
public static function enumParameters(e:EnumValue):Array<Dynamic> {
|
||||
return untyped if (e.params == null) [] else e.params;
|
||||
}
|
||||
|
||||
extern public inline static function enumIndex(e:EnumValue):Int {
|
||||
return untyped e.index;
|
||||
}
|
||||
|
||||
public static function allEnums<T>(e:Enum<T>):Array<T> {
|
||||
var all = [];
|
||||
var cst:Array<String> = untyped e.__constructs__;
|
||||
for (c in cst) {
|
||||
var v = Reflect.field(e, c);
|
||||
if (!Reflect.isFunction(v))
|
||||
all.push(v);
|
||||
}
|
||||
return all;
|
||||
}
|
||||
}
|
100
Kha/Tools/linux_arm64/std/flash/_std/haxe/Exception.hx
Normal file
100
Kha/Tools/linux_arm64/std/flash/_std/haxe/Exception.hx
Normal file
@ -0,0 +1,100 @@
|
||||
package haxe;
|
||||
|
||||
import flash.errors.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;
|
||||
|
||||
@:noCompletion var __exceptionStack:Null<CallStack>;
|
||||
@:noCompletion var __nativeStack:String;
|
||||
@:noCompletion @:ifFeature("haxe.Exception.get_stack") var __skipStack:Int;
|
||||
@:noCompletion var __nativeException:Error;
|
||||
@: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((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);
|
||||
e.__shiftStack();
|
||||
return e;
|
||||
}
|
||||
}
|
||||
|
||||
public function new(message:String, ?previous:Exception, ?native:Any) {
|
||||
super(message);
|
||||
__previousException = previous;
|
||||
if(native != null && Std.isOfType(native, Error)) {
|
||||
__nativeException = native;
|
||||
__nativeStack = NativeStackTrace.normalize((native:Error).getStackTrace());
|
||||
} else {
|
||||
__nativeException = cast this;
|
||||
__nativeStack = NativeStackTrace.callStack();
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
function get_stack():CallStack {
|
||||
return switch __exceptionStack {
|
||||
case null:
|
||||
__exceptionStack = NativeStackTrace.toHaxe(__nativeStack, __skipStack);
|
||||
case s: s;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@:dox(hide)
|
||||
@:native('flash.errors.Error')
|
||||
extern class NativeException {
|
||||
@:noCompletion @:flash.property private var errorID(get,never):Int;
|
||||
// @:noCompletion private var message:Dynamic;
|
||||
@:noCompletion private var name:Dynamic;
|
||||
@:noCompletion private function new(?message:Dynamic, id:Dynamic = 0):Void;
|
||||
@:noCompletion private function getStackTrace():String;
|
||||
@:noCompletion private function get_errorID():Int;
|
||||
}
|
107
Kha/Tools/linux_arm64/std/flash/_std/haxe/Http.hx
Normal file
107
Kha/Tools/linux_arm64/std/flash/_std/haxe/Http.hx
Normal file
@ -0,0 +1,107 @@
|
||||
/*
|
||||
* 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;
|
||||
|
||||
import haxe.io.Bytes;
|
||||
|
||||
typedef Http = HttpFlash;
|
||||
|
||||
class HttpFlash extends haxe.http.HttpBase {
|
||||
var req:flash.net.URLLoader;
|
||||
|
||||
/**
|
||||
Cancels `this` Http request if `request` has been called and a response
|
||||
has not yet been received.
|
||||
**/
|
||||
public function cancel() {
|
||||
if (req == null)
|
||||
return;
|
||||
req.close();
|
||||
req = null;
|
||||
}
|
||||
|
||||
public override function request(?post:Bool) {
|
||||
responseAsString = null;
|
||||
responseBytes = null;
|
||||
var loader = req = new flash.net.URLLoader();
|
||||
loader.dataFormat = BINARY;
|
||||
loader.addEventListener("complete", function(e) {
|
||||
req = null;
|
||||
success(Bytes.ofData(loader.data));
|
||||
});
|
||||
loader.addEventListener("httpStatus", function(e:flash.events.HTTPStatusEvent) {
|
||||
// on Firefox 1.5, Flash calls onHTTPStatus with 0 (!??)
|
||||
if (e.status != 0)
|
||||
onStatus(e.status);
|
||||
});
|
||||
loader.addEventListener("ioError", function(e:flash.events.IOErrorEvent) {
|
||||
req = null;
|
||||
responseBytes = Bytes.ofData(loader.data);
|
||||
onError(e.text);
|
||||
});
|
||||
loader.addEventListener("securityError", function(e:flash.events.SecurityErrorEvent) {
|
||||
req = null;
|
||||
onError(e.text);
|
||||
});
|
||||
|
||||
// headers
|
||||
var param = false;
|
||||
var vars = new flash.net.URLVariables();
|
||||
for (p in params) {
|
||||
param = true;
|
||||
Reflect.setField(vars, p.name, p.value);
|
||||
}
|
||||
var small_url = url;
|
||||
if (param && !post) {
|
||||
var k = url.split("?");
|
||||
if (k.length > 1) {
|
||||
small_url = k.shift();
|
||||
vars.decode(k.join("?"));
|
||||
}
|
||||
}
|
||||
// Bug in flash player 9 ???
|
||||
small_url.split("xxx");
|
||||
|
||||
var request = new flash.net.URLRequest(small_url);
|
||||
for (h in headers)
|
||||
request.requestHeaders.push(new flash.net.URLRequestHeader(h.name, h.value));
|
||||
|
||||
if (postData != null) {
|
||||
request.data = postData;
|
||||
request.method = "POST";
|
||||
} else if (postBytes != null) {
|
||||
request.data = postBytes.getData();
|
||||
request.method = "POST";
|
||||
} else {
|
||||
request.data = vars;
|
||||
request.method = if (post) "POST" else "GET";
|
||||
}
|
||||
|
||||
try {
|
||||
loader.load(request);
|
||||
} catch (e:Dynamic) {
|
||||
req = null;
|
||||
onError("Exception: " + Std.string(e));
|
||||
}
|
||||
}
|
||||
}
|
46
Kha/Tools/linux_arm64/std/flash/_std/haxe/Json.hx
Normal file
46
Kha/Tools/linux_arm64/std/flash/_std/haxe/Json.hx
Normal 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 && flash11)
|
||||
@:native("JSON")
|
||||
extern
|
||||
#end
|
||||
class Json {
|
||||
#if (haxeJSON || !flash11)
|
||||
inline
|
||||
#end
|
||||
public static function parse(text:String):Dynamic
|
||||
#if (!haxeJSON && flash11); #else {
|
||||
return haxe.format.JsonParser.parse(text);
|
||||
} #end
|
||||
|
||||
#if (haxeJSON || !flash11)
|
||||
inline
|
||||
#end
|
||||
public static function stringify(value:Dynamic, ?replacer:(key:Dynamic, value:Dynamic) -> Dynamic, ?space:String):String
|
||||
#if (!haxeJSON && flash11); #else {
|
||||
return haxe.format.JsonPrinter.print(value, replacer, space);
|
||||
} #end
|
||||
}
|
61
Kha/Tools/linux_arm64/std/flash/_std/haxe/Log.hx
Normal file
61
Kha/Tools/linux_arm64/std/flash/_std/haxe/Log.hx
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* 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 class Log {
|
||||
public static function formatOutput(v:Dynamic, infos:PosInfos):String {
|
||||
var str = Std.string(v);
|
||||
if (infos == null)
|
||||
return str;
|
||||
var pstr = infos.fileName + ":" + infos.lineNumber;
|
||||
if (infos != null && infos.customParams != null)
|
||||
for (v in infos.customParams)
|
||||
str += ", " + Std.string(v);
|
||||
return pstr + ": " + str;
|
||||
}
|
||||
|
||||
public static dynamic function trace(v:Dynamic, ?infos:PosInfos):Void {
|
||||
#if (fdb || native_trace)
|
||||
var str = formatOutput(v, infos);
|
||||
untyped __global__["trace"](str);
|
||||
#else
|
||||
flash.Boot.__trace(v, infos);
|
||||
#end
|
||||
}
|
||||
|
||||
/**
|
||||
Clears the trace output.
|
||||
**/
|
||||
@:hack
|
||||
public static dynamic function clear():Void {
|
||||
flash.Boot.__clear_trace();
|
||||
}
|
||||
|
||||
/**
|
||||
Sets the color of the trace output to `rgb`.
|
||||
**/
|
||||
@:hack
|
||||
public static dynamic function setColor(rgb:Int):Void {
|
||||
flash.Boot.__set_trace_color(rgb);
|
||||
}
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
package haxe;
|
||||
|
||||
import flash.errors.Error;
|
||||
import haxe.CallStack.StackItem;
|
||||
|
||||
/**
|
||||
Do not use manually.
|
||||
**/
|
||||
@:dox(hide)
|
||||
@:noCompletion
|
||||
@:allow(haxe.Exception)
|
||||
class NativeStackTrace {
|
||||
@:ifFeature('haxe.NativeStackTrace.exceptionStack')
|
||||
static public inline function saveStack(e:Any):Void {
|
||||
}
|
||||
|
||||
static public inline function callStack():String {
|
||||
return normalize(new Error().getStackTrace(), 1);
|
||||
}
|
||||
|
||||
static public function exceptionStack():String {
|
||||
var err:Null<Error> = untyped flash.Boot.lastError;
|
||||
return err == null ? '' : normalize(err.getStackTrace());
|
||||
}
|
||||
|
||||
static public function toHaxe(native:String, skip:Int = 0):Array<StackItem> {
|
||||
var a = new Array();
|
||||
var r = ~/at ([^\/]+?)\$?(\/[^\(]+)?\(\)(\[(.*?):([0-9]+)\])?/;
|
||||
var rlambda = ~/^MethodInfo-([0-9]+)$/g;
|
||||
var cnt = 0;
|
||||
while (r.match(native)) {
|
||||
native = r.matchedRight();
|
||||
if(skip > cnt++) {
|
||||
continue;
|
||||
}
|
||||
var cl = r.matched(1).split("::").join(".");
|
||||
var meth = r.matched(2);
|
||||
var item;
|
||||
if (meth == null) {
|
||||
if (rlambda.match(cl))
|
||||
item = LocalFunction(Std.parseInt(rlambda.matched(1)));
|
||||
else
|
||||
item = Method(cl, "new");
|
||||
} else
|
||||
item = Method(cl, meth.substring(1));
|
||||
if (r.matched(3) != null)
|
||||
item = FilePos(item, r.matched(4), Std.parseInt(r.matched(5)));
|
||||
a.push(item);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
static function normalize(stack:String, skipItems:Int = 0):String {
|
||||
switch (stack:String).substring(0, 6) {
|
||||
case 'Error:' | 'Error\n': skipItems += 1;
|
||||
case _:
|
||||
}
|
||||
return skipLines(stack, skipItems);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
59
Kha/Tools/linux_arm64/std/flash/_std/haxe/Resource.hx
Normal file
59
Kha/Tools/linux_arm64/std/flash/_std/haxe/Resource.hx
Normal file
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* 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
|
||||
class Resource {
|
||||
static var content:Array<{name:String}>;
|
||||
|
||||
public static function listNames():Array<String> {
|
||||
var names = new Array();
|
||||
for (x in content)
|
||||
names.push(x.name);
|
||||
return names;
|
||||
}
|
||||
|
||||
public static function getString(name:String):String {
|
||||
var b = resolve(name);
|
||||
return b == null ? null : b.readUTFBytes(b.length);
|
||||
}
|
||||
|
||||
public static function getBytes(name:String):haxe.io.Bytes {
|
||||
var b = resolve(name);
|
||||
return b == null ? null : haxe.io.Bytes.ofData(b);
|
||||
}
|
||||
|
||||
static function resolve(name:String):flash.utils.ByteArray {
|
||||
try
|
||||
untyped {
|
||||
var c = __as__(__global__["flash.utils.getDefinitionByName"]("_res._" + name.split(".").join("_")), Class);
|
||||
return __new__(c);
|
||||
} catch (e:Dynamic) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static function __init__():Void {
|
||||
content = untyped __resources__();
|
||||
}
|
||||
}
|
142
Kha/Tools/linux_arm64/std/flash/_std/haxe/ds/IntMap.hx
Normal file
142
Kha/Tools/linux_arm64/std/flash/_std/haxe/ds/IntMap.hx
Normal file
@ -0,0 +1,142 @@
|
||||
/*
|
||||
* 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:flash.utils.Dictionary;
|
||||
|
||||
public function new():Void {
|
||||
h = new flash.utils.Dictionary();
|
||||
}
|
||||
|
||||
public inline function set(key:Int, value:T):Void {
|
||||
untyped h[key] = value;
|
||||
}
|
||||
|
||||
public inline function get(key:Int):Null<T> {
|
||||
return untyped h[key];
|
||||
}
|
||||
|
||||
public inline function exists(key:Int):Bool {
|
||||
return untyped __in__(key, h);
|
||||
}
|
||||
|
||||
public function remove(key:Int):Bool {
|
||||
if (!exists(key))
|
||||
return false;
|
||||
untyped __delete__(h, key);
|
||||
return true;
|
||||
}
|
||||
|
||||
public inline function keys():Iterator<Int> {
|
||||
return new IntMapKeysIterator(h);
|
||||
}
|
||||
|
||||
public inline function iterator():Iterator<T> {
|
||||
return new IntMapValuesIterator<T>(h);
|
||||
}
|
||||
|
||||
@: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 = new flash.utils.Dictionary();
|
||||
}
|
||||
}
|
||||
|
||||
// this version uses __has_next__/__forin__ special SWF opcodes for iteration with no allocation
|
||||
|
||||
@:allow(haxe.ds.IntMap)
|
||||
private class IntMapKeysIterator {
|
||||
var h:flash.utils.Dictionary;
|
||||
var index:Int;
|
||||
var nextIndex:Int;
|
||||
|
||||
inline function new(h:flash.utils.Dictionary):Void {
|
||||
this.h = h;
|
||||
this.index = 0;
|
||||
hasNext();
|
||||
}
|
||||
|
||||
public inline function hasNext():Bool {
|
||||
var h = h, index = index; // tmp vars required for __has_next
|
||||
var n = untyped __has_next__(h, index);
|
||||
this.nextIndex = index; // store next index
|
||||
return n;
|
||||
}
|
||||
|
||||
public inline function next():Int {
|
||||
var r:Int = untyped __forin__(h, nextIndex);
|
||||
index = nextIndex;
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
@:allow(haxe.ds.IntMap)
|
||||
private class IntMapValuesIterator<T> {
|
||||
var h:flash.utils.Dictionary;
|
||||
var index:Int;
|
||||
var nextIndex:Int;
|
||||
|
||||
inline function new(h:flash.utils.Dictionary):Void {
|
||||
this.h = h;
|
||||
this.index = 0;
|
||||
hasNext();
|
||||
}
|
||||
|
||||
public inline function hasNext():Bool {
|
||||
var h = h, index = index; // tmp vars required for __has_next
|
||||
var n = untyped __has_next__(h, index);
|
||||
this.nextIndex = index; // store next index
|
||||
return n;
|
||||
}
|
||||
|
||||
public inline function next():T {
|
||||
var r = untyped __foreach__(h, nextIndex);
|
||||
index = nextIndex;
|
||||
return r;
|
||||
}
|
||||
}
|
141
Kha/Tools/linux_arm64/std/flash/_std/haxe/ds/ObjectMap.hx
Normal file
141
Kha/Tools/linux_arm64/std/flash/_std/haxe/ds/ObjectMap.hx
Normal file
@ -0,0 +1,141 @@
|
||||
/*
|
||||
* 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 ObjectMap<K:{}, V> extends flash.utils.Dictionary implements haxe.Constraints.IMap<K, V> {
|
||||
public function new() {
|
||||
super(false);
|
||||
}
|
||||
|
||||
public inline function get(key:K):Null<V> {
|
||||
return untyped this[key];
|
||||
}
|
||||
|
||||
public inline function set(key:K, value:V):Void {
|
||||
untyped this[key] = value;
|
||||
}
|
||||
|
||||
public inline function exists(key:K):Bool {
|
||||
return untyped this[key] != null;
|
||||
}
|
||||
|
||||
public function remove(key:K):Bool {
|
||||
var has = exists(key);
|
||||
untyped __delete__(this, key);
|
||||
return has;
|
||||
}
|
||||
|
||||
public function keys():Iterator<K> {
|
||||
return NativePropertyIterator.iterator(this);
|
||||
}
|
||||
|
||||
public function iterator():Iterator<V> {
|
||||
return NativeValueIterator.iterator(this);
|
||||
}
|
||||
|
||||
@: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 = "";
|
||||
var it = keys();
|
||||
for (i in it) {
|
||||
s += (s == "" ? "" : ",") + Std.string(i);
|
||||
s += " => ";
|
||||
s += Std.string(get(i));
|
||||
}
|
||||
return s + "}";
|
||||
}
|
||||
|
||||
public function clear():Void {
|
||||
for (i in keys())
|
||||
untyped __delete__(this, i);
|
||||
}
|
||||
}
|
||||
|
||||
private class NativePropertyIterator {
|
||||
var collection:Dynamic;
|
||||
var index:Int = 0;
|
||||
|
||||
public static inline function iterator(collection:Dynamic):NativePropertyIterator {
|
||||
var result = new NativePropertyIterator();
|
||||
result.collection = collection;
|
||||
return result;
|
||||
}
|
||||
|
||||
function new() {}
|
||||
|
||||
public inline function hasNext():Bool {
|
||||
var c = collection;
|
||||
var i = index;
|
||||
var result = untyped __has_next__(c, i);
|
||||
collection = c;
|
||||
index = i;
|
||||
return result;
|
||||
}
|
||||
|
||||
public inline function next():Dynamic {
|
||||
var i = index;
|
||||
var result = untyped __forin__(collection, i);
|
||||
index = i;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
private class NativeValueIterator {
|
||||
var collection:Dynamic;
|
||||
var index:Int = 0;
|
||||
|
||||
public static inline function iterator(collection:Dynamic):NativeValueIterator {
|
||||
var result = new NativeValueIterator();
|
||||
result.collection = collection;
|
||||
return result;
|
||||
}
|
||||
|
||||
function new() {}
|
||||
|
||||
public inline function hasNext():Bool {
|
||||
var c = collection;
|
||||
var i = index;
|
||||
var result = untyped __has_next__(c, i);
|
||||
collection = c;
|
||||
index = i;
|
||||
return result;
|
||||
}
|
||||
|
||||
public inline function next():Dynamic {
|
||||
var i = index;
|
||||
var result = untyped __foreach__(collection, i);
|
||||
index = i;
|
||||
return result;
|
||||
}
|
||||
}
|
202
Kha/Tools/linux_arm64/std/flash/_std/haxe/ds/StringMap.hx
Normal file
202
Kha/Tools/linux_arm64/std/flash/_std/haxe/ds/StringMap.hx
Normal file
@ -0,0 +1,202 @@
|
||||
/*
|
||||
* 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 StringMap<T> implements haxe.Constraints.IMap<String, T> {
|
||||
private var h:Dynamic;
|
||||
private var rh:Dynamic;
|
||||
|
||||
static var reserved = {};
|
||||
|
||||
public function new():Void {
|
||||
h = {};
|
||||
}
|
||||
|
||||
inline function isReserved(key:String):Bool {
|
||||
return untyped __in__(key, reserved);
|
||||
}
|
||||
|
||||
public inline function set(key:String, value:T):Void {
|
||||
if (isReserved(key))
|
||||
setReserved(key, value);
|
||||
else
|
||||
untyped h[key] = value;
|
||||
}
|
||||
|
||||
public inline function get(key:String):Null<T> {
|
||||
if (isReserved(key))
|
||||
return getReserved(key);
|
||||
return untyped h[key];
|
||||
}
|
||||
|
||||
public inline function exists(key:String):Bool {
|
||||
if (isReserved(key))
|
||||
return existsReserved(key);
|
||||
return untyped __in__(key, h);
|
||||
}
|
||||
|
||||
function setReserved(key:String, value:T):Void {
|
||||
if (rh == null)
|
||||
rh = {};
|
||||
untyped rh["$" + key] = value;
|
||||
}
|
||||
|
||||
function getReserved(key:String):Null<T> {
|
||||
return rh == null ? null : untyped rh["$" + key];
|
||||
}
|
||||
|
||||
function existsReserved(key:String):Bool {
|
||||
if (rh == null)
|
||||
return false;
|
||||
return untyped __in__("$" + key, rh);
|
||||
}
|
||||
|
||||
public function remove(key:String):Bool {
|
||||
if (isReserved(key)) {
|
||||
key = "$" + key;
|
||||
if (rh == null || !untyped __in__(key, rh))
|
||||
return false;
|
||||
untyped __delete__(rh, key);
|
||||
return true;
|
||||
} else {
|
||||
if (!untyped __in__(key, h))
|
||||
return false;
|
||||
untyped __delete__(h, key);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public inline function keys():Iterator<String> {
|
||||
return new StringMapKeysIterator(h, rh);
|
||||
}
|
||||
|
||||
public inline function iterator():Iterator<T> {
|
||||
return new StringMapValuesIterator<T>(h, rh);
|
||||
}
|
||||
|
||||
@: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 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 = {};
|
||||
rh = null;
|
||||
}
|
||||
}
|
||||
|
||||
// this version uses __has_next__/__forin__ special SWF opcodes for iteration with no allocation
|
||||
|
||||
@:allow(haxe.ds.StringMap)
|
||||
private class StringMapKeysIterator {
|
||||
var h:Dynamic;
|
||||
var rh:Dynamic;
|
||||
var index:Int;
|
||||
var nextIndex:Int;
|
||||
var isReserved:Bool;
|
||||
|
||||
inline function new(h:Dynamic, rh:Dynamic):Void {
|
||||
this.h = h;
|
||||
this.rh = rh;
|
||||
this.index = 0;
|
||||
isReserved = false;
|
||||
hasNext();
|
||||
}
|
||||
|
||||
public inline function hasNext():Bool {
|
||||
var h = h, index = index; // tmp vars required for __has_next
|
||||
var n = untyped __has_next__(h, index);
|
||||
if (!n && rh != null) {
|
||||
h = this.h = rh;
|
||||
index = this.index = 0;
|
||||
rh = null;
|
||||
isReserved = true;
|
||||
n = untyped __has_next__(h, index);
|
||||
}
|
||||
this.nextIndex = index; // store next index
|
||||
return n;
|
||||
}
|
||||
|
||||
public inline function next():String {
|
||||
var r:String = untyped __forin__(h, nextIndex);
|
||||
index = nextIndex;
|
||||
if (isReserved)
|
||||
r = r.substr(1);
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
@:allow(haxe.ds.StringMap)
|
||||
private class StringMapValuesIterator<T> {
|
||||
var h:Dynamic;
|
||||
var rh:Dynamic;
|
||||
var index:Int;
|
||||
var nextIndex:Int;
|
||||
|
||||
inline function new(h:Dynamic, rh:Dynamic):Void {
|
||||
this.h = h;
|
||||
this.rh = rh;
|
||||
this.index = 0;
|
||||
hasNext();
|
||||
}
|
||||
|
||||
public inline function hasNext():Bool {
|
||||
var h = h, index = index; // tmp vars required for __has_next
|
||||
var n = untyped __has_next__(h, index);
|
||||
if (!n && rh != null) {
|
||||
h = this.h = rh;
|
||||
index = this.index = 0;
|
||||
rh = null;
|
||||
n = untyped __has_next__(h, index);
|
||||
}
|
||||
this.nextIndex = index; // store next index
|
||||
return n;
|
||||
}
|
||||
|
||||
public inline function next():T {
|
||||
var r = untyped __foreach__(h, nextIndex);
|
||||
index = nextIndex;
|
||||
return r;
|
||||
}
|
||||
}
|
147
Kha/Tools/linux_arm64/std/flash/_std/haxe/ds/UnsafeStringMap.hx
Normal file
147
Kha/Tools/linux_arm64/std/flash/_std/haxe/ds/UnsafeStringMap.hx
Normal file
@ -0,0 +1,147 @@
|
||||
/*
|
||||
* 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;
|
||||
|
||||
/**
|
||||
This is similar to `StringMap` excepts that it does not sanitize the keys.
|
||||
As a result, it will be faster to access the map for reading, but it might fail
|
||||
with some reserved keys such as `constructor` or `prototype`.
|
||||
**/
|
||||
class UnsafeStringMap<T> implements haxe.Constraints.IMap<String, T> {
|
||||
private var h:flash.utils.Dictionary;
|
||||
|
||||
public function new():Void {
|
||||
h = new flash.utils.Dictionary();
|
||||
}
|
||||
|
||||
public inline function set(key:String, value:T):Void {
|
||||
untyped h[key] = value;
|
||||
}
|
||||
|
||||
public inline function get(key:String):Null<T> {
|
||||
return untyped h[key];
|
||||
}
|
||||
|
||||
public inline function exists(key:String):Bool {
|
||||
return untyped __in__(key, h);
|
||||
}
|
||||
|
||||
public function remove(key:String):Bool {
|
||||
if (untyped !h.hasOwnProperty(key))
|
||||
return false;
|
||||
untyped __delete__(h, key);
|
||||
return true;
|
||||
}
|
||||
|
||||
public inline function keys():Iterator<String> {
|
||||
return new UnsafeStringMapKeysIterator(h);
|
||||
}
|
||||
|
||||
public inline function iterator():Iterator<T> {
|
||||
return new UnsafeStringMapValuesIterator<T>(h);
|
||||
}
|
||||
|
||||
public inline function keyValueIterator():KeyValueIterator<String, T> {
|
||||
return new haxe.iterators.MapKeyValueIterator(this);
|
||||
}
|
||||
|
||||
public function copy():UnsafeStringMap<T> {
|
||||
var copied = new UnsafeStringMap();
|
||||
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 = new flash.utils.Dictionary();
|
||||
}
|
||||
}
|
||||
|
||||
// this version uses __has_next__/__forin__ special SWF opcodes for iteration with no allocation
|
||||
|
||||
@:allow(haxe.ds.UnsafeStringMap)
|
||||
private class UnsafeStringMapKeysIterator {
|
||||
var h:flash.utils.Dictionary;
|
||||
var index:Int;
|
||||
var nextIndex:Int;
|
||||
|
||||
inline function new(h:flash.utils.Dictionary):Void {
|
||||
this.h = h;
|
||||
this.index = 0;
|
||||
hasNext();
|
||||
}
|
||||
|
||||
public inline function hasNext():Bool {
|
||||
var h = h, index = index; // tmp vars required for __has_next
|
||||
var n = untyped __has_next__(h, index);
|
||||
this.nextIndex = index; // store next index
|
||||
return n;
|
||||
}
|
||||
|
||||
public inline function next():String {
|
||||
var r:String = untyped __forin__(h, nextIndex);
|
||||
index = nextIndex;
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
@:allow(haxe.ds.UnsafeStringMap)
|
||||
private class UnsafeStringMapValuesIterator<T> {
|
||||
var h:flash.utils.Dictionary;
|
||||
var index:Int;
|
||||
var nextIndex:Int;
|
||||
|
||||
inline function new(h:flash.utils.Dictionary):Void {
|
||||
this.h = h;
|
||||
this.index = 0;
|
||||
hasNext();
|
||||
}
|
||||
|
||||
public inline function hasNext():Bool {
|
||||
var h = h, index = index; // tmp vars required for __has_next
|
||||
var n = untyped __has_next__(h, index);
|
||||
this.nextIndex = index; // store next index
|
||||
return n;
|
||||
}
|
||||
|
||||
public inline function next():T {
|
||||
var r = untyped __foreach__(h, nextIndex);
|
||||
index = nextIndex;
|
||||
return r;
|
||||
}
|
||||
}
|
141
Kha/Tools/linux_arm64/std/flash/_std/haxe/ds/WeakMap.hx
Normal file
141
Kha/Tools/linux_arm64/std/flash/_std/haxe/ds/WeakMap.hx
Normal file
@ -0,0 +1,141 @@
|
||||
/*
|
||||
* 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 WeakMap<K:{}, V> extends flash.utils.Dictionary implements haxe.Constraints.IMap<K, V> {
|
||||
public function new() {
|
||||
super(true);
|
||||
}
|
||||
|
||||
public inline function get(key:K):Null<V> {
|
||||
return untyped this[key];
|
||||
}
|
||||
|
||||
public inline function set(key:K, value:V):Void {
|
||||
untyped this[key] = value;
|
||||
}
|
||||
|
||||
public inline function exists(key:K):Bool {
|
||||
return untyped this[key] != null;
|
||||
}
|
||||
|
||||
public function remove(key:K):Bool {
|
||||
var has = exists(key);
|
||||
untyped __delete__(this, key);
|
||||
return has;
|
||||
}
|
||||
|
||||
public function keys():Iterator<K> {
|
||||
return NativePropertyIterator.iterator(this);
|
||||
}
|
||||
|
||||
public function iterator():Iterator<V> {
|
||||
return NativeValueIterator.iterator(this);
|
||||
}
|
||||
|
||||
public inline function keyValueIterator():KeyValueIterator<K, V> {
|
||||
return new haxe.iterators.MapKeyValueIterator(this);
|
||||
}
|
||||
|
||||
public function copy():WeakMap<K, V> {
|
||||
var copied = new WeakMap();
|
||||
for (key in keys())
|
||||
copied.set(key, get(key));
|
||||
return copied;
|
||||
}
|
||||
|
||||
public function toString():String {
|
||||
var s = "";
|
||||
var it = keys();
|
||||
for (i in it) {
|
||||
s += (s == "" ? "" : ",") + Std.string(i);
|
||||
s += " => ";
|
||||
s += Std.string(get(i));
|
||||
}
|
||||
return s + "}";
|
||||
}
|
||||
|
||||
public function clear():Void {
|
||||
for (i in keys())
|
||||
untyped __delete__(this, i);
|
||||
}
|
||||
}
|
||||
|
||||
private class NativePropertyIterator {
|
||||
var collection:Dynamic;
|
||||
var index:Int = 0;
|
||||
|
||||
public static inline function iterator(collection:Dynamic):NativePropertyIterator {
|
||||
var result = new NativePropertyIterator();
|
||||
result.collection = collection;
|
||||
return result;
|
||||
}
|
||||
|
||||
function new() {}
|
||||
|
||||
public inline function hasNext():Bool {
|
||||
var c = collection;
|
||||
var i = index;
|
||||
var result = untyped __has_next__(c, i);
|
||||
collection = c;
|
||||
index = i;
|
||||
return result;
|
||||
}
|
||||
|
||||
public inline function next():Dynamic {
|
||||
var i = index;
|
||||
var result = untyped __forin__(collection, i);
|
||||
index = i;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
private class NativeValueIterator {
|
||||
var collection:Dynamic;
|
||||
var index:Int = 0;
|
||||
|
||||
public static inline function iterator(collection:Dynamic):NativeValueIterator {
|
||||
var result = new NativeValueIterator();
|
||||
result.collection = collection;
|
||||
return result;
|
||||
}
|
||||
|
||||
function new() {}
|
||||
|
||||
public inline function hasNext():Bool {
|
||||
var c = collection;
|
||||
var i = index;
|
||||
var result = untyped __has_next__(c, i);
|
||||
collection = c;
|
||||
index = i;
|
||||
return result;
|
||||
}
|
||||
|
||||
public inline function next():Dynamic {
|
||||
var i = index;
|
||||
var result = untyped __foreach__(collection, i);
|
||||
index = i;
|
||||
return result;
|
||||
}
|
||||
}
|
54
Kha/Tools/linux_arm64/std/flash/_std/haxe/zip/Compress.hx
Normal file
54
Kha/Tools/linux_arm64/std/flash/_std/haxe/zip/Compress.hx
Normal 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.
|
||||
*/
|
||||
|
||||
package haxe.zip;
|
||||
|
||||
@:coreApi
|
||||
class Compress {
|
||||
public function new(level:Int):Void {
|
||||
throw new haxe.exceptions.NotImplementedException("Not implemented for this platform");
|
||||
}
|
||||
|
||||
public function execute(src:haxe.io.Bytes, srcPos:Int, dst:haxe.io.Bytes, dstPos:Int):{done:Bool, read:Int, write:Int} {
|
||||
return null;
|
||||
}
|
||||
|
||||
public function setFlushMode(f:FlushMode):Void {}
|
||||
|
||||
public function close():Void {}
|
||||
|
||||
public static function run(s:haxe.io.Bytes, level:Int):haxe.io.Bytes {
|
||||
if (s.length == 0) {
|
||||
// Flash returns 0 bytes for 0 length compress (which can't be decoded on other platforms...)
|
||||
var b = haxe.io.Bytes.alloc(8);
|
||||
b.set(0, 0x78);
|
||||
b.set(1, 0xDA);
|
||||
b.set(2, 0x03);
|
||||
b.set(7, 0x01);
|
||||
return b;
|
||||
}
|
||||
var tmp = new flash.utils.ByteArray();
|
||||
tmp.writeBytes(s.getData(), 0, s.length);
|
||||
tmp.compress();
|
||||
return haxe.io.Bytes.ofData(tmp);
|
||||
}
|
||||
}
|
45
Kha/Tools/linux_arm64/std/flash/_std/haxe/zip/Uncompress.hx
Normal file
45
Kha/Tools/linux_arm64/std/flash/_std/haxe/zip/Uncompress.hx
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* 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.zip;
|
||||
|
||||
@:coreApi
|
||||
class Uncompress {
|
||||
public function new(?windowBits:Int):Void {
|
||||
throw new haxe.exceptions.NotImplementedException("Not implemented for this platform");
|
||||
}
|
||||
|
||||
public function execute(src:haxe.io.Bytes, srcPos:Int, dst:haxe.io.Bytes, dstPos:Int):{done:Bool, read:Int, write:Int} {
|
||||
return null;
|
||||
}
|
||||
|
||||
public function setFlushMode(f:FlushMode):Void {}
|
||||
|
||||
public function close():Void {}
|
||||
|
||||
public static function run(src:haxe.io.Bytes, ?bufsize:Int):haxe.io.Bytes {
|
||||
var tmp = new flash.utils.ByteArray();
|
||||
tmp.writeBytes(src.getData(), 0, src.length);
|
||||
tmp.uncompress();
|
||||
return haxe.io.Bytes.ofData(tmp);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user