OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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 #ifndef V8_ISOLATE_INL_H_ | 5 #ifndef V8_ISOLATE_INL_H_ |
6 #define V8_ISOLATE_INL_H_ | 6 #define V8_ISOLATE_INL_H_ |
7 | 7 |
8 #include "src/isolate.h" | 8 #include "src/isolate.h" |
9 #include "src/objects-inl.h" | 9 #include "src/objects-inl.h" |
10 | 10 |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 // All that could be checked reliably is that | 126 // All that could be checked reliably is that |
127 // Array.prototype.constructor == Array. Given that limitation, no check is | 127 // Array.prototype.constructor == Array. Given that limitation, no check is |
128 // done here. In place, there are mjsunit tests harmony/array-species* which | 128 // done here. In place, there are mjsunit tests harmony/array-species* which |
129 // ensure that behavior is correct in various invalid protector cases. | 129 // ensure that behavior is correct in various invalid protector cases. |
130 | 130 |
131 Cell* species_cell = heap()->species_protector(); | 131 Cell* species_cell = heap()->species_protector(); |
132 return species_cell->value()->IsSmi() && | 132 return species_cell->value()->IsSmi() && |
133 Smi::cast(species_cell->value())->value() == kProtectorValid; | 133 Smi::cast(species_cell->value())->value() == kProtectorValid; |
134 } | 134 } |
135 | 135 |
136 bool Isolate::IsHasInstanceLookupChainIntact() { | |
137 PropertyCell* has_instance_cell = heap()->has_instance_protector(); | |
138 return has_instance_cell->value() == Smi::FromInt(kProtectorValid); | |
139 } | |
140 | |
141 bool Isolate::IsStringLengthOverflowIntact() { | 136 bool Isolate::IsStringLengthOverflowIntact() { |
142 PropertyCell* string_length_cell = heap()->string_length_protector(); | 137 PropertyCell* string_length_cell = heap()->string_length_protector(); |
143 return string_length_cell->value() == Smi::FromInt(kProtectorValid); | 138 return string_length_cell->value() == Smi::FromInt(kProtectorValid); |
144 } | 139 } |
145 | 140 |
146 bool Isolate::IsFastArrayIterationIntact() { | 141 bool Isolate::IsFastArrayIterationIntact() { |
147 Cell* fast_iteration_cell = heap()->fast_array_iteration_protector(); | 142 Cell* fast_iteration_cell = heap()->fast_array_iteration_protector(); |
148 return fast_iteration_cell->value() == Smi::FromInt(kProtectorValid); | 143 return fast_iteration_cell->value() == Smi::FromInt(kProtectorValid); |
149 } | 144 } |
150 | 145 |
151 bool Isolate::IsArrayBufferNeuteringIntact() { | 146 bool Isolate::IsArrayBufferNeuteringIntact() { |
152 PropertyCell* buffer_neutering = heap()->array_buffer_neutering_protector(); | 147 PropertyCell* buffer_neutering = heap()->array_buffer_neutering_protector(); |
153 return buffer_neutering->value() == Smi::FromInt(kProtectorValid); | 148 return buffer_neutering->value() == Smi::FromInt(kProtectorValid); |
154 } | 149 } |
155 | 150 |
156 bool Isolate::IsArrayIteratorLookupChainIntact() { | 151 bool Isolate::IsArrayIteratorLookupChainIntact() { |
157 PropertyCell* array_iterator_cell = heap()->array_iterator_protector(); | 152 PropertyCell* array_iterator_cell = heap()->array_iterator_protector(); |
158 return array_iterator_cell->value() == Smi::FromInt(kProtectorValid); | 153 return array_iterator_cell->value() == Smi::FromInt(kProtectorValid); |
159 } | 154 } |
160 | 155 |
161 } // namespace internal | 156 } // namespace internal |
162 } // namespace v8 | 157 } // namespace v8 |
163 | 158 |
164 #endif // V8_ISOLATE_INL_H_ | 159 #endif // V8_ISOLATE_INL_H_ |
OLD | NEW |