Commit 3a416133 authored by ricow@chromium.org's avatar ricow@chromium.org

Optimize format message to not use DefineOwnProperty and freeze, do these inline

Review URL: http://codereview.chromium.org/8494005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 52b1457f
......@@ -247,16 +247,21 @@ function FormatMessage(message) {
"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",
......
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