From a1a3aa46a20f5a307dacd1dd05f8ac7ad137d0b4 Mon Sep 17 00:00:00 2001 From: "sgjesse@chromium.org" Date: Thu, 5 Aug 2010 10:56:15 +0000 Subject: [PATCH] Object.seal(obj) and Object.freeze(obj) should return the input obj. BUG=http://code.google.com/p/v8/issues/detail?id=809 TEST=Seal/freeze an object and check if Object.seal and Object.freeze returns the given object. Burcu Dogan Review URL: http://codereview.chromium.org/3056049 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- AUTHORS | 1 + src/v8natives.js | 4 ++-- test/mjsunit/object-freeze.js | 4 ++++ test/mjsunit/object-seal.js | 4 ++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index 7e8f1f8..4d87db3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -28,4 +28,5 @@ Rene Rebe Rodolph Perfetta Ryan Dahl Subrato K De +Burcu Dogan diff --git a/src/v8natives.js b/src/v8natives.js index 6eb1371..85540e8 100644 --- a/src/v8natives.js +++ b/src/v8natives.js @@ -749,7 +749,7 @@ function ObjectSeal(obj) { if (desc.isConfigurable()) desc.setConfigurable(false); DefineOwnProperty(obj, name, desc, true); } - ObjectPreventExtension(obj); + return ObjectPreventExtension(obj); } @@ -766,7 +766,7 @@ function ObjectFreeze(obj) { if (desc.isConfigurable()) desc.setConfigurable(false); DefineOwnProperty(obj, name, desc, true); } - ObjectPreventExtension(obj); + return ObjectPreventExtension(obj); } diff --git a/test/mjsunit/object-freeze.js b/test/mjsunit/object-freeze.js index 5ab45e1..15e19ab 100644 --- a/test/mjsunit/object-freeze.js +++ b/test/mjsunit/object-freeze.js @@ -191,3 +191,7 @@ Object.defineProperty(obj5, 'y', {configurable: false, writable: false}); Object.preventExtensions(obj5); assertFalse(Object.isFrozen(obj5)); + +// Make sure that Object.freeze returns the frozen object. +var obj6 = {} +assertTrue(obj6 === Object.freeze(obj6)) diff --git a/test/mjsunit/object-seal.js b/test/mjsunit/object-seal.js index 896411c..9e7f44b 100644 --- a/test/mjsunit/object-seal.js +++ b/test/mjsunit/object-seal.js @@ -193,3 +193,7 @@ Object.defineProperty(obj4, 'y', {configurable: false, writable: false}); Object.preventExtensions(obj4); assertFalse(Object.isSealed(obj4)); + +// Make sure that Object.seal returns the sealed object. +var obj4 = {} +assertTrue(obj4 === Object.seal(obj4)) -- 2.7.4