Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions haxelib.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
"releasenote": "Fixes to make tests pass on JS, C++ and HL targets (more targets to be tested soon)",
"contributors": ["jeremyfa"],
"dependencies": {
"hscript": "2.3.0"
"hscript": "2.4.0"
}
}
}
12 changes: 6 additions & 6 deletions interpret/Env.hx
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class Env {
var stdModule:DynamicModule = DynamicModule.fromStatic(Std);

// Patch Std.is to work in scripting env
stdModule.items.set('Std.is', ClassFieldItem(is, stdModule.id, 'Std.is', true, 'Bool', [null, null]));
stdModule.items.set('Std.isOfType', ClassFieldItem(is, stdModule.id, 'Std.isOfType', true, 'Bool', [null, null]));

addModule('Std', stdModule);
addModule('String', DynamicModule.fromStatic(String));
Expand Down Expand Up @@ -224,23 +224,23 @@ class Env {
var vType:String = null;
var tClassType:String = null;

if (Std.is(v, DynamicClass._contextType) && v.exists('__interpretType')) {
if (Std.isOfType(v, DynamicClass._contextType) && v.exists('__interpretType')) {
vType = v.get('__interpretType');
}
else if (Std.is(v, DynamicClass) || Std.is(v, DynamicInstance)) {
else if (Std.isOfType(v, DynamicClass) || Std.isOfType(v, DynamicInstance)) {
vType = TypeUtils.typeOf(v, this);
}

if (Std.is(t, DynamicClass._contextType) && t.exists('__interpretType')) {
if (Std.isOfType(t, DynamicClass._contextType) && t.exists('__interpretType')) {
tClassType = t.get('__interpretType');
}
else if (Std.is(t, DynamicClass)) {
else if (Std.isOfType(t, DynamicClass)) {
tClassType = TypeUtils.typeOf(t, this);
}

if (vType == null && tClassType == null) {
// Nothing dynamic, use standard Std.is()
return Std.is(v, t);
return Std.isOfType(v, t);
}
else {
// Need to do runtime checks
Expand Down
48 changes: 24 additions & 24 deletions interpret/Interpreter.hx
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ class Interpreter extends hscript.Interp {
}
var superInstance = self.get('super');
if (superInstance != null) {
if (Std.is(superInstance, DynamicInstance)) {
if (Std.isOfType(superInstance, DynamicInstance)) {
var dynInst:DynamicInstance = cast superInstance;
var prevQueryingInterpreter = dynInst.interpreter._queryingInterpreter;
var prevUnresolved = dynInst.interpreter._unresolved;
Expand Down Expand Up @@ -280,7 +280,7 @@ class Interpreter extends hscript.Interp {
}
var superInstance = self.get('super');
if (superInstance != null) {
if (Std.is(superInstance, DynamicInstance)) {
if (Std.isOfType(superInstance, DynamicInstance)) {
var dynInst:DynamicInstance = cast superInstance;
var prevQueryingInterpreter = dynInst.interpreter._queryingInterpreter;
var prevUnresolved = dynInst.interpreter._unresolved;
Expand Down Expand Up @@ -387,7 +387,7 @@ class Interpreter extends hscript.Interp {
}
var superInstance = self.get('super');
if (superInstance != null) {
if (Std.is(superInstance, DynamicInstance)) {
if (Std.isOfType(superInstance, DynamicInstance)) {
var dynInst:DynamicInstance = cast superInstance;
var prevQueryingInterpreter = dynInst.interpreter._queryingInterpreter;
var prevUnresolved = dynInst.interpreter._unresolved;
Expand Down Expand Up @@ -466,7 +466,7 @@ class Interpreter extends hscript.Interp {
}
return null;
}
else if (Std.is(o, RuntimeItem)) {
else if (Std.isOfType(o, RuntimeItem)) {
//trace('is runtime item');
var moduleItem:RuntimeItem = cast o;
switch (moduleItem) {
Expand Down Expand Up @@ -511,15 +511,15 @@ class Interpreter extends hscript.Interp {
return null;
}
}
else if (Std.is(o, DynamicInstance)) {
else if (Std.isOfType(o, DynamicInstance)) {
var dynInst:DynamicInstance = cast o;
var prevQueryingInterpreter = dynInst.interpreter._queryingInterpreter;
dynInst.interpreter._queryingInterpreter = this;
var result:Dynamic = dynInst.get(f);
dynInst.interpreter._queryingInterpreter = prevQueryingInterpreter;
return result;
}
else if (Std.is(o, DynamicClass)) {
else if (Std.isOfType(o, DynamicClass)) {
var dynClass:DynamicClass = cast o;
dynClass.initIfNeeded();
var prevQueryingInterpreter = dynClass.interpreter._queryingInterpreter;
Expand All @@ -535,17 +535,17 @@ class Interpreter extends hscript.Interp {
return resolved;
}
}
else if (Std.is(o, DynamicAbstract)) {
else if (Std.isOfType(o, DynamicAbstract)) {
var abs:DynamicAbstract = cast o;
return abs.get(f, false);
}
else if (Std.is(o, DynamicPackage)) {
else if (Std.isOfType(o, DynamicPackage)) {
var dynPack:DynamicPackage = cast o;
var sub = dynPack.getSub(f);
//trace('sub($f) -> $sub');
return sub;
}
else if (Std.is(o, DynamicModule)) {
else if (Std.isOfType(o, DynamicModule)) {
var dynMod:DynamicModule = cast o;
var result = dynMod.items.get(dynMod.typePath + '.' + f);
return unwrap(result);
Expand Down Expand Up @@ -609,7 +609,7 @@ class Interpreter extends hscript.Interp {
}
return v;
}
if (Std.is(o, RuntimeItem)) {
if (Std.isOfType(o, RuntimeItem)) {
var moduleItem:RuntimeItem = cast o;
switch (moduleItem) {
case ClassFieldItem(rawItem, moduleId, name, isStatic, type, argTypes) | ExtensionItem(ClassFieldItem(rawItem, moduleId, name, isStatic, type, argTypes), _):
Expand Down Expand Up @@ -642,15 +642,15 @@ class Interpreter extends hscript.Interp {
return null;
}
}
else if (Std.is(o, DynamicInstance)) {
else if (Std.isOfType(o, DynamicInstance)) {
var dynInst:DynamicInstance = cast o;
var prevQueryingInterpreter = dynInst.interpreter._queryingInterpreter;
dynInst.interpreter._queryingInterpreter = this;
var result:Dynamic = dynInst.set(f, v, false);
dynInst.interpreter._queryingInterpreter = prevQueryingInterpreter;
return result;
}
else if (Std.is(o, DynamicClass)) {
else if (Std.isOfType(o, DynamicClass)) {
var dynClass:DynamicClass = cast o;
dynClass.initIfNeeded();
var prevQueryingInterpreter = dynClass.interpreter._queryingInterpreter;
Expand All @@ -659,7 +659,7 @@ class Interpreter extends hscript.Interp {
dynClass.interpreter._queryingInterpreter = prevQueryingInterpreter;
return result;
}
else if (Std.is(o, DynamicAbstract)) {
else if (Std.isOfType(o, DynamicAbstract)) {
var abs:DynamicAbstract = cast o;
return abs.set(f, v, false);
}
Expand All @@ -672,7 +672,7 @@ class Interpreter extends hscript.Interp {

//trace('CALL $o $f $args');

if (Std.is(f, RuntimeItem)) {
if (Std.isOfType(f, RuntimeItem)) {
switch (f) {
case ExtensionItem(ClassFieldItem(rawItem, moduleId, name, isStatic, type, argTypes), _):
if (rawItem == null) {
Expand Down Expand Up @@ -718,15 +718,15 @@ class Interpreter extends hscript.Interp {
if (dotIndex != -1) {
fieldName = fieldName.substring(dotIndex + 1);
}
if (Std.is(o, DynamicAbstract)) {
if (Std.isOfType(o, DynamicAbstract)) {
var abs:DynamicAbstract = cast o;
return abs.call(fieldName, args, false);
}
else {
return DynamicAbstract.callStatic(o, env, null, fieldName, args, false);
}
case EnumFieldItem(rawItem, _, _):
if (Std.is(rawItem, DynamicClass)) {
if (Std.isOfType(rawItem, DynamicClass)) {
return null; // TODO?
}
return Reflect.callMethod(o, rawItem, args);
Expand Down Expand Up @@ -784,19 +784,19 @@ class Interpreter extends hscript.Interp {
var instanciable:Dynamic = resolveInstanciable(cl);

// Abstract?
if (Std.is(instanciable, RuntimeItem)) {
if (Std.isOfType(instanciable, RuntimeItem)) {
var item:RuntimeItem = cast instanciable;
switch (item) {
case ClassItem(rawItem, moduleId, name):
if (rawItem == null) {
var dynClass = env.resolveDynamicClass(moduleId, name);
if (dynClass != null) return dynClass.createInstance(args);
}
else if (Std.is(rawItem, DynamicClass)) {
else if (Std.isOfType(rawItem, DynamicClass)) {
var dynClass:DynamicClass = cast rawItem;
return dynClass.createInstance(args);
}
else if (Std.is(rawItem, Class)) {
else if (Std.isOfType(rawItem, Class)) {
return Type.createInstance(rawItem, args);
}
case AbstractItem(rawItem, moduleId, name, runtimeType):
Expand All @@ -805,11 +805,11 @@ class Interpreter extends hscript.Interp {
}
}
// Dynamic class?
if (Std.is(instanciable, DynamicClass)) {
if (Std.isOfType(instanciable, DynamicClass)) {
var dynClass:DynamicClass = cast instanciable;
return dynClass.createInstance(args);
}
else if (Std.is(instanciable, Class)) {
else if (Std.isOfType(instanciable, Class)) {
return Type.createInstance(instanciable, args);
}

Expand All @@ -821,7 +821,7 @@ class Interpreter extends hscript.Interp {
function unwrapIfUnwrappable(value:Dynamic):Dynamic {

if (value == null) return null;
if (Std.is(value, RuntimeItem)) {
if (Std.isOfType(value, RuntimeItem)) {
var item:RuntimeItem = cast value;
switch (item) {
case ExtensionItem(subItem, _):
Expand Down Expand Up @@ -870,7 +870,7 @@ class Interpreter extends hscript.Interp {
if (value == null) return null;
if (value == Unresolved.UNRESOLVED) return null;

if (Std.is(value, RuntimeItem)) {
if (Std.isOfType(value, RuntimeItem)) {
var item:RuntimeItem = cast value;
switch (item) {
case ExtensionItem(subItem, _):
Expand Down Expand Up @@ -917,7 +917,7 @@ class Interpreter extends hscript.Interp {
}
}

if (Std.is(value, DynamicAbstract)) {
if (Std.isOfType(value, DynamicAbstract)) {
var abs:DynamicAbstract = cast value;
return abs.value;
}
Expand Down
30 changes: 15 additions & 15 deletions interpret/TypeUtils.hx
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,23 @@ class TypeUtils {
/** Return a type string (with dot path if any) from the given object */
public static function typeOf(obj:Dynamic, ?env:Env):String {

if (Std.is(obj, String)) return 'String';
if (Std.is(obj, Int)) return 'Int';
if (Std.is(obj, Float)) return 'Float';
if (Std.is(obj, Bool)) return 'Bool';
if (Std.is(obj, Array)) return 'Array';
if (Std.is(obj, IMap)) return 'Map';

if (Std.is(obj, DynamicClass)) {
if (Std.isOfType(obj, String)) return 'String';
if (Std.isOfType(obj, Int)) return 'Int';
if (Std.isOfType(obj, Float)) return 'Float';
if (Std.isOfType(obj, Bool)) return 'Bool';
if (Std.isOfType(obj, Array)) return 'Array';
if (Std.isOfType(obj, IMap)) return 'Map';

if (Std.isOfType(obj, DynamicClass)) {
var c:DynamicClass = cast obj;
return c.classType;
}
if (Std.is(obj, DynamicInstance)) {
if (Std.isOfType(obj, DynamicInstance)) {
var i:DynamicInstance = cast obj;
return i.dynamicClass.instanceType;
}

if (Std.is(obj, RuntimeItem)) {
if (Std.isOfType(obj, RuntimeItem)) {
var item:RuntimeItem = cast obj;
switch (item) {
case ExtensionItem(item, extendedType):
Expand All @@ -58,13 +58,13 @@ class TypeUtils {
}
}

if (Std.is(obj, Class)) {
if (Std.isOfType(obj, Class)) {
var classType = Type.getClassName(obj);
if (classType == null) classType = 'Dynamic';
return 'Class<'+classType+'>';
}

if (Std.is(obj, Enum)) {
if (Std.isOfType(obj, Enum)) {
var enumType = Type.getEnumName(obj);
if (enumType == null) enumType = 'Dynamic';
return 'Enum<'+enumType+'>';
Expand Down Expand Up @@ -133,7 +133,7 @@ class TypeUtils {
if (value == null) return null;
if (value == Unresolved.UNRESOLVED) return null;

if (Std.is(value, RuntimeItem)) {
if (Std.isOfType(value, RuntimeItem)) {
var item:RuntimeItem = cast value;
switch (item) {
case ExtensionItem(item, _) | SuperClassItem(item):
Expand Down Expand Up @@ -172,7 +172,7 @@ class TypeUtils {
}
}

if (Std.is(value, DynamicAbstract)) {
if (Std.isOfType(value, DynamicAbstract)) {
var abs:DynamicAbstract = cast value;
return abs.value;
}
Expand All @@ -183,7 +183,7 @@ class TypeUtils {

public static function wrapIfNeeded(value:Dynamic, type:String, ?env:Env):Dynamic {

if (value != null && Std.is(value, RuntimeItem)) {
if (value != null && Std.isOfType(value, RuntimeItem)) {
// Already wrapped
return value;
}
Expand Down
2 changes: 1 addition & 1 deletion sample-dynclass-js.hxml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
-lib hscript:2.3.0
-lib hscript:2.4.0
-main sample.DynamicClassSample
-cp .
-debug
Expand Down
2 changes: 1 addition & 1 deletion sample-dynclass.hxml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
-lib hscript:2.3.0
-lib hscript:2.4.0
-main sample.DynamicClassSample
-cp .
-debug
Expand Down
2 changes: 1 addition & 1 deletion sample-livereload-hl.hxml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
-lib hscript:2.3.0
-lib hscript:2.4.0
-main sample.LiveReloadSample
-cp .
-debug
Expand Down
2 changes: 1 addition & 1 deletion sample-livereload-js.hxml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
-lib hscript:2.3.0
-lib hscript:2.4.0
-main sample.LiveReloadSample
-cp .
-debug
Expand Down
2 changes: 1 addition & 1 deletion sample-livereload.hxml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
-lib hscript:2.3.0
-lib hscript:2.4.0
-main sample.LiveReloadSample
-cp .
-debug
Expand Down
2 changes: 1 addition & 1 deletion test.hxml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
-lib hscript:2.3.0
-lib hscript:2.4.0
-lib buddy
-D buddy-colors
-main test.Test
Expand Down
2 changes: 1 addition & 1 deletion test/native/Quad.hx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class Quad {
}

public function colorInfo():String {
return 'isInt=' + (Std.is(color, Int) ? '1' : '0') + ' / ' + color.toWebString();
return 'isInt=' + (Std.isOfType(color, Int) ? '1' : '0') + ' / ' + color.toWebString();
}

} //Quad
2 changes: 1 addition & 1 deletion test/script/AnotherClass.hx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class AnotherClass {

public function someInstanceMethod2() {

return Std.is(this, AnotherClass) ? 'true' : 'false';
return Std.isOfType(this, AnotherClass) ? 'true' : 'false';

} //someInstanceMethod2

Expand Down
4 changes: 2 additions & 2 deletions test/script/BasicClass.hx
Original file line number Diff line number Diff line change
Expand Up @@ -105,13 +105,13 @@ class BasicClass {

public function isBasicClass() {

return Std.is(this, BasicClass);
return Std.isOfType(this, BasicClass);

} //isBasicClass

public function isBasicClass2() {

return Std.is(this, test.script.BasicClass);
return Std.isOfType(this, test.script.BasicClass);

} //isBasicClass2

Expand Down
Loading