• vogelheim@chromium.org's avatar
    Change ScriptCompiler::CompileOptions to allow for two 'cache' modes · a42612b4
    vogelheim@chromium.org authored
    (parser or code) and to be explicit about cache consumption or production
    (rather than making presence of cached_data imply one or the other.)
    
    Also add a --cache flag to d8, to allow testing the functionality.
    
    -----------------------------
    API change
    
    Reason: Currently, V8 supports a 'parser cache' for repeatedly executing the same script. We'd like to add a 2nd mode that would cache code, and would like to let the embedder decide which mode they chose (if any).
    
    Note: Previously, the 'use cached data' property was implied by the presence of the cached data itself. (That is, kNoCompileOptions and source->cached_data != NULL.) That is no longer sufficient, since the presence of data is no longer sufficient to determine /which kind/ of data is present.
    
    Changes from old behaviour:
    
    - If you previously didn't use caching, nothing changes.
    Example:
      v8::CompileUnbound(isolate, source, kNoCompileOptions);
    
    - If you previously used caching, it worked like this:
    
      - 1st run:
      v8::CompileUnbound(isolate, source, kProduceToCache);
      Then, source->cached_data would contain the
      data-to-be cached. This remains the same, except you
      need to tell V8 which type of data you want.
      v8::CompileUnbound(isolate, source, kProduceParserCache);
    
      - 2nd run:
      v8::CompileUnbound(isolate, source, kNoCompileOptions);
      with source->cached_data set to the data you received in
      the first run. This will now ignore the cached data, and
      you need to explicitly tell V8 to use it:
      v8::CompileUnbound(isolate, source, kConsumeParserCache);
    -----------------------------
    
    BUG=
    R=marja@chromium.org, yangguo@chromium.org
    
    Review URL: https://codereview.chromium.org/389573006
    
    git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    a42612b4
