1.1 --- a/src/main/java/org/apidesign/java4browser/ByteCodeToJavaScript.java Thu Sep 20 10:26:59 2012 +0200
1.2 +++ b/src/main/java/org/apidesign/java4browser/ByteCodeToJavaScript.java Thu Sep 20 10:39:54 2012 +0200
1.3 @@ -82,6 +82,7 @@
1.4 out.append("\n this." + v.getName() + " = 0;");
1.5 }
1.6 }
1.7 + out.append("\n this.$instOf_").append(className).append(" = true;");
1.8 out.append("\n}");
1.9 ClassName sc = jc.getSuperClass();
1.10 if (sc != null) {
1.11 @@ -446,6 +447,14 @@
1.12 i += 2;
1.13 break;
1.14 }
1.15 + case bc_instanceof: {
1.16 + int indx = readIntArg(byteCodes, i);
1.17 + CPClassInfo ci = jc.getConstantPool().getClass(indx);
1.18 + out.append("stack.push(stack.pop().$instOf_")
1.19 + .append(ci.getClassName().getExternalName().replace('.', '_'))
1.20 + .append(" ? 1 : 0);");
1.21 + i += 2;
1.22 + }
1.23
1.24 }
1.25 out.append(" /*");
2.1 --- a/src/test/java/org/apidesign/java4browser/InstanceTest.java Thu Sep 20 10:26:59 2012 +0200
2.2 +++ b/src/test/java/org/apidesign/java4browser/InstanceTest.java Thu Sep 20 10:39:54 2012 +0200
2.3 @@ -57,7 +57,7 @@
2.4 Double.valueOf(0.0)
2.5 );
2.6 }
2.7 - /*
2.8 +
2.9 @Test public void isInstanceOf() throws Exception {
2.10 assertExec(
2.11 "Yes, we are instance",
2.12 @@ -73,7 +73,7 @@
2.13 Double.valueOf(0.0), false
2.14 );
2.15 }
2.16 - */
2.17 +
2.18 private static void assertExec(String msg, String methodName, Object expRes, Object... args) throws Exception {
2.19 StringBuilder sb = new StringBuilder();
2.20 Invocable i = StaticMethodTest.compileClass(sb, "Instance.class", "InstanceSub.class");