Revision: 3741
http://vexi.svn.sourceforge.net/vexi/?rev=3741&view=rev
Author: mkpg2
Date: 2009-11-03 02:30:14 +0000 (Tue, 03 Nov 2009)
Log Message:
-----------
Fix. NPE possible when getting keysof a clone.
Modified Paths:
--------------
trunk/core/org.ibex.js/src/org/ibex/js/JS.jpp
trunk/core/org.ibex.js/src_junit/test/js/exec/general/TestGeneral.java
trunk/core/org.ibex.js/src_junit/test/js/exec/general/destructuring.js
trunk/core/org.ibex.js/src_junit/test/js/exec/general/keysof.js
Modified: trunk/core/org.ibex.js/src/org/ibex/js/JS.jpp
===================================================================
--- trunk/core/org.ibex.js/src/org/ibex/js/JS.jpp 2009-11-03 01:42:30 UTC
(rev 3740)
+++ trunk/core/org.ibex.js/src/org/ibex/js/JS.jpp 2009-11-03 02:30:14 UTC
(rev 3741)
@@ -503,7 +503,11 @@
}
return r;
}
- public Set keySet() throws JSExn { return props.keySet(); }
+ public Set keySet() throws JSExn {
+ return props!=null?
+ props.keySet():
+ new HashSet(); // SHOULD use a constant here
+ }
public JS unclone() { return this; }
public String[] getFormalArgs() { return EMPTY_STRING_ARRAY; }
public int callType(){ return CALLTYPE_METHOD; }
Modified: trunk/core/org.ibex.js/src_junit/test/js/exec/general/TestGeneral.java
===================================================================
--- trunk/core/org.ibex.js/src_junit/test/js/exec/general/TestGeneral.java
2009-11-03 01:42:30 UTC (rev 3740)
+++ trunk/core/org.ibex.js/src_junit/test/js/exec/general/TestGeneral.java
2009-11-03 02:30:14 UTC (rev 3741)
@@ -15,7 +15,7 @@
public static void main(String[] args) throws Throwable {
try{
JSTestSuite jts = new JSTestSuite(TestGeneral.class);
- JSTestCase t = jts.createTestCase(jts.getResourceDirs(),
"clone.js");
+ JSTestCase t = jts.createTestCase(jts.getResourceDirs(),
"keysof.js");
//t.printByteCode();
t.runBare();
}catch(Throwable t){
Modified: trunk/core/org.ibex.js/src_junit/test/js/exec/general/destructuring.js
===================================================================
--- trunk/core/org.ibex.js/src_junit/test/js/exec/general/destructuring.js
2009-11-03 01:42:30 UTC (rev 3740)
+++ trunk/core/org.ibex.js/src_junit/test/js/exec/general/destructuring.js
2009-11-03 02:30:14 UTC (rev 3741)
@@ -14,3 +14,8 @@
[a, b] = function(x,y){ return [y,x]; }(a,b);
assertEquals(1,a);
assertEquals(2,b);
+
+// decl
+//var [c,d] = [1,2];
+//assertEquals(1,c);
+//assertEquals(2,d);
Modified: trunk/core/org.ibex.js/src_junit/test/js/exec/general/keysof.js
===================================================================
--- trunk/core/org.ibex.js/src_junit/test/js/exec/general/keysof.js
2009-11-03 01:42:30 UTC (rev 3740)
+++ trunk/core/org.ibex.js/src_junit/test/js/exec/general/keysof.js
2009-11-03 02:30:14 UTC (rev 3741)
@@ -1,13 +1,26 @@
sys.import("shared");
+// empty
+{
+ var y = {};
+ var keys = keysof(y);
+ assert(keys.size==0);
+
+ var z = sys.clone(y);
+ var zKeys = keysof(z);
+ assert(zKeys.size==0);
+
+}
+//////
+{
+ var x = {a:"1",b:"2",c:"3"};
+ var keys = keysof(x);
+ assert(keys.size==3);
+ var keysarray = keys.toArray();
+ sys.trace(keysarray);
+ assertObjEquals(["a","b","c"],keys.toArray().sort());
+ keys.remove("a");
+ assert(keys.size==2);
+ assert(x.a==null);
+}
-//////
-var x = {a:"1",b:"2",c:"3"};
-var keys = keysof(x);
-assert(keys.size==3);
-var keysarray = keys.toArray();
-sys.trace(keysarray);
-assertObjEquals(["a","b","c"],keys.toArray().sort());
-keys.remove("a");
-assert(keys.size==2);
-assert(x.a==null);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn