| Index: src/compiler.cc
|
| diff --git a/src/compiler.cc b/src/compiler.cc
|
| index d35532f04583f2fcf6ba934d87d42cae3c481d4c..fd8872783b1ee7a7e31301abc3935eefc3c588f9 100644
|
| --- a/src/compiler.cc
|
| +++ b/src/compiler.cc
|
| @@ -533,7 +533,7 @@ Handle<SharedFunctionInfo> Compiler::Compile(Handle<String> source,
|
| info.SetLanguageMode(FLAG_harmony_scoping ? EXTENDED_MODE : STRICT_MODE);
|
| }
|
| result = MakeFunctionInfo(&info);
|
| - if (extension == NULL && !result.is_null()) {
|
| + if (extension == NULL && !result.is_null() && !result->dont_cache()) {
|
| compilation_cache->PutScript(source, result);
|
| }
|
| } else {
|
| @@ -592,8 +592,10 @@ Handle<SharedFunctionInfo> Compiler::CompileEval(Handle<String> source,
|
| // extended mode.
|
| ASSERT(language_mode != EXTENDED_MODE ||
|
| result->is_extended_mode());
|
| - compilation_cache->PutEval(
|
| - source, context, is_global, result, scope_position);
|
| + if (!result->dont_cache()) {
|
| + compilation_cache->PutEval(
|
| + source, context, is_global, result, scope_position);
|
| + }
|
| }
|
| } else {
|
| if (result->ic_age() != HEAP->global_ic_age()) {
|
| @@ -707,6 +709,7 @@ bool Compiler::CompileLazy(CompilationInfo* info) {
|
| shared->set_code_age(0);
|
| shared->set_dont_optimize(lit->flags()->Contains(kDontOptimize));
|
| shared->set_dont_inline(lit->flags()->Contains(kDontInline));
|
| + shared->set_dont_cache(lit->flags()->Contains(kDontCache));
|
| shared->set_ast_node_count(lit->ast_node_count());
|
|
|
| if (V8::UseCrankshaft()&&
|
| @@ -821,6 +824,7 @@ void Compiler::SetFunctionInfo(Handle<SharedFunctionInfo> function_info,
|
| function_info->set_is_function(lit->is_function());
|
| function_info->set_dont_optimize(lit->flags()->Contains(kDontOptimize));
|
| function_info->set_dont_inline(lit->flags()->Contains(kDontInline));
|
| + function_info->set_dont_cache(lit->flags()->Contains(kDontCache));
|
| }
|
|
|
|
|
|
|