Commit ef14bcfe authored by dslomov@chromium.org's avatar dslomov@chromium.org

Revert "Convert `obj` ToObject in Object.keys()"

This reverts commit r24260 for breaking test262 tests.

TBR=arv@chromium.org

Review URL: https://codereview.chromium.org/608193002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 5d0e9a24
...@@ -24,7 +24,6 @@ Andreas Anyuru <andreas.anyuru@gmail.com> ...@@ -24,7 +24,6 @@ Andreas Anyuru <andreas.anyuru@gmail.com>
Baptiste Afsa <baptiste.afsa@arm.com> Baptiste Afsa <baptiste.afsa@arm.com>
Bert Belder <bertbelder@gmail.com> Bert Belder <bertbelder@gmail.com>
Burcu Dogan <burcujdogan@gmail.com> Burcu Dogan <burcujdogan@gmail.com>
Caitlin Potter <caitpotter88@gmail.com>
Craig Schlenter <craig.schlenter@gmail.com> Craig Schlenter <craig.schlenter@gmail.com>
Chunyang Dai <chunyang.dai@intel.com> Chunyang Dai <chunyang.dai@intel.com>
Daniel Andersson <kodandersson@gmail.com> Daniel Andersson <kodandersson@gmail.com>
......
...@@ -325,7 +325,9 @@ function ObjectLookupSetter(name) { ...@@ -325,7 +325,9 @@ function ObjectLookupSetter(name) {
function ObjectKeys(obj) { function ObjectKeys(obj) {
obj = ToObject(obj); if (!IS_SPEC_OBJECT(obj)) {
throw MakeTypeError("called_on_non_object", ["Object.keys"]);
}
if (%IsJSProxy(obj)) { if (%IsJSProxy(obj)) {
var handler = %GetHandler(obj); var handler = %GetHandler(obj);
var names = CallTrap0(handler, "keys", DerivedKeysTrap); var names = CallTrap0(handler, "keys", DerivedKeysTrap);
......
...@@ -31,8 +31,8 @@ ...@@ -31,8 +31,8 @@
// Based on LayoutTests/fast/js/Object-keys.html // Based on LayoutTests/fast/js/Object-keys.html
assertEquals(Object.keys(2), []); assertThrows(function () { Object.keys(2) }, TypeError);
assertEquals(Object.keys("foo"), ["0", "1", "2"]); assertThrows(function () { Object.keys("foo") }, TypeError);
assertThrows(function () { Object.keys(null) }, TypeError); assertThrows(function () { Object.keys(null) }, TypeError);
assertThrows(function () { Object.keys(undefined) }, TypeError); assertThrows(function () { Object.keys(undefined) }, TypeError);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment