1. 04 Apr, 2019 1 commit
    • tzik's avatar
      Cancel EnqueueMicrotask on detached contexts · a487167c
      tzik authored
      Context::microtask_context can be null after v8::Context::DetachGlobal
      is called, and that should cancel microtasks that are associated to
      the detached context.
      However, there are several callers left without the null check to the
      microtask queue, and that causes crashes.
      
      This CL adds the null check and cancellation as the crash fix.
      
      Bug: chromium:937784
      Change-Id: Ie8d107f28f200cee6e75798e3f72c5ed7a2a461c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545139
      Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60623}
      a487167c
  2. 03 Apr, 2019 2 commits
    • Andrew Comminos's avatar
      [cpu-profiler] Add SourceType field to CpuProfileNode · 8bedd291
      Andrew Comminos authored
      Adds the notion of a "source type" to CpuProfileNode instances, hinting
      at the underlying source of the function or state that resulted in the
      generation of the node.
      
      Bug: v8:9001
      Change-Id: Ie14c54d41b99eb02f54b423fa5d939e9d7f63785
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1510576
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarAlexei Filippov <alph@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60590}
      8bedd291
    • Paolo Severini's avatar
      Reland "V8 x64 backend doesn't emit ABI compliant stack frames" · 969cb0c7
      Paolo Severini authored
      This is a reland of 3cda21de
      
      Original change's description:
      > V8 x64 backend doesn't emit ABI compliant stack frames
      > 
      > On 64 bit Windows, the OS stack walking does not work because the V8 x64
      > backend doesn't emit unwinding info and also because it doesn't emit ABI
      > compliant stack frames. See
      > https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit
      > for more details.
      > 
      > This problem can be fixed by observing that V8 frames usually all have the same
      > prolog and epilog:
      > 
      > push rbp,
      > mov rbp, rsp
      > ...
      > pop rbp
      > ret N
      > 
      > and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows
      > should walk through V8 frames. Furthermore, since V8 Code objects are all
      > allocated in the same code-range for an Isolate, it is possible to register a
      > single PDATA/XDATA entry to cover stack walking for all the code generated
      > inside that code-range.
      > 
      > This PR contains changes required to enable stack walking on Win64:
      > 
      > EmbeddedFileWriter now adds assembler directives to the builtins
      > snapshot source file (embedded.cc) to emit additional entries in the .pdata and
      > in the .xdata section of the V8 executable. This takes care of stack walking
      > for embedded builtins. (The case of non-embedded builtins is not supported).
      > The x64 Assembler has been modified to collect the information required to emit
      > this unwind info for builtins.
      > 
      > Stack walking for jitted code is handled is Isolate.cpp, by registering
      > dynamically PDATA/XDATA for the whole code-range address space every time a new
      > Isolate is initialized, and by unregistering them when the Isolate is
      > destroyed.
      > 
      > Stack walking for WASM jitted code is handled is the same way in
      > wasm::NativeModule (wasm/wasm-code-manager.cpp).
      > 
      > It is important to note that Crashpad and Breakpad are already registering
      > PDATA/XDATA to manage and report unhandled exceptions (but not for embedded
      > builtins). Since it is not possible to register multiple PDATA entries for the
      > same address range, a new function is added to the V8 API:
      > SetUnhandledExceptionCallback() can be used by an embedder to register its own
      > unhandled exception handler for exceptions that arise in v8-generated code.
      > V8 embedders should be modified accordingly (code for this is in a separate PR
      > in the Chromium repository:
      > https://chromium-review.googlesource.com/c/chromium/src/+/1474703).
      > 
      > All these changes are experimental, behind:
      > 
      > the 'v8_win64_unwinding_info' build flag, and
      > the '--win64-unwinding-info' runtime flag.
      > 
      > Bug: v8:3598
      > Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Commit-Queue: Paolo Severini <paolosev@microsoft.com>
      > Cr-Commit-Position: refs/heads/master@{#60330}
      
      Bug: v8:3598
      Change-Id: If988baf7d3e4af165b919d6e54c1ad985f8e25e3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534618Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Paolo Severini <paolosev@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#60581}
      969cb0c7
  3. 01 Apr, 2019 1 commit
  4. 20 Mar, 2019 1 commit
    • Leszek Swirski's avatar
      Revert "V8 x64 backend doesn't emit ABI compliant stack frames" · 9f6ddb48
      Leszek Swirski authored
      This reverts commit 3cda21de.
      
      Reason for revert: Breaks the roll on Windows (see https://cr-buildbucket.appspot.com/build/8918477701097622400)
      
      Original change's description:
      > V8 x64 backend doesn't emit ABI compliant stack frames
      > 
      > On 64 bit Windows, the OS stack walking does not work because the V8 x64
      > backend doesn't emit unwinding info and also because it doesn't emit ABI
      > compliant stack frames. See
      > https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit
      > for more details.
      > 
      > This problem can be fixed by observing that V8 frames usually all have the same
      > prolog and epilog:
      > 
      > push rbp,
      > mov rbp, rsp
      > ...
      > pop rbp
      > ret N
      > 
      > and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows
      > should walk through V8 frames. Furthermore, since V8 Code objects are all
      > allocated in the same code-range for an Isolate, it is possible to register a
      > single PDATA/XDATA entry to cover stack walking for all the code generated
      > inside that code-range.
      > 
      > This PR contains changes required to enable stack walking on Win64:
      > 
      > EmbeddedFileWriter now adds assembler directives to the builtins
      > snapshot source file (embedded.cc) to emit additional entries in the .pdata and
      > in the .xdata section of the V8 executable. This takes care of stack walking
      > for embedded builtins. (The case of non-embedded builtins is not supported).
      > The x64 Assembler has been modified to collect the information required to emit
      > this unwind info for builtins.
      > 
      > Stack walking for jitted code is handled is Isolate.cpp, by registering
      > dynamically PDATA/XDATA for the whole code-range address space every time a new
      > Isolate is initialized, and by unregistering them when the Isolate is
      > destroyed.
      > 
      > Stack walking for WASM jitted code is handled is the same way in
      > wasm::NativeModule (wasm/wasm-code-manager.cpp).
      > 
      > It is important to note that Crashpad and Breakpad are already registering
      > PDATA/XDATA to manage and report unhandled exceptions (but not for embedded
      > builtins). Since it is not possible to register multiple PDATA entries for the
      > same address range, a new function is added to the V8 API:
      > SetUnhandledExceptionCallback() can be used by an embedder to register its own
      > unhandled exception handler for exceptions that arise in v8-generated code.
      > V8 embedders should be modified accordingly (code for this is in a separate PR
      > in the Chromium repository:
      > https://chromium-review.googlesource.com/c/chromium/src/+/1474703).
      > 
      > All these changes are experimental, behind:
      > 
      > the 'v8_win64_unwinding_info' build flag, and
      > the '--win64-unwinding-info' runtime flag.
      > 
      > Bug: v8:3598
      > Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Commit-Queue: Paolo Severini <paolosev@microsoft.com>
      > Cr-Commit-Position: refs/heads/master@{#60330}
      
      TBR=bbudge@chromium.org,ulan@chromium.org,mvstanton@chromium.org,mstarzinger@chromium.org,gdeepti@chromium.org,jgruber@chromium.org,paolosev@microsoft.com
      
      Change-Id: If8470da94c58df8c800cbe8887f9f86236e43353
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:3598
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532321Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60372}
      9f6ddb48
  5. 19 Mar, 2019 1 commit
    • Paolo Severini's avatar
      V8 x64 backend doesn't emit ABI compliant stack frames · 3cda21de
      Paolo Severini authored
      On 64 bit Windows, the OS stack walking does not work because the V8 x64
      backend doesn't emit unwinding info and also because it doesn't emit ABI
      compliant stack frames. See
      https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit
      for more details.
      
      This problem can be fixed by observing that V8 frames usually all have the same
      prolog and epilog:
      
      push rbp,
      mov rbp, rsp
      ...
      pop rbp
      ret N
      
      and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows
      should walk through V8 frames. Furthermore, since V8 Code objects are all
      allocated in the same code-range for an Isolate, it is possible to register a
      single PDATA/XDATA entry to cover stack walking for all the code generated
      inside that code-range.
      
      This PR contains changes required to enable stack walking on Win64:
      
      EmbeddedFileWriter now adds assembler directives to the builtins
      snapshot source file (embedded.cc) to emit additional entries in the .pdata and
      in the .xdata section of the V8 executable. This takes care of stack walking
      for embedded builtins. (The case of non-embedded builtins is not supported).
      The x64 Assembler has been modified to collect the information required to emit
      this unwind info for builtins.
      
      Stack walking for jitted code is handled is Isolate.cpp, by registering
      dynamically PDATA/XDATA for the whole code-range address space every time a new
      Isolate is initialized, and by unregistering them when the Isolate is
      destroyed.
      
      Stack walking for WASM jitted code is handled is the same way in
      wasm::NativeModule (wasm/wasm-code-manager.cpp).
      
      It is important to note that Crashpad and Breakpad are already registering
      PDATA/XDATA to manage and report unhandled exceptions (but not for embedded
      builtins). Since it is not possible to register multiple PDATA entries for the
      same address range, a new function is added to the V8 API:
      SetUnhandledExceptionCallback() can be used by an embedder to register its own
      unhandled exception handler for exceptions that arise in v8-generated code.
      V8 embedders should be modified accordingly (code for this is in a separate PR
      in the Chromium repository:
      https://chromium-review.googlesource.com/c/chromium/src/+/1474703).
      
      All these changes are experimental, behind:
      
      the 'v8_win64_unwinding_info' build flag, and
      the '--win64-unwinding-info' runtime flag.
      
      Bug: v8:3598
      Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Paolo Severini <paolosev@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#60330}
      3cda21de
  6. 18 Mar, 2019 2 commits
  7. 14 Mar, 2019 1 commit
  8. 13 Mar, 2019 1 commit
  9. 12 Mar, 2019 2 commits
  10. 11 Mar, 2019 1 commit
  11. 09 Mar, 2019 1 commit
  12. 07 Mar, 2019 3 commits
  13. 06 Mar, 2019 2 commits
  14. 04 Mar, 2019 2 commits
    • Benedikt Meurer's avatar
      [cleanup] Remove obsolete "one byte data hint" for strings. · 683cf6f4
      Benedikt Meurer authored
      In the early days of Chrome when we used WebKit there was no support for
      ASCII strings on the C++ side, so we put a hint onto these two-byte
      strings that said "string only contains one byte data", such that
      internally in V8 when these were involved in string operations, we could
      instead create the *cheaper* one byte strings.
      
      Nowadays Blink properly supports one-byte string representations and
      this additional hint only comes with overhead, since we check it in
      quite a few places (i.e. on the hot path for string concatenation), plus
      we end up consuming more memory due to the additional string maps.
      Removing the hint also frees one bit in the InstanceType zoo for
      strings.
      
      This alone improves performance on the `bench-dom-serialize.js` test case
      by around **3%**.
      
      Tbr: mstarzinger@chromium.org
      Bug: v8:6622, v8:8834, v8:8939
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Change-Id: I0753f2859cee7b5a37b6f0da64d8ec39fcb044ff
      Doc: https://bit.ly/fast-string-concatenation-in-javascript
      Reviewed-on: https://chromium-review.googlesource.com/c/1498478
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60006}
      683cf6f4
    • Dan Elphick's avatar
      [api] Add new configuration change methods · 980e0d32
      Dan Elphick authored
      This adds a new method Isolate::LocaleConfigurationChangeNotification
      that clears the cached Locale allowing new Locales to be picked up in
      later Locale operations.
      
      It moves Date::DateTimeConfigurationChangeNotification to Isolate
      (deprecating the old one) so that the configuration change methods are
      found together.
      
      Change-Id: Iffc15e326933c5bc5baf2f0eafdd5c148b8279a8
      Reviewed-on: https://chromium-review.googlesource.com/c/1491608Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60003}
      980e0d32
  15. 01 Mar, 2019 1 commit
  16. 28 Feb, 2019 2 commits
  17. 27 Feb, 2019 2 commits
  18. 26 Feb, 2019 1 commit
  19. 21 Feb, 2019 1 commit
  20. 19 Feb, 2019 1 commit
  21. 18 Feb, 2019 1 commit
    • Simon Zünd's avatar
      [stack trace] Change API to use new StackTraceFrame class · e295ca07
      Simon Zünd authored
      This CL changes "CaptureCurrentStackTrace" to use the
      FrameArrayBuilder. This way, simple and detailed stack traces use
      the same mechanism to capture stack traces.
      
      The stack trace API is implemented using the previously introduced
      StackTraceFrame class, which uses FrameArray as a backing store and
      can lazily initialize StackFrameInfo objects.
      
      R=jgruber@chromium.org, yangguo@chromium.org
      
      Bug: v8:8742
      Change-Id: I716a9baa33d9ca1d2ef41a73fba26234a03b045b
      Reviewed-on: https://chromium-review.googlesource.com/c/1469822
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59651}
      e295ca07
  22. 15 Feb, 2019 2 commits
    • Benedikt Meurer's avatar
      [isolate] Move ThreadLocalTop into IsolateData. · e17e46fd
      Benedikt Meurer authored
      This refactors the ThreadLocalTop into separate header and
      implementation files, and moves it from the Isolate to the
      IsolateData (with some tweaks to make the layout of the class
      predictable). This has the advantage that all external references
      referring to addresses in the ThreadLocalTop (like js_entry_sp,
      c_function, c_entry_fp, etc.) need only a single memory access
      to reach them. For example the CallApiCallback can now use
      
      ```
      mov %rbp,0x8e40(%r13)
      mov %rsi,0x8de0(%r13)
      mov %rbx,0x8e50(%r13)
      ```
      
      to setup the information about context, frame pointer, and C++
      function pointer in the ThreadLocalTop instead of the previously
      generated code
      
      ```
      mov 0x2e28(%r13),%r10
      mov %rbp,(%r10)
      mov 0x2e38(%r13),%r10
      mov %rsi,(%r10)
      mov 0x2e30(%r13),%r10
      mov %rbx,(%r10)
      ```
      
      which always had to load the scratch register %r10 with the actual
      address first. This has interesting performance impact. On the
      test case mentioned in v8:8820 (with the `d8` patch applied), the
      performance goes from
      
      ```
      console.timeEnd: fnMono, 2290.012000
      console.timeEnd: fnCall, 2604.954000
      ```
      
      to
      
      ```
      console.timeEnd: fnMono, 2062.743000
      console.timeEnd: fnCall, 2477.556000
      ```
      
      which is a pretty solid **10%** improvement for the monomorphic API
      accessor case, and a **5%** improvement for calling into the API
      accessor instead.
      
      But there might as well be other places besides API callback calls
      that will benefit from this change, which I haven't tested explicitly.
      
      Although this change is supposed to be as minimal as possible without
      any functional effects, some changes were necessary/logical. Eventually
      we should reconsider changing the layout and the types for the fields
      in the ThreadLocalTop to be more consistent with the other IsolateData
      entities. But this can be done in separate follow-up CLs, as this will
      be quite a bit of churn on the code base, depending on how we do that
      exactly, and is orthogonal to this optimization.
      
      Bug: v8:8820, v8:8848, chromium:913553
      Change-Id: I4732c8e60231f0312eb7767358c48bae0338220d
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Reviewed-on: https://chromium-review.googlesource.com/c/1474230Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59624}
      e17e46fd
    • Jakob Kummerow's avatar
      [cleanup] #include heap-inl.h less often · 6cac1382
      Jakob Kummerow authored
      This takes heap-inl.h out of the "Giant Include Cluster".
      Naturally, that means adding a bunch of explicit includes
      in a bunch of places that relied on transitively including
      them before.
      As of this patch, no header file outside src/heap/ includes
      heap-inl.h.
      
      Bug: v8:8562,v8:8499
      Change-Id: I65fa763f90e66afc30d105b9277792721f05a6d4
      Reviewed-on: https://chromium-review.googlesource.com/c/1459659
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59617}
      6cac1382
  23. 14 Feb, 2019 2 commits
    • Hannu Trey's avatar
      Re-detect the host time zone if requested by an embedder · f781f522
      Hannu Trey authored
      Add an enum argument to DateTimeConfigurationChangeNotification to
      control whether or not to redetect the host time zone. The default value
      kSkip doesn't cause redetecting so that callers do not need to change if
      they want the current behavior (e.g. Chromium).
      
      Note that the host time zone detection does not work when v8 is run
      inside a sandbox as in Chromium so that Chromium detects the host time
      zone outside the sandbox before calling
      DateTimeConfigurationChangeNotification. OTOH, other v8 embedders may
      find it more convenient for v8 to do the host time zone detection on
      their behalf. In that case, they can call the function with the new
      argument set to value kRedetect.
      
      Test:
      With PHP+V8Js on linux, execute:
      php -r '
        putenv("TZ=Europe/Helsinki");
        $v8 = new V8Js();
        $v8->executeString("print((new Date(0)).toString()+\"\\n\");");
        putenv("TZ=America/New_York");
        $v8->executeString("print((new Date(0)).toString()+\"\\n\");");'
      
      Result before modification:
      Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time)
      Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time)
      
      Result after modification:
      Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time)
      Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time)
      
      Result after V8JS is modified to use value kRedetect when calling
      
      Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time)
      Wed Dec 31 1969 19:00:00 GMT-0500 (Eastern Standard Time)
      
      DateTimeConfigurationChangeNotification: 
      Change-Id: I005192dd42669a94f606a49baa9eafad3475b9fd
      Reviewed-on: https://chromium-review.googlesource.com/c/1449637Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJungshik Shin <jshin@chromium.org>
      Commit-Queue: Jungshik Shin <jshin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59613}
      f781f522
    • Dan Elphick's avatar
      [compile] Add support for lazy generation of source position tables · 5cc245ae
      Dan Elphick authored
      If enable_omit_source_positions is true (defaults to false), source
      position tables are not generated when compiling bytecode. They will
      then be regenerated when exceptions are thrown.
      
      This adds a new function Compiler::CollectSourcePositions which given a
      SharedFunctionInfo with bytecode but no source position table re-parses
      and regenerates the bytecode but this time with source positions
      collection enabled. Note this will reparse all inner functions that
      have previously been compiled since the preparse data is no longer
      available.
      
      With the flag enabled there still 18 test failures mostly related to
      debugging.
      
      v8: 8510
      Change-Id: I46dff9818d8a89c901ba8ae8df94dcaca83aa658
      Reviewed-on: https://chromium-review.googlesource.com/c/1385165
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59595}
      5cc245ae
  24. 13 Feb, 2019 1 commit
  25. 12 Feb, 2019 1 commit
    • tzik's avatar
      Move MicrotasksPolicy management to MicrotaskQueue · df95cff9
      tzik authored
      This CL moves MicrotasksPolicy from Isolate's HandleScopeImplementer
      to MicrotaskQueue for better non-default MicrotaskQueue support.
      
      After this:
       * MicrotaskPolicy is per-MicrotaskQueue rather than single global one.
       * ENTER_V8 runs MicrotaskQueue associated to the current Context, rather
         than the default_microtask_queue().
       * SuppressMicrotaskExecutionScope and MicrotasksScope are ready to
         take MicrotaskQueue parameter, rather than using the default one.
      
      Note that there's no way to use a non-default microtask queue until we
      expose it as a V8 API.
      
      Bug: v8:8124
      Change-Id: I79cbc53d26d9f3f4cfb7c64d303b12e395b76815
      Reviewed-on: https://chromium-review.googlesource.com/c/1429720Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59517}
      df95cff9
  26. 11 Feb, 2019 3 commits
  27. 08 Feb, 2019 1 commit