![]() |
back |
Whereas Firefox and Chrome (webkit) accepts undefined as value, and null.
var o1 = { func : function(key, value) {
if(key !== undefined) {
this[key] = value;
log("set: " + key + "=" + this[key]);
}
else { log("did nothing"); }
}
},
o2 = {},
doApply = function() {
o1.func.apply(o2, ["someKey", "someValue"]);
try { o1.func.apply(o2, []); }
catch(er) { log("failed when second arg empty array"); }
try { o1.func.apply(o2); }
catch(er) { log("failed when no second arg at all (truly undefined)"); }
try { o1.func.apply(o2, undefined); }
catch(er) { log("failed when second arg undefined (undefined as value)"); }
try { o1.func.apply(o2, null); }
catch(er) { log("failed when second arg null"); }
try { o1.func.apply(o2, 0); }
catch(er) { log("failed when second arg zero"); }
};