Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(682)

Unified Diff: test/mjsunit/strong/object-delete.js

Issue 1773653002: [strong] Remove all remainders of strong mode (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Oversight Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/mjsunit/strong/mutually-recursive-funcs.js ('k') | test/mjsunit/strong/object-freeze-property.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/strong/object-delete.js
diff --git a/test/mjsunit/strong/object-delete.js b/test/mjsunit/strong/object-delete.js
deleted file mode 100644
index a655b65c78fa2bfedd08d767bb43760765ce7167..0000000000000000000000000000000000000000
--- a/test/mjsunit/strong/object-delete.js
+++ /dev/null
@@ -1,255 +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 getWeakObjects() {
- return getSloppyObjects().concat(getStrictObjects());
-}
-
-function getStrongObjects() {
- "use strong";
-// Strong functions can't have properties added to them, and will be tested as a
-// special case.
- return [({})];
-}
-
-function strongFunction() {
- "use strong";
-}
-
-function deleteFromObjectSloppy(o) {
- return delete o.foo;
-}
-
-function deleteFromObjectKeyedSloppy(o) {
- return delete o["foo"];
-}
-
-function deleteFromObjectKeyedVarSloppy(o) {
- var a = "foo";
- return delete o[a];
-}
-
-function deleteFromObjectKeyedComputedSloppy(o) {
- var a = "o";
- return delete o["fo" + a];
-}
-
-function deleteFromObjectWith(o) {
- with (o) {
- return delete foo;
- }
-}
-
-function deleteFromObjectElementSloppy(o) {
- return delete o[0];
-}
-
-function deleteFromObjectElementVarSloppy(o) {
- var a = 0;
- return delete o[a];
-}
-
-function deleteFromObjectElementSparseSloppy(o) {
- return delete o[100000];
-}
-
-function deleteFromObjectElementVarSloppy(o) {
- var a = 0;
- return delete o[a];
-}
-
-function deleteFromObjectElementSparseVarSloppy(o) {
- var a = 100000;
- return delete o[a];
-}
-
-function deleteFromObjectStrict(o) {
- "use strict";
- return delete o.foo;
-}
-
-function deleteFromObjectKeyedStrict(o) {
- "use strict";
- return delete o["foo"];
-}
-
-function deleteFromObjectKeyedVarStrict(o) {
- "use strict";
- var a = "foo";
- return delete o[a];
-}
-
-function deleteFromObjectKeyedComputedStrict(o) {
- "use strict";
- var a = "o";
- return delete o["fo" + a];
-}
-
-function deleteFromObjectElementStrict(o) {
- "use strict";
- return delete o[0];
-}
-
-function deleteFromObjectElementSparseStrict(o) {
- "use strict";
- return delete o[100000];
-}
-
-function deleteFromObjectElementVarStrict(o) {
- "use strict";
- var a = 0;
- return delete o[a];
-}
-
-function deleteFromObjectElementSparseVarStrict(o) {
- "use strict";
- var a = 100000;
- return delete o[a];
-}
-
-function testStrongObjectDelete() {
- "use strict";
-
- let deletePropertyFuncsSloppy = [
- deleteFromObjectSloppy,
- deleteFromObjectKeyedSloppy,
- deleteFromObjectKeyedVarSloppy,
- deleteFromObjectKeyedComputedSloppy,
- deleteFromObjectWith
- ];
- let deletePropertyFuncsStrict = [
- deleteFromObjectStrict,
- deleteFromObjectKeyedStrict,
- deleteFromObjectKeyedVarStrict,
- deleteFromObjectKeyedComputedStrict
- ];
- let deleteElementFuncsSloppy = [
- deleteFromObjectElementSloppy,
- deleteFromObjectElementVarSloppy
- ];
- let deleteElementSparseFuncsSloppy = [
- deleteFromObjectElementSparseSloppy,
- deleteFromObjectElementSparseVarSloppy
- ];
- let deleteElementFuncsStrict = [
- deleteFromObjectElementStrict,
- deleteFromObjectElementVarStrict
- ];
- let deleteElementSparseFuncsStrict = [
- deleteFromObjectElementSparseStrict,
- deleteFromObjectElementSparseVarStrict
- ];
- let deleteFuncs = deletePropertyFuncsSloppy.concat(
- deletePropertyFuncsStrict, deleteElementFuncsSloppy,
- deleteElementSparseFuncsSloppy, deleteElementFuncsStrict,
- deleteElementSparseFuncsStrict);
-
- for (let deleteFunc of deleteFuncs) {
- assertTrue(deleteFunc(strongFunction));
- }
-
- let testCasesSloppy = [
- [deletePropertyFuncsSloppy, "foo"],
- [deleteElementFuncsSloppy, "0"],
- [deleteElementSparseFuncsSloppy, "100000"]
- ];
-
- let testCasesStrict = [
- [deletePropertyFuncsStrict, "foo"],
- [deleteElementFuncsStrict, "0"],
- [deleteElementSparseFuncsStrict, "100000"]
- ];
-
- let propDescs = [
- {configurable: true, value: "bar"},
- {configurable: true, value: 1},
- {configurable: true, enumerable: true, writable: true, value: "bar"},
- {configurable: true, enumerable: true, writable: true, value: 1},
- {configurable: true, get: (function(){return 0}), set: (function(x){})}
- ];
-
- for (let propDesc of propDescs) {
- for (let testCase of testCasesSloppy) {
- let name = testCase[1];
- for (let deleteFunc of testCase[0]) {
- for (let o of getWeakObjects()) {
- Object.defineProperty(o, name, propDesc);
- assertTrue(delete o["bar"]);
- assertTrue(delete o[5000]);
- assertTrue(deleteFunc(o));
- assertFalse(o.hasOwnProperty(name));
- %OptimizeFunctionOnNextCall(deleteFunc);
- Object.defineProperty(o, name, propDesc);
- assertTrue(deleteFunc(o));
- assertFalse(o.hasOwnProperty(name));
- %DeoptimizeFunction(deleteFunc);
- Object.defineProperty(o, name, propDesc);
- assertTrue(deleteFunc(o));
- assertFalse(o.hasOwnProperty(name));
- }
- for (let o of getStrongObjects()) {
- Object.defineProperty(o, name, propDesc);
- assertTrue(delete o["bar"]);
- assertTrue(delete o[5000]);
- assertFalse(deleteFunc(o));
- assertTrue(o.hasOwnProperty(name));
- %OptimizeFunctionOnNextCall(deleteFunc);
- assertFalse(deleteFunc(o));
- assertTrue(o.hasOwnProperty(name));
- %DeoptimizeFunction(deleteFunc);
- assertFalse(deleteFunc(o));
- assertTrue(o.hasOwnProperty(name));
- }
- }
- }
- for (let testCase of testCasesStrict) {
- let name = testCase[1];
- for (let deleteFunc of testCase[0]) {
- for (let o of getWeakObjects()) {
- Object.defineProperty(o, name, propDesc);
- assertTrue(delete o["bar"]);
- assertTrue(delete o[5000]);
- assertTrue(deleteFunc(o));
- assertFalse(o.hasOwnProperty(name));
- %OptimizeFunctionOnNextCall(deleteFunc);
- Object.defineProperty(o, name, propDesc);
- assertTrue(deleteFunc(o));
- assertFalse(o.hasOwnProperty(name));
- %DeoptimizeFunction(deleteFunc);
- Object.defineProperty(o, name, propDesc);
- assertTrue(deleteFunc(o));
- assertFalse(o.hasOwnProperty(name));
- }
- for (let o of getStrongObjects()) {
- Object.defineProperty(o, name, propDesc);
- assertTrue(delete o["bar"]);
- assertTrue(delete o[5000]);
- assertThrows(function(){deleteFunc(o)}, TypeError);
- assertTrue(o.hasOwnProperty(name));
- %OptimizeFunctionOnNextCall(deleteFunc);
- assertThrows(function(){deleteFunc(o)}, TypeError);
- assertTrue(o.hasOwnProperty(name));
- %DeoptimizeFunction(deleteFunc);
- assertThrows(function(){deleteFunc(o)}, TypeError);
- assertTrue(o.hasOwnProperty(name));
- }
- }
- }
- }
-}
-testStrongObjectDelete();
« no previous file with comments | « test/mjsunit/strong/mutually-recursive-funcs.js ('k') | test/mjsunit/strong/object-freeze-property.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698