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