Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 87cc0317be54c6b9de944d676a0ec03f1f1b5e47..ea99c96c0ee78607234e10afa58e1bc011813d0b 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -2797,7 +2797,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateJSGeneratorObject) { |
JavaScriptFrameIterator it(isolate); |
JavaScriptFrame* frame = it.frame(); |
- JSFunction* function = JSFunction::cast(frame->function()); |
+ JSFunction* function = frame->function(); |
RUNTIME_ASSERT(function->shared()->is_generator()); |
JSGeneratorObject* generator; |
@@ -2826,8 +2826,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_SuspendJSGeneratorObject) { |
JavaScriptFrameIterator stack_iterator(isolate); |
JavaScriptFrame* frame = stack_iterator.frame(); |
- RUNTIME_ASSERT(JSFunction::cast(frame->function())->shared()->is_generator()); |
- ASSERT_EQ(JSFunction::cast(frame->function()), generator_object->function()); |
+ RUNTIME_ASSERT(frame->function()->shared()->is_generator()); |
+ ASSERT_EQ(frame->function(), generator_object->function()); |
// The caller should have saved the context and continuation already. |
ASSERT_EQ(generator_object->context(), Context::cast(frame->context())); |
@@ -5732,9 +5732,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetArgumentsProperty) { |
// Handle special arguments properties. |
if (key->Equals(isolate->heap()->length_string())) return Smi::FromInt(n); |
if (key->Equals(isolate->heap()->callee_string())) { |
- Object* function = frame->function(); |
- if (function->IsJSFunction() && |
- !JSFunction::cast(function)->shared()->is_classic_mode()) { |
+ JSFunction* function = frame->function(); |
+ if (!function->shared()->is_classic_mode()) { |
return isolate->Throw(*isolate->factory()->NewTypeError( |
"strict_arguments_callee", HandleVector<Object>(NULL, 0))); |
} |
@@ -8221,7 +8220,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyDeoptimized) { |
JavaScriptFrame* frame = it.frame(); |
RUNTIME_ASSERT(frame->function()->IsJSFunction()); |
- Handle<JSFunction> function(JSFunction::cast(frame->function()), isolate); |
+ Handle<JSFunction> function(frame->function(), isolate); |
Handle<Code> optimized_code(function->code()); |
RUNTIME_ASSERT((type != Deoptimizer::EAGER && |
type != Deoptimizer::SOFT) || function->IsOptimized()); |
@@ -8237,7 +8236,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyDeoptimized) { |
bool has_other_activations = false; |
while (!it.done()) { |
JavaScriptFrame* frame = it.frame(); |
- JSFunction* other_function = JSFunction::cast(frame->function()); |
+ JSFunction* other_function = frame->function(); |
if (frame->is_optimized() && other_function->code() == function->code()) { |
has_other_activations = true; |
break; |
@@ -8353,8 +8352,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NeverOptimize) { |
// Disable optimization for the calling function. |
JavaScriptFrameIterator it(isolate); |
if (!it.done()) { |
- JSFunction *function = JSFunction::cast(it.frame()->function()); |
- function->shared()->set_optimization_disabled(true); |
+ it.frame()->function()->shared()->set_optimization_disabled(true); |
} |
return isolate->heap()->undefined_value(); |
} |
@@ -11235,7 +11233,7 @@ static bool SetLocalVariableValue(Isolate* isolate, |
return false; |
} |
- Handle<JSFunction> function(JSFunction::cast(frame->function())); |
+ Handle<JSFunction> function(frame->function()); |
Handle<SharedFunctionInfo> shared(function->shared()); |
Handle<ScopeInfo> scope_info(shared->scope_info()); |
@@ -11482,7 +11480,7 @@ class ScopeIterator { |
: isolate_(isolate), |
frame_(frame), |
inlined_jsframe_index_(inlined_jsframe_index), |
- function_(JSFunction::cast(frame->function())), |
+ function_(frame->function()), |
context_(Context::cast(frame->context())), |
nested_scope_chain_(4), |
failed_(false) { |
@@ -11863,7 +11861,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetStepInPositions) { |
JavaScriptFrame* frame = frame_it.frame(); |
Handle<SharedFunctionInfo> shared = |
- Handle<SharedFunctionInfo>(JSFunction::cast(frame->function())->shared()); |
+ Handle<SharedFunctionInfo>(frame->function()->shared()); |
Handle<DebugInfo> debug_info = Debug::GetDebugInfo(shared); |
int len = 0; |