| Index: test/cctest/cctest.h
|
| diff --git a/test/cctest/cctest.h b/test/cctest/cctest.h
|
| index 6359835235c069d8e2807ce667151775381aa7f1..b4e31f26df5e3a1fe7976a49f7c654b34e5c084c 100644
|
| --- a/test/cctest/cctest.h
|
| +++ b/test/cctest/cctest.h
|
| @@ -346,19 +346,13 @@ static inline v8::Local<v8::Value> CompileRun(v8::Local<v8::String> source) {
|
|
|
|
|
| static inline v8::Local<v8::Value> PreCompileCompileRun(const char* source) {
|
| + // Compile once just to get the preparse data, then compile the second time
|
| + // using the data.
|
| v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
| - v8::Local<v8::String> source_string =
|
| - v8::String::NewFromUtf8(isolate, source);
|
| - v8::ScriptData* preparse = v8::ScriptData::PreCompile(source_string);
|
| - v8::ScriptCompiler::Source script_source(
|
| - source_string, new v8::ScriptCompiler::CachedData(
|
| - reinterpret_cast<const uint8_t*>(preparse->Data()),
|
| - preparse->Length()));
|
| - v8::Local<v8::Script> script =
|
| - v8::ScriptCompiler::Compile(isolate, &script_source);
|
| - v8::Local<v8::Value> result = script->Run();
|
| - delete preparse;
|
| - return result;
|
| + v8::ScriptCompiler::Source script_source(v8_str(source));
|
| + v8::ScriptCompiler::Compile(isolate, &script_source,
|
| + v8::ScriptCompiler::kProduceDataToCache);
|
| + return v8::ScriptCompiler::Compile(isolate, &script_source)->Run();
|
| }
|
|
|
|
|
|
|