Browse Source

bring back Sys inclusion hack

Simon Krajewski 6 years ago
parent
commit
9f9e810e3a
2 changed files with 9 additions and 44 deletions
  1. 0 44
      std/eval/_std/Std.hx
  2. 9 0
      std/eval/_std/Sys.hx

+ 0 - 44
std/eval/_std/Std.hx

@@ -1,44 +0,0 @@
-/*
- * Copyright (C)2005-2019 Haxe Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-import haxe.Error;
-import sys.io.FileOutput;
-import sys.io.FileInput;
-
-@:coreApi extern class Std {
-	public static function is(v:Dynamic, t:Dynamic):Bool;
-
-	public static function downcast<T:{}, S:T>(value:T, c:Class<S>):S;
-
-	@:deprecated('Std.instance() is deprecated. Use Std.downcast() instead.')
-	public static function instance<T:{}, S:T>(value:T, c:Class<S>):S;
-
-	public static function string(s:Dynamic):String;
-
-	public static function int(x:Float):Int;
-
-	public static function parseInt(x:String):Null<Int>;
-
-	public static function parseFloat(x:String):Float;
-
-	public static function random(x:Int):Int;
-}

+ 9 - 0
std/eval/_std/Sys.hx

@@ -86,4 +86,13 @@ class Sys {
 	extern static public function stdout():haxe.io.Output;
 	extern static public function stdout():haxe.io.Output;
 
 
 	extern static public function stderr():haxe.io.Output;
 	extern static public function stderr():haxe.io.Output;
+
+	static function __init__():Void {
+		// This nonsense causes the classes to be loaded. Otherwise they might not make
+		// it into the interpreter, and then stderr() et. al. don't work.
+		var _ = (null : sys.io.FileOutput);
+		var _ = (null : sys.io.FileInput);
+
+		var _ = (null : haxe.Error);
+	}
 }
 }