Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index d7619e411fc146cd1d443f26d94f3f331acb8c34..7d154642ceeef58a093bc4724a99a07d24f5ef28 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -4281,6 +4281,11 @@ void HOptimizedGraphBuilder::VisitExpressions(ZoneList<Expression*>* exprs, |
bool HOptimizedGraphBuilder::BuildGraph() { |
+ if (IsSubclassConstructor(current_info()->function()->kind())) { |
+ Bailout(kSuperReference); |
+ return false; |
+ } |
+ |
Scope* scope = current_info()->scope(); |
SetUpScope(scope); |
@@ -7565,7 +7570,8 @@ HInstruction* HOptimizedGraphBuilder::BuildCallConstantFunction( |
HValue* target = Add<HConstant>(jsfun); |
// For constant functions, we try to avoid calling the |
// argument adaptor and instead call the function directly |
- int formal_parameter_count = jsfun->shared()->formal_parameter_count(); |
+ int formal_parameter_count = |
+ jsfun->shared()->internal_formal_parameter_count(); |
bool dont_adapt_arguments = |
(formal_parameter_count == |
SharedFunctionInfo::kDontAdaptArgumentsSentinel); |