CodeGenerator::MakeCodeEpilogue(MacroAssembler* masm, EhFrameWriter* eh_frame_writer, CompilationInfo* info, Handle self_reference) { Isolate* isolate = info->isolate(); // Allocate and install the code. CodeDesc desc; Code::Flags flags = info->code_flags(); bool is_crankshafted = Code::ExtractKindFromFlags(flags) == Code::OPTIMIZED_FUNCTION || info->IsStub(); masm->GetCode(&desc); if (eh_frame_writer) eh_frame_writer->GetEhFrame(&desc); Handle code = isolate->factory()->NewCode( desc, flags, self_reference, false, is_crankshafted, info->prologue_offset(), info->is_debug() && !is_crankshafted); isolate->counters()->total_compiled_code_size()->Increment( code->instruction_size()); return code; } // Print function's source if it was not printed before. // Return a sequential id under which this function was printed. static int PrintFunctionSource(CompilationInfo* info, std::vector>* printed, int inlining_id, Handle shared) { // Outermost function has source id -1 and inlined functions take // source ids starting from 0. int source_id = -1; if (inlining_id != SourcePosition::kNotInlined) { for (unsigned i = 0; i < printed->size(); i++) { if (printed->at(i).is_identical_to(shared)) { return i; } } source_id = static_cast(printed->size()); printed->push_back(shared); } Isolate* isolate = info->isolate(); if (!shared->script()->IsUndefined(isolate)) { Handle 登录后可以享受更多权益 您还没有登录,登录后您可以: 收藏Android系统代码 收藏喜欢的文章 多个平台共享账号 去登录 首次使用?从这里 注册
code = isolate->factory()->NewCode( desc, flags, self_reference, false, is_crankshafted, info->prologue_offset(), info->is_debug() && !is_crankshafted); isolate->counters()->total_compiled_code_size()->Increment( code->instruction_size()); return code; } // Print function's source if it was not printed before. // Return a sequential id under which this function was printed. static int PrintFunctionSource(CompilationInfo* info, std::vector>* printed, int inlining_id, Handle shared) { // Outermost function has source id -1 and inlined functions take // source ids starting from 0. int source_id = -1; if (inlining_id != SourcePosition::kNotInlined) { for (unsigned i = 0; i < printed->size(); i++) { if (printed->at(i).is_identical_to(shared)) { return i; } } source_id = static_cast(printed->size()); printed->push_back(shared); } Isolate* isolate = info->isolate(); if (!shared->script()->IsUndefined(isolate)) { Handle 登录后可以享受更多权益 您还没有登录,登录后您可以: 收藏Android系统代码 收藏喜欢的文章 多个平台共享账号 去登录 首次使用?从这里 注册
您还没有登录,登录后您可以:
首次使用?从这里 注册