OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 JSRegExp::cast(this)->JSRegExpVerify(); | 151 JSRegExp::cast(this)->JSRegExpVerify(); |
152 break; | 152 break; |
153 case FILLER_TYPE: | 153 case FILLER_TYPE: |
154 break; | 154 break; |
155 case PROXY_TYPE: | 155 case PROXY_TYPE: |
156 Proxy::cast(this)->ProxyVerify(); | 156 Proxy::cast(this)->ProxyVerify(); |
157 break; | 157 break; |
158 case SHARED_FUNCTION_INFO_TYPE: | 158 case SHARED_FUNCTION_INFO_TYPE: |
159 SharedFunctionInfo::cast(this)->SharedFunctionInfoVerify(); | 159 SharedFunctionInfo::cast(this)->SharedFunctionInfoVerify(); |
160 break; | 160 break; |
| 161 case JS_MESSAGE_OBJECT_TYPE: |
| 162 JSMessageObject::cast(this)->JSMessageObjectVerify(); |
| 163 break; |
161 | 164 |
162 #define MAKE_STRUCT_CASE(NAME, Name, name) \ | 165 #define MAKE_STRUCT_CASE(NAME, Name, name) \ |
163 case NAME##_TYPE: \ | 166 case NAME##_TYPE: \ |
164 Name::cast(this)->Name##Verify(); \ | 167 Name::cast(this)->Name##Verify(); \ |
165 break; | 168 break; |
166 STRUCT_LIST(MAKE_STRUCT_CASE) | 169 STRUCT_LIST(MAKE_STRUCT_CASE) |
167 #undef MAKE_STRUCT_CASE | 170 #undef MAKE_STRUCT_CASE |
168 | 171 |
169 default: | 172 default: |
170 UNREACHABLE(); | 173 UNREACHABLE(); |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 | 292 |
290 | 293 |
291 void JSValue::JSValueVerify() { | 294 void JSValue::JSValueVerify() { |
292 Object* v = value(); | 295 Object* v = value(); |
293 if (v->IsHeapObject()) { | 296 if (v->IsHeapObject()) { |
294 VerifyHeapPointer(v); | 297 VerifyHeapPointer(v); |
295 } | 298 } |
296 } | 299 } |
297 | 300 |
298 | 301 |
| 302 void JSMessageObject::JSMessageObjectVerify() { |
| 303 CHECK(IsJSMessageObject()); |
| 304 CHECK(type()->IsString()); |
| 305 CHECK(arguments()->IsJSArray()); |
| 306 VerifyObjectField(kStartPositionOffset); |
| 307 VerifyObjectField(kEndPositionOffset); |
| 308 VerifyObjectField(kArgumentsOffset); |
| 309 VerifyObjectField(kScriptOffset); |
| 310 VerifyObjectField(kStackTraceOffset); |
| 311 VerifyObjectField(kStackFramesOffset); |
| 312 } |
| 313 |
| 314 |
299 void String::StringVerify() { | 315 void String::StringVerify() { |
300 CHECK(IsString()); | 316 CHECK(IsString()); |
301 CHECK(length() >= 0 && length() <= Smi::kMaxValue); | 317 CHECK(length() >= 0 && length() <= Smi::kMaxValue); |
302 if (IsSymbol()) { | 318 if (IsSymbol()) { |
303 CHECK(!Heap::InNewSpace(this)); | 319 CHECK(!Heap::InNewSpace(this)); |
304 } | 320 } |
305 } | 321 } |
306 | 322 |
307 | 323 |
308 void JSFunction::JSFunctionVerify() { | 324 void JSFunction::JSFunctionVerify() { |
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
697 ASSERT(e->IsUndefined()); | 713 ASSERT(e->IsUndefined()); |
698 } | 714 } |
699 } | 715 } |
700 } | 716 } |
701 } | 717 } |
702 | 718 |
703 | 719 |
704 #endif // DEBUG | 720 #endif // DEBUG |
705 | 721 |
706 } } // namespace v8::internal | 722 } } // namespace v8::internal |
OLD | NEW |