Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Unified Diff: src/frames.cc

Issue 2803853005: Inline Array.prototype.forEach in TurboFan (Closed)
Patch Set: Remove stray changes Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/frames.cc
diff --git a/src/frames.cc b/src/frames.cc
index cda47e902af3b0fea3462b08191f81e3c16e662f..a044cc10ea27cf2feee87d503d2b149bf0633926 100644
--- a/src/frames.cc
+++ b/src/frames.cc
@@ -504,6 +504,8 @@ StackFrame::Type StackFrame::ComputeType(const StackFrameIteratorBase* iterator,
case ENTRY:
case ENTRY_CONSTRUCT:
case EXIT:
+ case BUILTIN_CONTINUATION:
+ case JAVA_SCRIPT_BUILTIN_CONTINUATION:
case BUILTIN_EXIT:
case STUB:
case STUB_FAILURE_TRAMPOLINE:
@@ -802,6 +804,8 @@ void StandardFrame::IterateCompiledFrame(RootVisitor* v) const {
case ENTRY:
case ENTRY_CONSTRUCT:
case EXIT:
+ case BUILTIN_CONTINUATION:
+ case JAVA_SCRIPT_BUILTIN_CONTINUATION:
case BUILTIN_EXIT:
case STUB_FAILURE_TRAMPOLINE:
case ARGUMENTS_ADAPTOR:
@@ -1377,7 +1381,8 @@ void OptimizedFrame::Summarize(List<FrameSummary>* frames,
while (jsframe_count != 0) {
frame_opcode = static_cast<Translation::Opcode>(it.Next());
if (frame_opcode == Translation::JS_FRAME ||
- frame_opcode == Translation::INTERPRETED_FRAME) {
+ frame_opcode == Translation::INTERPRETED_FRAME ||
+ frame_opcode == Translation::JAVA_SCRIPT_BUILTIN_CONTINUATION_FRAME) {
jsframe_count--;
BailoutId const bailout_id = BailoutId(it.Next());
SharedFunctionInfo* const shared_info =
@@ -1429,6 +1434,11 @@ void OptimizedFrame::Summarize(List<FrameSummary>* frames,
Deoptimizer::GetOutputInfo(output_data, bailout_id, shared_info);
code_offset = FullCodeGenerator::PcField::decode(entry);
abstract_code = AbstractCode::cast(code);
+ } else if (frame_opcode ==
+ Translation::JAVA_SCRIPT_BUILTIN_CONTINUATION_FRAME) {
+ code_offset = 0;
+ abstract_code = AbstractCode::cast(isolate()->builtins()->builtin(
+ Builtins::GetBuiltinFromBailoutId(bailout_id)));
} else {
DCHECK_EQ(frame_opcode, Translation::INTERPRETED_FRAME);
code_offset = bailout_id.ToInt(); // Points to current bytecode.
@@ -1537,7 +1547,8 @@ void OptimizedFrame::GetFunctions(List<SharedFunctionInfo*>* functions) const {
while (jsframe_count != 0) {
opcode = static_cast<Translation::Opcode>(it.Next());
if (opcode == Translation::JS_FRAME ||
- opcode == Translation::INTERPRETED_FRAME) {
+ opcode == Translation::INTERPRETED_FRAME ||
+ opcode == Translation::JAVA_SCRIPT_BUILTIN_CONTINUATION_FRAME) {
it.Next(); // Skip bailout id.
jsframe_count--;

Powered by Google App Engine
This is Rietveld 408576698