// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

js> load('testsrc/doctests/util.js');

js> Object.isExtensible;
function isExtensible() { [native code for Object.isExtensible, arity=1] }
js> expectTypeError(function() { Object.isExtensible() });
js> [undefined, null, true, 1, 'hello'].forEach(function(value) { 
  >   expectTypeError(function() { Object.isExtensible(value) }) 
  > })

js> Object.preventExtensions;
function preventExtensions() { [native code for Object.preventExtensions, arity=1] }
js> expectTypeError(function() { Object.preventExtensions() });
js> [undefined, null, true, 1, 'hello'].forEach(function(value) { 
  >   expectTypeError(function() { Object.preventExtensions(value) }) 
  > })

js> var x = {};
js> Object.isExtensible(x);
true
js> var y = Object.preventExtensions(x);
js> y === x;
true
js> Object.isExtensible(x);
false

js> x.a = 1; x.a
js>

js> x.__defineGetter__('b', function() { return 1 }); x.b
js> 