Name
Last commit
Last update
..
DEPS Loading commit data...
OWNERS Loading commit data...
cctest.cc Loading commit data...
cctest.gyp Loading commit data...
cctest.h Loading commit data...
cctest.status Loading commit data...
gay-fixed.cc Loading commit data...
gay-fixed.h Loading commit data...
gay-precision.cc Loading commit data...
gay-precision.h Loading commit data...
gay-shortest.cc Loading commit data...
gay-shortest.h Loading commit data...
log-eq-of-logging-and-traversal.js Loading commit data...
print-extension.cc Loading commit data...
print-extension.h Loading commit data...
profiler-extension.cc Loading commit data...
profiler-extension.h Loading commit data...
test-accessors.cc Loading commit data...
test-alloc.cc Loading commit data...
test-api.cc Loading commit data...
test-assembler-arm.cc Loading commit data...
test-assembler-arm64.cc Loading commit data...
test-assembler-ia32.cc Loading commit data...
test-assembler-mips.cc Loading commit data...
test-assembler-mips64.cc Loading commit data...
test-assembler-x64.cc Loading commit data...
test-assembler-x87.cc Loading commit data...
test-ast.cc Loading commit data...
test-atomicops.cc Loading commit data...
test-bignum-dtoa.cc Loading commit data...
test-bignum.cc Loading commit data...
test-circular-queue.cc Loading commit data...
test-code-stubs-arm.cc Loading commit data...
test-code-stubs-arm64.cc Loading commit data...
test-code-stubs-ia32.cc Loading commit data...
test-code-stubs-mips.cc Loading commit data...
test-code-stubs-mips64.cc Loading commit data...
test-code-stubs-x64.cc Loading commit data...
test-code-stubs-x87.cc Loading commit data...
test-code-stubs.cc Loading commit data...
test-code-stubs.h Loading commit data...
test-compiler.cc Loading commit data...
test-condition-variable.cc Loading commit data...
test-constantpool.cc Loading commit data...
test-conversions.cc Loading commit data...
test-cpu-ia32.cc Loading commit data...
test-cpu-profiler.cc Loading commit data...
test-cpu-x64.cc Loading commit data...
test-cpu-x87.cc Loading commit data...
test-cpu.cc Loading commit data...
test-dataflow.cc Loading commit data...
test-date.cc Loading commit data...
test-debug.cc Loading commit data...
test-declarative-accessors.cc Loading commit data...
test-decls.cc Loading commit data...
test-deoptimization.cc Loading commit data...
test-dictionary.cc Loading commit data...
test-disasm-arm.cc Loading commit data...
test-disasm-arm64.cc Loading commit data...
test-disasm-ia32.cc Loading commit data...
test-disasm-mips.cc Loading commit data...
test-disasm-mips64.cc Loading commit data...
test-disasm-x64.cc Loading commit data...
test-disasm-x87.cc Loading commit data...
test-diy-fp.cc Loading commit data...
test-double.cc Loading commit data...
test-dtoa.cc Loading commit data...
test-fast-dtoa.cc Loading commit data...
test-fixed-dtoa.cc Loading commit data...
test-flags.cc Loading commit data...
test-func-name-inference.cc Loading commit data...
test-fuzz-arm64.cc Loading commit data...
test-global-handles.cc Loading commit data...
test-global-object.cc Loading commit data...
test-hashing.cc Loading commit data...
test-hashmap.cc Loading commit data...
test-heap-profiler.cc Loading commit data...
test-heap.cc Loading commit data...
test-hydrogen-types.cc Loading commit data...
test-javascript-arm64.cc Loading commit data...
test-js-arm64-variables.cc Loading commit data...
test-libplatform-default-platform.cc Loading commit data...
test-libplatform-task-queue.cc Loading commit data...
test-libplatform-worker-thread.cc Loading commit data...
test-libplatform.h Loading commit data...
test-list.cc Loading commit data...
test-liveedit.cc Loading commit data...
test-lockers.cc Loading commit data...
test-log-stack-tracer.cc Loading commit data...
test-log.cc Loading commit data...
test-macro-assembler-arm.cc Loading commit data...
test-macro-assembler-ia32.cc Loading commit data...
test-macro-assembler-mips.cc Loading commit data...
test-macro-assembler-mips64.cc Loading commit data...
test-macro-assembler-x64.cc Loading commit data...
test-macro-assembler-x87.cc Loading commit data...
test-mark-compact.cc Loading commit data...
test-mementos.cc Loading commit data...
test-microtask-delivery.cc Loading commit data...
test-mutex.cc Loading commit data...
test-object-observe.cc Loading commit data...
test-ordered-hash-table.cc Loading commit data...
test-ostreams.cc Loading commit data...
test-parsing.cc Loading commit data...
test-platform-linux.cc Loading commit data...
test-platform-macos.cc Loading commit data...
test-platform-tls.cc Loading commit data...
test-platform-win32.cc Loading commit data...
test-platform.cc Loading commit data...
test-profile-generator.cc Loading commit data...
test-random-number-generator.cc Loading commit data...
test-regexp.cc Loading commit data...
test-reloc-info.cc Loading commit data...
test-representation.cc Loading commit data...
test-semaphore.cc Loading commit data...
test-serialize.cc Loading commit data...
test-spaces.cc Loading commit data...
test-strings.cc Loading commit data...
test-strtod.cc Loading commit data...
test-symbols.cc Loading commit data...
test-thread-termination.cc Loading commit data...
test-threads.cc Loading commit data...
test-time.cc Loading commit data...
test-types.cc Loading commit data...
test-unbound-queue.cc Loading commit data...
test-unique.cc Loading commit data...
test-utils-arm64.cc Loading commit data...
test-utils-arm64.h Loading commit data...
test-utils.cc Loading commit data...
test-version.cc Loading commit data...
test-weakmaps.cc Loading commit data...
test-weaksets.cc Loading commit data...
test-weaktypedarrays.cc Loading commit data...
testcfg.py Loading commit data...
trace-extension.cc Loading commit data...
trace-extension.h Loading commit data...