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", |