Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 93037822cf3553ca0b60b62b736430b96770520d..c16244038b4b956645bd00214d03dd847d88bbaf 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -1478,11 +1478,11 @@ v8::Handle<Value> Message::GetScriptResourceName() const { |
} |
ENTER_V8; |
HandleScope scope; |
- i::Handle<i::JSObject> obj = |
- i::Handle<i::JSObject>::cast(Utils::OpenHandle(this)); |
+ i::Handle<i::JSMessageObject> message = |
+ i::Handle<i::JSMessageObject>::cast(Utils::OpenHandle(this)); |
// Return this.script.name. |
i::Handle<i::JSValue> script = |
- i::Handle<i::JSValue>::cast(GetProperty(obj, "script")); |
+ i::Handle<i::JSValue>::cast(i::Handle<i::Object>(message->script())); |
i::Handle<i::Object> resource_name(i::Script::cast(script->value())->name()); |
return scope.Close(Utils::ToLocal(resource_name)); |
} |
@@ -1494,11 +1494,11 @@ v8::Handle<Value> Message::GetScriptData() const { |
} |
ENTER_V8; |
HandleScope scope; |
- i::Handle<i::JSObject> obj = |
- i::Handle<i::JSObject>::cast(Utils::OpenHandle(this)); |
+ i::Handle<i::JSMessageObject> message = |
+ i::Handle<i::JSMessageObject>::cast(Utils::OpenHandle(this)); |
// Return this.script.data. |
i::Handle<i::JSValue> script = |
- i::Handle<i::JSValue>::cast(GetProperty(obj, "script")); |
+ i::Handle<i::JSValue>::cast(i::Handle<i::Object>(message->script())); |
i::Handle<i::Object> data(i::Script::cast(script->value())->data()); |
return scope.Close(Utils::ToLocal(data)); |
} |
@@ -1510,9 +1510,9 @@ v8::Handle<v8::StackTrace> Message::GetStackTrace() const { |
} |
ENTER_V8; |
HandleScope scope; |
- i::Handle<i::JSObject> obj = |
- i::Handle<i::JSObject>::cast(Utils::OpenHandle(this)); |
- i::Handle<i::Object> stackFramesObj = GetProperty(obj, "stackFrames"); |
+ i::Handle<i::JSMessageObject> message = |
+ i::Handle<i::JSMessageObject>::cast(Utils::OpenHandle(this)); |
+ i::Handle<i::Object> stackFramesObj(message->stack_frames()); |
if (!stackFramesObj->IsJSArray()) return v8::Handle<v8::StackTrace>(); |
i::Handle<i::JSArray> stackTrace = |
i::Handle<i::JSArray>::cast(stackFramesObj); |
@@ -1552,6 +1552,7 @@ int Message::GetLineNumber() const { |
ON_BAILOUT("v8::Message::GetLineNumber()", return kNoLineNumberInfo); |
ENTER_V8; |
HandleScope scope; |
+ |
EXCEPTION_PREAMBLE(); |
i::Handle<i::Object> result = CallV8HeapFunction("GetLineNumber", |
Utils::OpenHandle(this), |
@@ -1565,9 +1566,9 @@ int Message::GetStartPosition() const { |
if (IsDeadCheck("v8::Message::GetStartPosition()")) return 0; |
ENTER_V8; |
HandleScope scope; |
- |
- i::Handle<i::JSObject> data_obj = Utils::OpenHandle(this); |
- return static_cast<int>(GetProperty(data_obj, "startPos")->Number()); |
+ i::Handle<i::JSMessageObject> message = |
+ i::Handle<i::JSMessageObject>::cast(Utils::OpenHandle(this)); |
+ return message->start_position(); |
} |
@@ -1575,8 +1576,9 @@ int Message::GetEndPosition() const { |
if (IsDeadCheck("v8::Message::GetEndPosition()")) return 0; |
ENTER_V8; |
HandleScope scope; |
- i::Handle<i::JSObject> data_obj = Utils::OpenHandle(this); |
- return static_cast<int>(GetProperty(data_obj, "endPos")->Number()); |
+ i::Handle<i::JSMessageObject> message = |
+ i::Handle<i::JSMessageObject>::cast(Utils::OpenHandle(this)); |
+ return message->end_position(); |
} |
@@ -1606,8 +1608,10 @@ int Message::GetEndColumn() const { |
data_obj, |
&has_pending_exception); |
EXCEPTION_BAILOUT_CHECK(0); |
- int start = static_cast<int>(GetProperty(data_obj, "startPos")->Number()); |
- int end = static_cast<int>(GetProperty(data_obj, "endPos")->Number()); |
+ i::Handle<i::JSMessageObject> message = |
+ i::Handle<i::JSMessageObject>::cast(data_obj); |
+ int start = message->start_position(); |
+ int end = message->end_position(); |
return static_cast<int>(start_col_obj->Number()) + (end - start); |
} |