src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Context.java
Print this page
*** 1226,1239 ****
return script;
}
StoredScript storedScript = null;
FunctionNode functionNode = null;
! // We only use the code store here if optimistic types are disabled. With optimistic types, initial compilation
! // just creates a thin wrapper, and actual code is stored per function in RecompilableScriptFunctionData.
! final boolean useCodeStore = codeStore != null && !env._parse_only && !env._optimistic_types;
! final String cacheKey = useCodeStore ? CodeStore.getCacheKey(0, null) : null;
if (useCodeStore) {
storedScript = codeStore.load(source, cacheKey);
}
--- 1226,1240 ----
return script;
}
StoredScript storedScript = null;
FunctionNode functionNode = null;
! // Don't use code store if optimistic types is enabled but lazy compilation is not.
! // This would store a full script compilation with many wrong optimistic assumptions that would
! // do more harm than good on later runs with both optimistic types and lazy compilation enabled.
! final boolean useCodeStore = codeStore != null && !env._parse_only && (!env._optimistic_types || env._lazy_compilation);
! final String cacheKey = useCodeStore ? CodeStore.getCacheKey("script", null) : null;
if (useCodeStore) {
storedScript = codeStore.load(source, cacheKey);
}