diff options
Diffstat (limited to 'deps/v8/test/mjsunit/strong/object-freeze-property.js')
-rw-r--r-- | deps/v8/test/mjsunit/strong/object-freeze-property.js | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/deps/v8/test/mjsunit/strong/object-freeze-property.js b/deps/v8/test/mjsunit/strong/object-freeze-property.js deleted file mode 100644 index e76af1bfc6..0000000000 --- a/deps/v8/test/mjsunit/strong/object-freeze-property.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2015 the V8 project authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Flags: --strong-mode --allow-natives-syntax - -// TODO(conradw): Track implementation of strong bit for other objects, add -// tests. - -function getSloppyObjects() { - return [(function(){}), ({})]; -} - -function getStrictObjects() { - "use strict"; - return [(function(){}), ({})]; -} - -function getStrongObjects() { - "use strong"; - // Strong functions can't have properties added to them. - return [{}]; -} - -(function testStrongObjectFreezePropValid() { - "use strict"; - let strongObjects = getStrongObjects(); - - for (let o of strongObjects) { - Object.defineProperty(o, "foo", { configurable: true, writable: true }); - assertDoesNotThrow( - function() { - "use strong"; - Object.defineProperty(o, "foo", {configurable: true, writable: false }); - }); - } -})(); - -(function testStrongObjectFreezePropInvalid() { - "use strict"; - let sloppyObjects = getSloppyObjects(); - let strictObjects = getStrictObjects(); - let strongObjects = getStrongObjects(); - let weakObjects = sloppyObjects.concat(strictObjects); - - for (let o of weakObjects) { - Object.defineProperty(o, "foo", { writable: true }); - assertDoesNotThrow( - function() { - "use strong"; - Object.defineProperty(o, "foo", { writable: false }); - }); - } - for (let o of strongObjects) { - function defProp(o) { - Object.defineProperty(o, "foo", { writable: false }); - } - function defProps(o) { - Object.defineProperties(o, { "foo": { writable: false } }); - } - function freezeProp(o) { - Object.freeze(o); - } - Object.defineProperty(o, "foo", { writable: true }); - for (let func of [defProp, defProps, freezeProp]) { - assertThrows(function(){func(o)}, TypeError); - assertThrows(function(){func(o)}, TypeError); - assertThrows(function(){func(o)}, TypeError); - %OptimizeFunctionOnNextCall(func); - assertThrows(function(){func(o)}, TypeError); - %DeoptimizeFunction(func); - assertThrows(function(){func(o)}, TypeError); - } - } -})(); |