text: // Any copyright is dedicated to the Public Domain.
  // http://creativecommons.org/licenses/publicdomain/
  
  //-----------------------------------------------------------------------------
  var BUGNUMBER = 732669;
  var summary = "Primitive values don't box correctly";
  
  //print(BUGNUMBER + ": " + summary);
  
  /**************
   * BEGIN TEST *
   **************/
  
  var t;
  function returnThis() { return this; }
  
  // Boolean
  
  Boolean.prototype.method = returnThis;
  t = true.method();
  assertEq(t !== Boolean.prototype, true);
  assertEq(t.toString(), "true");
  
  Object.defineProperty(Boolean.prototype, "property", { get: returnThis, configurable: true });
  t = false.property;
  assertEq(t !== Boolean.prototype, true);
  assertEq(t.toString(), "false");
  
  delete Boolean.prototype.method;
  delete Boolean.prototype.property;
  
  
  // Number
  
  Number.prototype.method = returnThis;
  t = 5..method();
  assertEq(t !== Number.prototype, true);
  assertEq(t.toString(), "5");
  
  Object.defineProperty(Number.prototype, "property", { get: returnThis, configurable: true });
  t = 17..property;
  assertEq(t !== Number.prototype, true);
  assertEq(t.toString(), "17");
  
  delete Number.prototype.method;
  delete Number.prototype.property;
  
  
  // String
  
  String.prototype.method = returnThis;
  t = "foo".method();
  assertEq(t !== String.prototype, true);
  assertEq(t.toString(), "foo");
  
  Object.defineProperty(String.prototype, "property", { get: returnThis, configurable: true });
  t = "bar".property;
  assertEq(t !== String.prototype, true);
  assertEq(t.toString(), "bar");
  
  delete String.prototype.method;
  delete String.prototype.property;
  
  
  // Object
  
  Object.prototype.method = returnThis;
  
  t = true.method();
  assertEq(t !== Object.prototype, true);
  assertEq(t !== Boolean.prototype, true);
  assertEq(t.toString(), "true");
  
  t = 42..method();
  assertEq(t !== Object.prototype, true);
  assertEq(t !== Number.prototype, true);
  assertEq(t.toString(), "42");
  
  t = "foo".method();
  assertEq(t !== Object.prototype, true);
  assertEq(t !== String.prototype, true);
  assertEq(t.toString(), "foo");
  
  Object.defineProperty(Object.prototype, "property", { get: returnThis, configurable: true });
  
  t = false.property;
  assertEq(t !== Object.prototype, true);
  assertEq(t !== Boolean.prototype, true);
  assertEq(t.toString(), "false");
  
  t = 8675309..property;
  assertEq(t !== Object.prototype, true);
  assertEq(t !== Number.prototype, true);
  assertEq(t.toString(), "8675309");
  
  t = "bar".property;
  assertEq(t !== Object.prototype, true);
  assertEq(t !== String.prototype, true);
  assertEq(t.toString(), "bar");
  
  /******************************************************************************/
  
  if (typeof reportCompare === "function")
    reportCompare(true, true);
  
  //print("Tests complete");
  