// 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.seal;
function seal() { [native code for Object.seal, arity=1] }

js> [undefined, null, true, 1, 'hello'].forEach(function(value) { 
  >   expectTypeError(function() { Object.seal(value) }) 
  > })
js> expectTypeError(function() { Object.seal() })

js> var x = {}
js> var y = Object.seal(x)
js> x === y
true

js> var obj = Object.defineProperty({}, 'a', {configurable:true})
js> var _ = Object.seal(obj)
js> Object.getOwnPropertyDescriptor(obj, 'a').configurable
false
js> Object.isExtensible(obj)
false

js> Object.isSealed(obj)
true
