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 Vexi-svn@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/vexi-svn