var funProto = Function.prototype;
assertEq(Object.getOwnPropertyDescriptor(funProto, "prototype"), undefined);

function Point(x, y) { this.x = x; this.y = y; }

var YAxisPoint = Point.bind(null, 0);

assertEq(YAxisPoint.prototype, undefined);

var oldPoint;
for (var i = 0, sz = 9; i < sz; oldPoint = point, i++)
{
  var point = new YAxisPoint(5);
  assertEq(point === oldPoint, false);
  assertEq(point.x, 0);
  assertEq(point.y, 5);
  assertEq(Object.getOwnPropertyDescriptor(funProto, "prototype"), undefined);
  assertEq(Object.getOwnPropertyDescriptor(YAxisPoint, "prototype"), undefined);
}