| Index: src/code-factory.cc | 
| diff --git a/src/code-factory.cc b/src/code-factory.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..c9fc86286bf4b83dffc75024a0124ed7714dd0f8 | 
| --- /dev/null | 
| +++ b/src/code-factory.cc | 
| @@ -0,0 +1,92 @@ | 
| +// Copyright 2014 the V8 project authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +#include "src/v8.h" | 
| + | 
| +#include "src/bootstrapper.h" | 
| +#include "src/code-factory.h" | 
| +#include "src/ic/ic.h" | 
| + | 
| +namespace v8 { | 
| +namespace internal { | 
| + | 
| +// static | 
| +Callable CodeFactory::LoadIC(Isolate* isolate, ContextualMode mode) { | 
| +  return Callable( | 
| +      LoadIC::initialize_stub(isolate, LoadIC::State(mode).GetExtraICState()), | 
| +      LoadDescriptor(isolate)); | 
| +} | 
| + | 
| + | 
| +// static | 
| +Callable CodeFactory::KeyedLoadIC(Isolate* isolate) { | 
| +  return Callable(isolate->builtins()->KeyedLoadIC_Initialize(), | 
| +                  LoadDescriptor(isolate)); | 
| +} | 
| + | 
| + | 
| +// static | 
| +Callable CodeFactory::StoreIC(Isolate* isolate, StrictMode mode) { | 
| +  return Callable(StoreIC::initialize_stub(isolate, mode), | 
| +                  StoreDescriptor(isolate)); | 
| +} | 
| + | 
| + | 
| +// static | 
| +Callable CodeFactory::KeyedStoreIC(Isolate* isolate, StrictMode mode) { | 
| +  Handle<Code> ic = mode == SLOPPY | 
| +                        ? isolate->builtins()->KeyedStoreIC_Initialize() | 
| +                        : isolate->builtins()->KeyedStoreIC_Initialize_Strict(); | 
| +  return Callable(ic, StoreDescriptor(isolate)); | 
| +} | 
| + | 
| + | 
| +// static | 
| +Callable CodeFactory::CompareIC(Isolate* isolate, Token::Value op) { | 
| +  Handle<Code> code = CompareIC::GetUninitialized(isolate, op); | 
| +  return Callable(code, BinaryOpDescriptor(isolate)); | 
| +} | 
| + | 
| + | 
| +// static | 
| +Callable CodeFactory::BinaryOpIC(Isolate* isolate, Token::Value op, | 
| +                                 OverwriteMode mode) { | 
| +  BinaryOpICStub stub(isolate, op, mode); | 
| +  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor()); | 
| +} | 
| + | 
| + | 
| +// static | 
| +Callable CodeFactory::ToBoolean(Isolate* isolate, | 
| +                                ToBooleanStub::ResultMode mode, | 
| +                                ToBooleanStub::Types types) { | 
| +  ToBooleanStub stub(isolate, mode, types); | 
| +  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor()); | 
| +} | 
| + | 
| + | 
| +// static | 
| +Callable CodeFactory::ToNumber(Isolate* isolate) { | 
| +  ToNumberStub stub(isolate); | 
| +  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor()); | 
| +} | 
| + | 
| + | 
| +// static | 
| +Callable CodeFactory::StringAdd(Isolate* isolate, StringAddFlags flags, | 
| +                                PretenureFlag pretenure_flag) { | 
| +  StringAddStub stub(isolate, flags, pretenure_flag); | 
| +  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor()); | 
| +} | 
| + | 
| + | 
| +// static | 
| +Callable CodeFactory::CallFunction(Isolate* isolate, int argc, | 
| +                                   CallFunctionFlags flags) { | 
| +  CallFunctionStub stub(isolate, argc, flags); | 
| +  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor()); | 
| +} | 
| + | 
| +}  // namespace internal | 
| +}  // namespace v8 | 
|  |