Revision: 21534
Author: mstarzin...@chromium.org
Date: Tue May 27 15:00:26 2014 UTC
Log: Revert "Make 'name' property on functions configurable."
R=da...@google.com, da...@chromium.org
Review URL: https://codereview.chromium.org/297163009
http://code.google.com/p/v8/source/detail?r=21534
Modified:
/branches/bleeding_edge/src/bootstrapper.cc
/branches/bleeding_edge/test/mjsunit/es7/object-observe.js
/branches/bleeding_edge/test/mjsunit/regress/regress-1530.js
/branches/bleeding_edge/test/mjsunit/regress/regress-270142.js
=======================================
--- /branches/bleeding_edge/src/bootstrapper.cc Tue May 27 13:20:58 2014 UTC
+++ /branches/bleeding_edge/src/bootstrapper.cc Tue May 27 15:00:26 2014 UTC
@@ -386,47 +386,45 @@
int size = (prototypeMode == DONT_ADD_PROTOTYPE) ? 4 : 5;
Map::EnsureDescriptorSlack(map, size);
- PropertyAttributes ro_attribs =
- static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE | READ_ONLY);
- PropertyAttributes roc_attribs =
- static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY);
+ PropertyAttributes attribs = static_cast<PropertyAttributes>(
+ DONT_ENUM | DONT_DELETE | READ_ONLY);
Handle<AccessorInfo> length =
- Accessors::FunctionLengthInfo(isolate(), ro_attribs);
+ Accessors::FunctionLengthInfo(isolate(), attribs);
{ // Add length.
CallbacksDescriptor d(Handle<Name>(Name::cast(length->name())),
- length, ro_attribs);
+ length, attribs);
map->AppendDescriptor(&d);
}
Handle<AccessorInfo> name =
- Accessors::FunctionNameInfo(isolate(), roc_attribs);
+ Accessors::FunctionNameInfo(isolate(), attribs);
{ // Add name.
CallbacksDescriptor d(Handle<Name>(Name::cast(name->name())),
- name, roc_attribs);
+ name, attribs);
map->AppendDescriptor(&d);
}
Handle<AccessorInfo> args =
- Accessors::FunctionArgumentsInfo(isolate(), ro_attribs);
+ Accessors::FunctionArgumentsInfo(isolate(), attribs);
{ // Add arguments.
CallbacksDescriptor d(Handle<Name>(Name::cast(args->name())),
- args, ro_attribs);
+ args, attribs);
map->AppendDescriptor(&d);
}
Handle<AccessorInfo> caller =
- Accessors::FunctionCallerInfo(isolate(), ro_attribs);
+ Accessors::FunctionCallerInfo(isolate(), attribs);
{ // Add caller.
CallbacksDescriptor d(Handle<Name>(Name::cast(caller->name())),
- caller, ro_attribs);
+ caller, attribs);
map->AppendDescriptor(&d);
}
if (prototypeMode != DONT_ADD_PROTOTYPE) {
if (prototypeMode == ADD_WRITEABLE_PROTOTYPE) {
- ro_attribs = static_cast<PropertyAttributes>(ro_attribs &
~READ_ONLY);
+ attribs = static_cast<PropertyAttributes>(attribs & ~READ_ONLY);
}
Handle<AccessorInfo> prototype =
- Accessors::FunctionPrototypeInfo(isolate(), ro_attribs);
+ Accessors::FunctionPrototypeInfo(isolate(), attribs);
CallbacksDescriptor d(Handle<Name>(Name::cast(prototype->name())),
- prototype, ro_attribs);
+ prototype, attribs);
map->AppendDescriptor(&d);
}
}
@@ -535,8 +533,6 @@
static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE);
PropertyAttributes ro_attribs =
static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE | READ_ONLY);
- PropertyAttributes roc_attribs =
- static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY);
Handle<AccessorInfo> length =
Accessors::FunctionLengthInfo(isolate(), ro_attribs);
@@ -546,10 +542,10 @@
map->AppendDescriptor(&d);
}
Handle<AccessorInfo> name =
- Accessors::FunctionNameInfo(isolate(), roc_attribs);
+ Accessors::FunctionNameInfo(isolate(), ro_attribs);
{ // Add name.
CallbacksDescriptor d(Handle<Name>(Name::cast(name->name())),
- name, roc_attribs);
+ name, ro_attribs);
map->AppendDescriptor(&d);
}
{ // Add arguments.
=======================================
--- /branches/bleeding_edge/test/mjsunit/es7/object-observe.js Mon May 26
11:42:56 2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/es7/object-observe.js Tue May 27
15:00:26 2014 UTC
@@ -1142,8 +1142,7 @@
function blacklisted(obj, prop) {
return (obj instanceof Int32Array && prop == 1) ||
(obj instanceof Int32Array && prop === "length") ||
- (obj instanceof ArrayBuffer && prop == 1) ||
- (obj instanceof Function && prop === "name")
+ (obj instanceof ArrayBuffer && prop == 1)
}
for (var i in objects) for (var j in properties) {
=======================================
--- /branches/bleeding_edge/test/mjsunit/regress/regress-1530.js Mon May 26
11:42:56 2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/regress/regress-1530.js Tue May 27
15:00:26 2014 UTC
@@ -62,9 +62,8 @@
assertSame(Object.getPrototypeOf(new f()), z);
assertSame(Object.getOwnPropertyDescriptor(f, 'prototype').value, z);
-// Verify that non-configurability of other properties is respected, but
-// non-writability is ignored by Object.defineProperty().
-assertDoesNotThrow("Object.defineProperty(f, 'name', { value: {} })");
+// Verify that non-writability of other properties is respected.
+assertThrows("Object.defineProperty(f, 'name', { value: {} })");
assertThrows("Object.defineProperty(f, 'length', { value: {} })");
assertThrows("Object.defineProperty(f, 'caller', { value: {} })");
assertThrows("Object.defineProperty(f, 'arguments', { value: {} })");
=======================================
--- /branches/bleeding_edge/test/mjsunit/regress/regress-270142.js Mon May
26 11:42:56 2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/regress/regress-270142.js Tue May
27 15:00:26 2014 UTC
@@ -39,7 +39,7 @@
function checkNameDescriptor(f) {
var descriptor = Object.getOwnPropertyDescriptor(f, "name");
- assertTrue(descriptor.configurable);
+ assertFalse(descriptor.configurable);
assertFalse(descriptor.enumerable);
assertFalse(descriptor.writable);
}
--
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.