forked from LeenkxTeam/LNXSDK
Update Files
This commit is contained in:
100
Kha/Tools/macos/std/flash/_std/haxe/Exception.hx
Normal file
100
Kha/Tools/macos/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/macos/std/flash/_std/haxe/Http.hx
Normal file
107
Kha/Tools/macos/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/macos/std/flash/_std/haxe/Json.hx
Normal file
46
Kha/Tools/macos/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/macos/std/flash/_std/haxe/Log.hx
Normal file
61
Kha/Tools/macos/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);
|
||||
}
|
||||
}
|
69
Kha/Tools/macos/std/flash/_std/haxe/NativeStackTrace.hx
Normal file
69
Kha/Tools/macos/std/flash/_std/haxe/NativeStackTrace.hx
Normal file
@ -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/macos/std/flash/_std/haxe/Resource.hx
Normal file
59
Kha/Tools/macos/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/macos/std/flash/_std/haxe/ds/IntMap.hx
Normal file
142
Kha/Tools/macos/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/macos/std/flash/_std/haxe/ds/ObjectMap.hx
Normal file
141
Kha/Tools/macos/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/macos/std/flash/_std/haxe/ds/StringMap.hx
Normal file
202
Kha/Tools/macos/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/macos/std/flash/_std/haxe/ds/UnsafeStringMap.hx
Normal file
147
Kha/Tools/macos/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/macos/std/flash/_std/haxe/ds/WeakMap.hx
Normal file
141
Kha/Tools/macos/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/macos/std/flash/_std/haxe/zip/Compress.hx
Normal file
54
Kha/Tools/macos/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/macos/std/flash/_std/haxe/zip/Uncompress.hx
Normal file
45
Kha/Tools/macos/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