Revision: 9893
Author: [email protected]
Date: Mon Nov 7 02:50:39 2011
Log: Optimize format message to not use DefineOwnProperty and freeze,
do these inline
Review URL: http://codereview.chromium.org/8494005
http://code.google.com/p/v8/source/detail?r=9893
Modified:
/branches/bleeding_edge/src/messages.js
=======================================
--- /branches/bleeding_edge/src/messages.js Mon Nov 7 01:30:28 2011
+++ /branches/bleeding_edge/src/messages.js Mon Nov 7 02:50:39 2011
@@ -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