Reviewers: Lasse Reichstein,
Description:
Optimize format message to not use DefineOwnProperty and freeze, do these
inline
Please review this at http://codereview.chromium.org/8494005/
SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/
Affected files:
M src/messages.js
Index: src/messages.js
===================================================================
--- src/messages.js (revision 9886)
+++ src/messages.js (working copy)
@@ -247,16 +247,21 @@
"redef_external_array_element", ["Cannot redefine a property of an
object with external array elements"],
];
var messages = { __proto__ : null };
- var desc = new PropertyDescriptor();
- desc.setConfigurable(false);
- desc.setEnumerable(false);
- desc.setWritable(false);
for (var i = 0; i < messagesDictionary.length; i += 2) {
var key = messagesDictionary[i];
var format = messagesDictionary[i + 1];
- ObjectFreeze(format);
- desc.setValue(format);
- DefineOwnProperty(messages, key, desc);
+
+ for (var j = 0; j < format.length; j++) {
+ %IgnoreAttributesAndSetProperty(format, %_NumberToString(j),
format[j],
+ DONT_DELETE | READ_ONLY |
DONT_ENUM);
+ }
+ %IgnoreAttributesAndSetProperty(format, 'length', format.length,
+ DONT_DELETE | READ_ONLY | DONT_ENUM);
+ %PreventExtensions(format);
+ %IgnoreAttributesAndSetProperty(messages,
+ key,
+ format,
+ DONT_DELETE | DONT_ENUM | READ_ONLY);
}
%PreventExtensions(messages);
%IgnoreAttributesAndSetProperty(builtins, "kMessages",
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev