| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 5bd423e157738cc467e4fd02d64ac3204e1c5701..ea836c7201bec811611461e0c747a43120604ec3 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -141,6 +141,9 @@ void Object::Lookup(String* name, LookupResult* result) {
|
| holder = native_context->string_function()->instance_prototype();
|
| } else if (IsBoolean()) {
|
| holder = native_context->boolean_function()->instance_prototype();
|
| + } else {
|
| + Isolate::Current()->PushStackTraceAndDie(
|
| + 0xDEAD0000, this, JSReceiver::cast(this)->map(), 0xDEAD0001);
|
| }
|
| }
|
| ASSERT(holder != NULL); // Cannot handle null or undefined.
|
| @@ -207,7 +210,20 @@ MaybeObject* JSObject::GetPropertyWithCallback(Object* receiver,
|
| if (result.IsEmpty()) {
|
| return isolate->heap()->undefined_value();
|
| }
|
| - return *v8::Utils::OpenHandle(*result);
|
| + Object* return_value = *v8::Utils::OpenHandle(*result);
|
| +#if ENABLE_EXTRA_CHECKS
|
| + if (!(return_value->IsSmi() ||
|
| + return_value->IsString() ||
|
| + return_value->IsSpecObject() ||
|
| + return_value->IsHeapNumber() ||
|
| + return_value->IsUndefined() ||
|
| + return_value->IsTrue() ||
|
| + return_value->IsFalse() ||
|
| + return_value->IsNull())) {
|
| + FATAL("API call returned invalid object");
|
| + }
|
| +#endif
|
| + return return_value;
|
| }
|
|
|
| // __defineGetter__ callback
|
|
|