Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 30 #include "bindings/core/v8/ScriptStreamer.h" | 30 #include "bindings/core/v8/ScriptStreamer.h" |
| 31 #include "bindings/core/v8/V8BindingForCore.h" | 31 #include "bindings/core/v8/V8BindingForCore.h" |
| 32 #include "bindings/core/v8/V8GCController.h" | 32 #include "bindings/core/v8/V8GCController.h" |
| 33 #include "bindings/core/v8/V8ThrowException.h" | 33 #include "bindings/core/v8/V8ThrowException.h" |
| 34 #include "core/dom/Document.h" | 34 #include "core/dom/Document.h" |
| 35 #include "core/dom/ExecutionContext.h" | 35 #include "core/dom/ExecutionContext.h" |
| 36 #include "core/frame/LocalDOMWindow.h" | 36 #include "core/frame/LocalDOMWindow.h" |
| 37 #include "core/frame/LocalFrame.h" | 37 #include "core/frame/LocalFrame.h" |
| 38 #include "core/inspector/InspectorTraceEvents.h" | 38 #include "core/inspector/InspectorTraceEvents.h" |
| 39 #include "core/inspector/ThreadDebugger.h" | 39 #include "core/inspector/ThreadDebugger.h" |
| 40 #include "core/loader/resource/ScriptResource.h" | 40 #include "core/loader/resource/ScriptResourceData.h" |
| 41 #include "core/probe/CoreProbes.h" | 41 #include "core/probe/CoreProbes.h" |
| 42 #include "platform/Histogram.h" | 42 #include "platform/Histogram.h" |
| 43 #include "platform/ScriptForbiddenScope.h" | 43 #include "platform/ScriptForbiddenScope.h" |
| 44 #include "platform/instrumentation/tracing/TraceEvent.h" | 44 #include "platform/instrumentation/tracing/TraceEvent.h" |
| 45 #include "platform/loader/fetch/CachedMetadata.h" | 45 #include "platform/loader/fetch/CachedMetadata.h" |
| 46 #include "platform/wtf/CurrentTime.h" | 46 #include "platform/wtf/CurrentTime.h" |
| 47 #include "public/platform/Platform.h" | 47 #include "public/platform/Platform.h" |
| 48 | 48 |
| 49 #if OS(WIN) | 49 #if OS(WIN) |
| 50 #include <malloc.h> | 50 #include <malloc.h> |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 395 break; | 395 break; |
| 396 } | 396 } |
| 397 | 397 |
| 398 // All switch branches should return and we should never get here. | 398 // All switch branches should return and we should never get here. |
| 399 // But some compilers aren't sure, hence this default. | 399 // But some compilers aren't sure, hence this default. |
| 400 NOTREACHED(); | 400 NOTREACHED(); |
| 401 return Bind(CompileWithoutOptions, V8CompileHistogram::kCacheable); | 401 return Bind(CompileWithoutOptions, V8CompileHistogram::kCacheable); |
| 402 } | 402 } |
| 403 | 403 |
| 404 // Select a compile function for a streaming compile. | 404 // Select a compile function for a streaming compile. |
| 405 std::unique_ptr<CompileFn> SelectCompileFunction(V8CacheOptions cache_options, | 405 std::unique_ptr<CompileFn> SelectCompileFunction( |
| 406 ScriptResource* resource, | 406 V8CacheOptions cache_options, |
| 407 ScriptStreamer* streamer) { | 407 const ScriptResourceData* resource, |
|
kinuko
2017/05/18 05:43:30
resource_data ?
| |
| 408 ScriptStreamer* streamer) { | |
| 408 // We don't stream scripts which don't have a Resource. | 409 // We don't stream scripts which don't have a Resource. |
| 409 DCHECK(resource); | 410 DCHECK(resource); |
| 410 // Failed resources should never get this far. | 411 // Failed resources should never get this far. |
| 411 DCHECK(!resource->ErrorOccurred()); | 412 DCHECK(!resource->ErrorOccurred()); |
| 412 DCHECK(streamer->IsFinished()); | 413 DCHECK(streamer->IsFinished()); |
| 413 DCHECK(!streamer->StreamingSuppressed()); | 414 DCHECK(!streamer->StreamingSuppressed()); |
| 414 return WTF::Bind(PostStreamCompile, cache_options, | 415 return WTF::Bind(PostStreamCompile, cache_options, |
| 415 WrapPersistent(resource->CacheHandler()), | 416 WrapPersistent(resource->CacheHandler()), |
| 416 WrapPersistent(streamer)); | 417 WrapPersistent(streamer)); |
| 417 } | 418 } |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 451 cache_metadata_handler, access_control_status, | 452 cache_metadata_handler, access_control_status, |
| 452 v8_cache_options); | 453 v8_cache_options); |
| 453 } | 454 } |
| 454 | 455 |
| 455 v8::MaybeLocal<v8::Script> V8ScriptRunner::CompileScript( | 456 v8::MaybeLocal<v8::Script> V8ScriptRunner::CompileScript( |
| 456 v8::Local<v8::String> code, | 457 v8::Local<v8::String> code, |
| 457 const String& file_name, | 458 const String& file_name, |
| 458 const String& source_map_url, | 459 const String& source_map_url, |
| 459 const TextPosition& script_start_position, | 460 const TextPosition& script_start_position, |
| 460 v8::Isolate* isolate, | 461 v8::Isolate* isolate, |
| 461 ScriptResource* resource, | 462 const ScriptResourceData* resource, |
|
kinuko
2017/05/18 05:43:30
ditto
| |
| 462 ScriptStreamer* streamer, | 463 ScriptStreamer* streamer, |
| 463 CachedMetadataHandler* cache_handler, | 464 CachedMetadataHandler* cache_handler, |
| 464 AccessControlStatus access_control_status, | 465 AccessControlStatus access_control_status, |
| 465 V8CacheOptions cache_options) { | 466 V8CacheOptions cache_options) { |
| 466 TRACE_EVENT2( | 467 TRACE_EVENT2( |
| 467 "v8,devtools.timeline", "v8.compile", "fileName", file_name.Utf8(), | 468 "v8,devtools.timeline", "v8.compile", "fileName", file_name.Utf8(), |
| 468 "data", | 469 "data", |
| 469 InspectorCompileScriptEvent::Data(file_name, script_start_position)); | 470 InspectorCompileScriptEvent::Data(file_name, script_start_position)); |
| 470 | 471 |
| 471 DCHECK(!streamer || resource); | 472 DCHECK(!streamer || resource); |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 763 if (!context->GetExtrasBindingObject() | 764 if (!context->GetExtrasBindingObject() |
| 764 ->Get(context, V8AtomicString(isolate, name)) | 765 ->Get(context, V8AtomicString(isolate, name)) |
| 765 .ToLocal(&function_value)) | 766 .ToLocal(&function_value)) |
| 766 return v8::MaybeLocal<v8::Value>(); | 767 return v8::MaybeLocal<v8::Value>(); |
| 767 v8::Local<v8::Function> function = function_value.As<v8::Function>(); | 768 v8::Local<v8::Function> function = function_value.As<v8::Function>(); |
| 768 return V8ScriptRunner::CallInternalFunction(function, v8::Undefined(isolate), | 769 return V8ScriptRunner::CallInternalFunction(function, v8::Undefined(isolate), |
| 769 num_args, args, isolate); | 770 num_args, args, isolate); |
| 770 } | 771 } |
| 771 | 772 |
| 772 } // namespace blink | 773 } // namespace blink |
| OLD | NEW |