| Index: src/builtins/builtins.cc
|
| diff --git a/src/builtins/builtins.cc b/src/builtins/builtins.cc
|
| index b3cd1c653c880aeb8673d85cdb916b5089d54334..b76f9b91ee628b128fb23bec9b480926704bcba6 100644
|
| --- a/src/builtins/builtins.cc
|
| +++ b/src/builtins/builtins.cc
|
| @@ -26,6 +26,32 @@ Builtins::Builtins() : initialized_(false) {
|
|
|
| Builtins::~Builtins() {}
|
|
|
| +BailoutId Builtins::GetContinuationBailoutId(Name name) {
|
| + switch (name) {
|
| +#define BAILOUT_ID(NAME, ...) \
|
| + case k##NAME: \
|
| + return BailoutId(BailoutId::kFirstBuiltinContinuationId + name);
|
| + BUILTIN_LIST_TFJ(BAILOUT_ID);
|
| + BUILTIN_LIST_TFC(BAILOUT_ID);
|
| +#undef BAILOUT_ID
|
| + default:
|
| + UNIMPLEMENTED();
|
| + }
|
| +}
|
| +
|
| +Builtins::Name Builtins::GetBuiltinFromBailoutId(BailoutId id) {
|
| + switch (id.ToInt()) {
|
| +#define BAILOUT_ID(NAME, ...) \
|
| + case BailoutId::kFirstBuiltinContinuationId + k##NAME: \
|
| + return k##NAME;
|
| + BUILTIN_LIST_TFJ(BAILOUT_ID)
|
| + BUILTIN_LIST_TFC(BAILOUT_ID)
|
| +#undef BAILOUT_ID
|
| + default:
|
| + UNIMPLEMENTED();
|
| + }
|
| +}
|
| +
|
| void Builtins::TearDown() { initialized_ = false; }
|
|
|
| void Builtins::IterateBuiltins(RootVisitor* v) {
|
| @@ -131,6 +157,20 @@ Callable Builtins::CallableFor(Isolate* isolate, Name name) {
|
| Handle<Code> code = isolate->builtins()->ConsoleAssert();
|
| return Callable(code, BuiltinDescriptor(isolate));
|
| }
|
| + case kArrayForEach: {
|
| + Handle<Code> code = isolate->builtins()->ArrayForEach();
|
| + return Callable(code, BuiltinDescriptor(isolate));
|
| + }
|
| + case kArrayForEachLoopEagerDeoptContinuation: {
|
| + Handle<Code> code =
|
| + isolate->builtins()->ArrayForEachLoopEagerDeoptContinuation();
|
| + return Callable(code, BuiltinDescriptor(isolate));
|
| + }
|
| + case kArrayForEachLoopLazyDeoptContinuation: {
|
| + Handle<Code> code =
|
| + isolate->builtins()->ArrayForEachLoopLazyDeoptContinuation();
|
| + return Callable(code, BuiltinDescriptor(isolate));
|
| + }
|
| default:
|
| UNREACHABLE();
|
| return Callable(Handle<Code>::null(), VoidDescriptor(isolate));
|
| @@ -138,6 +178,21 @@ Callable Builtins::CallableFor(Isolate* isolate, Name name) {
|
| }
|
|
|
| // static
|
| +int Builtins::GetStackParameterCount(Isolate* isolate, Name name) {
|
| + switch (name) {
|
| +#define CASE(Name, Count, ...) \
|
| + case k##Name: { \
|
| + return Count; \
|
| + }
|
| + BUILTIN_LIST_TFJ(CASE)
|
| +#undef CASE
|
| + default:
|
| + UNREACHABLE();
|
| + return 0;
|
| + }
|
| +}
|
| +
|
| +// static
|
| const char* Builtins::name(int index) {
|
| switch (index) {
|
| #define CASE(Name, ...) \
|
|
|