From 0bb47b6c975ea1c7eaedc5e80e75c9fd5063e6bc Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Tue, 8 Jun 2010 18:19:00 -0700 Subject: Upgrade V8 to 2.2.15 --- deps/v8/src/codegen.cc | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'deps/v8/src/codegen.cc') diff --git a/deps/v8/src/codegen.cc b/deps/v8/src/codegen.cc index f89399a974..ff2fa0395b 100644 --- a/deps/v8/src/codegen.cc +++ b/deps/v8/src/codegen.cc @@ -254,10 +254,28 @@ Handle CodeGenerator::ComputeCallInitialize( // that it needs so we need to ensure it is generated already. ComputeCallInitialize(argc, NOT_IN_LOOP); } - CALL_HEAP_FUNCTION(StubCache::ComputeCallInitialize(argc, in_loop), Code); + CALL_HEAP_FUNCTION( + StubCache::ComputeCallInitialize(argc, in_loop, Code::CALL_IC), + Code); } +Handle CodeGenerator::ComputeKeyedCallInitialize( + int argc, + InLoopFlag in_loop) { + if (in_loop == IN_LOOP) { + // Force the creation of the corresponding stub outside loops, + // because it may be used when clearing the ICs later - it is + // possible for a series of IC transitions to lose the in-loop + // information, and the IC clearing code can't generate a stub + // that it needs so we need to ensure it is generated already. + ComputeKeyedCallInitialize(argc, NOT_IN_LOOP); + } + CALL_HEAP_FUNCTION( + StubCache::ComputeCallInitialize(argc, in_loop, Code::KEYED_CALL_IC), + Code); +} + void CodeGenerator::ProcessDeclarations(ZoneList* declarations) { int length = declarations->length(); int globals = 0; -- cgit v1.2.1