OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 "use strict"; | 5 "use strict"; |
6 | 6 |
7 // This file contains infrastructure used by the API. See | 7 // This file contains infrastructure used by the API. See |
8 // v8natives.js for an explanation of these files are processed and | 8 // v8natives.js for an explanation of these files are processed and |
9 // loaded. | 9 // loaded. |
10 | 10 |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 // Disable access checks while instantiating the object. | 92 // Disable access checks while instantiating the object. |
93 var requires_access_checks = %DisableAccessChecks(obj); | 93 var requires_access_checks = %DisableAccessChecks(obj); |
94 try { | 94 try { |
95 for (var i = 1; i < properties[0];) { | 95 for (var i = 1; i < properties[0];) { |
96 var length = properties[i]; | 96 var length = properties[i]; |
97 if (length == 3) { | 97 if (length == 3) { |
98 var name = properties[i + 1]; | 98 var name = properties[i + 1]; |
99 var prop_data = properties[i + 2]; | 99 var prop_data = properties[i + 2]; |
100 var attributes = properties[i + 3]; | 100 var attributes = properties[i + 3]; |
101 var value = Instantiate(prop_data, name); | 101 var value = Instantiate(prop_data, name); |
102 %AddProperty(obj, name, value, attributes); | 102 %AddPropertyForTemplate(obj, name, value, attributes); |
103 } else if (length == 4 || length == 5) { | 103 } else if (length == 4 || length == 5) { |
104 // TODO(verwaest): The 5th value used to be access_control. Remove once | 104 // TODO(verwaest): The 5th value used to be access_control. Remove once |
105 // the bindings are updated. | 105 // the bindings are updated. |
106 var name = properties[i + 1]; | 106 var name = properties[i + 1]; |
107 var getter = Instantiate(properties[i + 2]); | 107 var getter = Instantiate(properties[i + 2]); |
108 var setter = Instantiate(properties[i + 3]); | 108 var setter = Instantiate(properties[i + 3]); |
109 var attribute = properties[i + 4]; | 109 var attribute = properties[i + 4]; |
110 %DefineAccessorPropertyUnchecked(obj, name, getter, setter, attribute); | 110 %DefineAccessorPropertyUnchecked(obj, name, getter, setter, attribute); |
111 } else { | 111 } else { |
112 throw "Bad properties array"; | 112 throw "Bad properties array"; |
113 } | 113 } |
114 i += length + 1; | 114 i += length + 1; |
115 } | 115 } |
116 } finally { | 116 } finally { |
117 if (requires_access_checks) %EnableAccessChecks(obj); | 117 if (requires_access_checks) %EnableAccessChecks(obj); |
118 } | 118 } |
119 } | 119 } |
OLD | NEW |