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

Side by Side Diff: src/api.cc

Issue 2126193002: Add trace event to V8 compiler API. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 5 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/api.h" 5 #include "src/api.h"
6 6
7 #include <string.h> // For memcpy, strlen. 7 #include <string.h> // For memcpy, strlen.
8 #ifdef V8_USE_ADDRESS_SANITIZER 8 #ifdef V8_USE_ADDRESS_SANITIZER
9 #include <sanitizer/asan_interface.h> 9 #include <sanitizer/asan_interface.h>
10 #endif // V8_USE_ADDRESS_SANITIZER 10 #endif // V8_USE_ADDRESS_SANITIZER
(...skipping 1900 matching lines...) Expand 10 before | Expand all | Expand 10 after
1911 i::Handle<i::SharedFunctionInfo>(i::JSFunction::cast(*obj)->shared())); 1911 i::Handle<i::SharedFunctionInfo>(i::JSFunction::cast(*obj)->shared()));
1912 } 1912 }
1913 1913
1914 1914
1915 MaybeLocal<UnboundScript> ScriptCompiler::CompileUnboundInternal( 1915 MaybeLocal<UnboundScript> ScriptCompiler::CompileUnboundInternal(
1916 Isolate* v8_isolate, Source* source, CompileOptions options, 1916 Isolate* v8_isolate, Source* source, CompileOptions options,
1917 bool is_module) { 1917 bool is_module) {
1918 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate); 1918 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
1919 PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, ScriptCompiler, CompileUnbound, 1919 PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, ScriptCompiler, CompileUnbound,
1920 UnboundScript); 1920 UnboundScript);
1921 TRACE_EVENT0("v8", "V8.ScriptCompiler");
1921 1922
1922 // Don't try to produce any kind of cache when the debugger is loaded. 1923 // Don't try to produce any kind of cache when the debugger is loaded.
1923 if (isolate->debug()->is_loaded() && 1924 if (isolate->debug()->is_loaded() &&
1924 (options == kProduceParserCache || options == kProduceCodeCache)) { 1925 (options == kProduceParserCache || options == kProduceCodeCache)) {
1925 options = kNoCompileOptions; 1926 options = kNoCompileOptions;
1926 } 1927 }
1927 1928
1928 i::ScriptData* script_data = NULL; 1929 i::ScriptData* script_data = NULL;
1929 if (options == kConsumeParserCache || options == kConsumeCodeCache) { 1930 if (options == kConsumeParserCache || options == kConsumeCodeCache) {
1930 DCHECK(source->cached_data); 1931 DCHECK(source->cached_data);
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
2071 DISALLOW_COPY_AND_ASSIGN(IsIdentifierHelper); 2072 DISALLOW_COPY_AND_ASSIGN(IsIdentifierHelper);
2072 }; 2073 };
2073 2074
2074 2075
2075 MaybeLocal<Function> ScriptCompiler::CompileFunctionInContext( 2076 MaybeLocal<Function> ScriptCompiler::CompileFunctionInContext(
2076 Local<Context> v8_context, Source* source, size_t arguments_count, 2077 Local<Context> v8_context, Source* source, size_t arguments_count,
2077 Local<String> arguments[], size_t context_extension_count, 2078 Local<String> arguments[], size_t context_extension_count,
2078 Local<Object> context_extensions[]) { 2079 Local<Object> context_extensions[]) {
2079 PREPARE_FOR_EXECUTION(v8_context, ScriptCompiler, CompileFunctionInContext, 2080 PREPARE_FOR_EXECUTION(v8_context, ScriptCompiler, CompileFunctionInContext,
2080 Function); 2081 Function);
2082 TRACE_EVENT0("v8", "V8.ScriptCompiler");
2081 i::Handle<i::String> source_string; 2083 i::Handle<i::String> source_string;
2082 auto factory = isolate->factory(); 2084 auto factory = isolate->factory();
2083 if (arguments_count) { 2085 if (arguments_count) {
2084 source_string = factory->NewStringFromStaticChars("(function("); 2086 source_string = factory->NewStringFromStaticChars("(function(");
2085 for (size_t i = 0; i < arguments_count; ++i) { 2087 for (size_t i = 0; i < arguments_count; ++i) {
2086 IsIdentifierHelper helper; 2088 IsIdentifierHelper helper;
2087 if (!helper.Check(*Utils::OpenHandle(*arguments[i]))) { 2089 if (!helper.Check(*Utils::OpenHandle(*arguments[i]))) {
2088 return Local<Function>(); 2090 return Local<Function>();
2089 } 2091 }
2090 has_pending_exception = 2092 has_pending_exception =
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
2185 return new i::BackgroundParsingTask(source->impl(), options, 2187 return new i::BackgroundParsingTask(source->impl(), options,
2186 i::FLAG_stack_size, isolate); 2188 i::FLAG_stack_size, isolate);
2187 } 2189 }
2188 2190
2189 2191
2190 MaybeLocal<Script> ScriptCompiler::Compile(Local<Context> context, 2192 MaybeLocal<Script> ScriptCompiler::Compile(Local<Context> context,
2191 StreamedSource* v8_source, 2193 StreamedSource* v8_source,
2192 Local<String> full_source_string, 2194 Local<String> full_source_string,
2193 const ScriptOrigin& origin) { 2195 const ScriptOrigin& origin) {
2194 PREPARE_FOR_EXECUTION(context, ScriptCompiler, Compile, Script); 2196 PREPARE_FOR_EXECUTION(context, ScriptCompiler, Compile, Script);
2197 TRACE_EVENT0("v8", "V8.ScriptCompiler");
2195 i::StreamedSource* source = v8_source->impl(); 2198 i::StreamedSource* source = v8_source->impl();
2196 i::Handle<i::String> str = Utils::OpenHandle(*(full_source_string)); 2199 i::Handle<i::String> str = Utils::OpenHandle(*(full_source_string));
2197 i::Handle<i::Script> script = isolate->factory()->NewScript(str); 2200 i::Handle<i::Script> script = isolate->factory()->NewScript(str);
2198 if (!origin.ResourceName().IsEmpty()) { 2201 if (!origin.ResourceName().IsEmpty()) {
2199 script->set_name(*Utils::OpenHandle(*(origin.ResourceName()))); 2202 script->set_name(*Utils::OpenHandle(*(origin.ResourceName())));
2200 } 2203 }
2201 if (!origin.ResourceLineOffset().IsEmpty()) { 2204 if (!origin.ResourceLineOffset().IsEmpty()) {
2202 script->set_line_offset( 2205 script->set_line_offset(
2203 static_cast<int>(origin.ResourceLineOffset()->Value())); 2206 static_cast<int>(origin.ResourceLineOffset()->Value()));
2204 } 2207 }
(...skipping 6742 matching lines...) Expand 10 before | Expand all | Expand 10 after
8947 Address callback_address = 8950 Address callback_address =
8948 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); 8951 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback));
8949 VMState<EXTERNAL> state(isolate); 8952 VMState<EXTERNAL> state(isolate);
8950 ExternalCallbackScope call_scope(isolate, callback_address); 8953 ExternalCallbackScope call_scope(isolate, callback_address);
8951 callback(info); 8954 callback(info);
8952 } 8955 }
8953 8956
8954 8957
8955 } // namespace internal 8958 } // namespace internal
8956 } // namespace v8 8959 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698