function f(v) | |
{ | |
return v.x + v.x + v.y; | |
} | |
assertEq(f({ x: 1, y: 2 }), 4); | |
assertEq(f({ __proto__: {x: 1, y: 2} }), 4); | |
assertEq(f({ __proto__: {x: 0, y: 2}, x: 1 }), 4); | |
// Ensure there is no aliasing. | |
var global = 1; | |
assertEq(f(Object.defineProperty({ y : 2 }, "x", { get : function(){ return global++; } })), 5); |