| Index: src/compiler.cc
|
| ===================================================================
|
| --- src/compiler.cc (revision 6904)
|
| +++ src/compiler.cc (working copy)
|
| @@ -120,13 +120,26 @@
|
| static void FinishOptimization(Handle<JSFunction> function, int64_t start) {
|
| int opt_count = function->shared()->opt_count();
|
| function->shared()->set_opt_count(opt_count + 1);
|
| - if (!FLAG_trace_opt) return;
|
| + double ms = static_cast<double>(OS::Ticks() - start) / 1000;
|
| + if (FLAG_trace_opt) {
|
| + PrintF("[optimizing: ");
|
| + function->PrintName();
|
| + PrintF(" / %" V8PRIxPTR, reinterpret_cast<intptr_t>(*function));
|
| + PrintF(" - took %0.3f ms]\n", ms);
|
| + }
|
| + if (FLAG_trace_opt_stats) {
|
| + static double compilation_time = 0.0;
|
| + static int compiled_functions = 0;
|
| + static int code_size = 0;
|
|
|
| - double ms = static_cast<double>(OS::Ticks() - start) / 1000;
|
| - PrintF("[optimizing: ");
|
| - function->PrintName();
|
| - PrintF(" / %" V8PRIxPTR, reinterpret_cast<intptr_t>(*function));
|
| - PrintF(" - took %0.3f ms]\n", ms);
|
| + compilation_time += ms;
|
| + compiled_functions++;
|
| + code_size += function->shared()->SourceSize();
|
| + PrintF("Compiled: %d functions with %d byte source size in %fms.\n",
|
| + compiled_functions,
|
| + code_size,
|
| + compilation_time);
|
| + }
|
| }
|
|
|
|
|
| @@ -471,7 +484,14 @@
|
| ScriptDataImpl* pre_data = input_pre_data;
|
| if (pre_data == NULL
|
| && source_length >= FLAG_min_preparse_length) {
|
| - pre_data = ParserApi::PartialPreParse(source, NULL, extension);
|
| + if (source->IsExternalTwoByteString()) {
|
| + ExternalTwoByteStringUC16CharacterStream stream(
|
| + Handle<ExternalTwoByteString>::cast(source), 0, source->length());
|
| + pre_data = ParserApi::PartialPreParse(&stream, extension);
|
| + } else {
|
| + GenericStringUC16CharacterStream stream(source, 0, source->length());
|
| + pre_data = ParserApi::PartialPreParse(&stream, extension);
|
| + }
|
| }
|
|
|
| // Create a script object describing the script to be compiled.
|
|
|