nashorn/test/script/basic/javaclassoverrides.js
changeset 22669 75563515567f
parent 16777 207a993adb9a
child 24778 2ff5d7041566
--- a/nashorn/test/script/basic/javaclassoverrides.js	Thu Jan 30 19:28:40 2014 +0530
+++ b/nashorn/test/script/basic/javaclassoverrides.js	Thu Jan 30 20:13:27 2014 +0100
@@ -46,7 +46,8 @@
 var r1 = new R1
 var r2 = new R2
 // Create one with an instance-override too
-var r3 = new R2(function() { print("r3.run() invoked") })
+var R3 = Java.extend(R2)
+var r3 = new R3({ run: function() { print("r3.run() invoked") }})
 
 // Run 'em - we're passing them through a Thread to make sure they indeed
 // are full-blown Runnables
@@ -60,9 +61,9 @@
 runInThread(r3)
 
 // Two class-override classes differ
-print("r1.class != r2.class: " + (r1.class != r2.class))
-// However, adding instance-overrides doesn't change the class
-print("r2.class == r3.class: " + (r2.class == r3.class))
+print("r1.class !== r2.class: " + (r1.class !== r2.class))
+// instance-override class also differs
+print("r2.class !== r3.class: " + (r2.class !== r3.class))
 
 function checkAbstract(r) {
     try {
@@ -77,10 +78,10 @@
 // overrides nor instance overrides are present
 var RAbstract = Java.extend(java.lang.Runnable, {})
 checkAbstract(new RAbstract()) // class override (empty)
-checkAbstract(new RAbstract() {}) // class+instance override (empty)
+checkAbstract(new (Java.extend(RAbstract))() {}) // class+instance override (empty)
 
 // Check we delegate to superclass if neither class
 // overrides nor instance overrides are present
 var ExtendsList = Java.extend(java.util.ArrayList, {})
 print("(new ExtendsList).size() = " + (new ExtendsList).size())
-print("(new ExtendsList(){}).size() = " + (new ExtendsList(){}).size())
\ No newline at end of file
+print("(new (Java.extend(ExtendsList)){}).size() = " + (new (Java.extend(ExtendsList)){}).size())