1. 06 Apr, 2018 1 commit
    • Jakob Kummerow's avatar
      [cleanup] Refactor the Factory · f9a2e24b
      Jakob Kummerow authored
      There is no good reason to have the meat of most objects' initialization
      logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      this CL changes the protocol between Heap and Factory to be AllocateRaw,
      and all object initialization work after (possibly retried) successful
      raw allocation happens in the Factory.
      
      This saves about 20KB of binary size on x64.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      Reviewed-on: https://chromium-review.googlesource.com/959533
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52416}
      f9a2e24b
  2. 05 Apr, 2018 2 commits
  3. 04 Apr, 2018 1 commit
  4. 03 Apr, 2018 2 commits
  5. 30 Mar, 2018 1 commit
  6. 16 Mar, 2018 1 commit
  7. 02 Mar, 2018 1 commit
  8. 15 Feb, 2018 1 commit
  9. 30 Jan, 2018 1 commit
  10. 19 Jan, 2018 1 commit
  11. 18 Jan, 2018 3 commits
  12. 17 Jan, 2018 1 commit
    • Ben L. Titzer's avatar
      [wasm] Hide SyncValidate() behind WasmEngine interface. · 84326fc4
      Ben L. Titzer authored
      This is the first in a series of CLs that will separate the JS API
      from the implementation of WebAssembly by bottlenecking interactions
      through the WasmEngine. In the long run, the JS API and much of V8
      should rely only on the WasmEngine interface, which will represent
      the "public interface" for embedding WebAssembly.
      
      Next: hide compilation-related methods behind WasmEngine.
      Bug: v8:7316
      Change-Id: I93404f0dc8a201ae99d30b4c1ca34606e3dddbca
      Reviewed-on: https://chromium-review.googlesource.com/868590
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50660}
      84326fc4
  13. 16 Jan, 2018 1 commit
  14. 11 Jan, 2018 1 commit
  15. 10 Jan, 2018 1 commit
  16. 22 Dec, 2017 2 commits
  17. 21 Dec, 2017 2 commits
  18. 07 Dec, 2017 1 commit
    • Karl Schimpf's avatar
      [wasm] First step of refactoring trap handling to be per module. · 0d5de9ad
      Karl Schimpf authored
      The previous code assumed that trap handling was a global concept, defined
      by function trap_handler::UseTrapHandler(). This CL does the first step
      in changing the decision to be specifiable at a module level.
      
      Therefore trap_handler::UseTrapHandler() is replaced by
      trap_handler::IsTrapHandlerEnabled(), and communicates if compilation
      supports the use of trap handlers (but still allowing the use of
      bounds checking on memory accesses).
      
      It then refactors the classes ModuleEnv and WasmCompiledModule to have
      a field "use_trap_handler" that specifies if traps should be used for
      the memory accesses in the module being compiled.
      
      Bug: v8:7143
      Change-Id: I9844842d5721c86c2dd55e911b42bf8b9922cf63
      Reviewed-on: https://chromium-review.googlesource.com/802322
      Commit-Queue: Eric Holk <eholk@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMircea Trofin <mtrofin@chromium.org>
      Reviewed-by: 's avatarEric Holk <eholk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49915}
      0d5de9ad
  19. 22 Nov, 2017 1 commit
  20. 20 Nov, 2017 1 commit
  21. 16 Nov, 2017 1 commit
  22. 08 Nov, 2017 1 commit
    • jgruber's avatar
      [factory] Simplify JSFunction creation · 72230246
      jgruber authored
      There's three common situations in which we need to create JSFunction
      objects.  1) from the compiler, 2) from tests, and 3) everything else
      (mostly during bootstrapping).
      
      This is an attempt to simplify case 3), which previously relied on
      several Factory::NewFunction overloads where it was not clear how the
      semantics of each overload differed.
      
      This CL removes all but one overload, and packs arguments into a new
      NewFunctionArgs helper class.
      
      It also removes the hacks around
      SFI::set_lazy_deserialization_builtin_id by explicitly passing
      builtin_id into Factory::NewSharedFunctionInfo.
      
      Drive-by-fix: Properly set is_constructor hint in
      SimpleCreateSharedFunctionInfo.
      
      Bug: v8:6624
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ica94d95e72e443055db5e7ff9e8cdf4115201ef1
      Reviewed-on: https://chromium-review.googlesource.com/757094
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49224}
      72230246
  23. 25 Oct, 2017 1 commit
    • Jakob Kummerow's avatar
      [bigint] Fix abstract equality with junk strings · 98df94cd
      Jakob Kummerow authored
      Abstract equality comparison of a BigInt and a String converts the
      latter to BigInt. This conversion can fail; since we do not want to
      pass a context to the comparison function, we must signal such failure
      without throwing an exception.
      This CL uses the existing ShouldThrow enum to configure behavior of
      String-to-BigInt conversion, moving it out of Object into globals.h.
      
      Bug: v8:6791, v8:6979
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ibb98675079b8392cf03bbcbbbd5556108500a32d
      Reviewed-on: https://chromium-review.googlesource.com/734172
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48946}
      98df94cd
  24. 23 Oct, 2017 1 commit
  25. 16 Oct, 2017 1 commit
  26. 10 Oct, 2017 1 commit
    • Eric Holk's avatar
      [wasm] Remove --wasm-guard-pages flag · 69d790e5
      Eric Holk authored
      This flag was originally added as a staging mechanism to let us land and test
      guard regions without the full trap handler feature landing. Additionally, we
      thought we might enable guard regions without trap handlers on some systems.
      
      Trap handlers are now supported, and there's not a real compelling reason for
      why we need guard regions without trap handlers. Keeping the separate flag leads
      to confusion, since some code treats guard regions and trap handlers the same,
      while other code treats them as independent.
      
      Removing this flag and its associated special cases makes everything more
      uniform and predictable.
      
      R=gdeepti@chromium.org
      
      Change-Id: Icebab91d1f1e0c55e7a35c75b880085d37fa14ae
      Reviewed-on: https://chromium-review.googlesource.com/706570Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Reviewed-by: 's avatarMircea Trofin <mtrofin@chromium.org>
      Commit-Queue: Eric Holk <eholk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48411}
      69d790e5
  27. 09 Oct, 2017 2 commits
  28. 06 Oct, 2017 2 commits
  29. 02 Oct, 2017 1 commit
  30. 28 Sep, 2017 1 commit
  31. 27 Sep, 2017 1 commit
  32. 11 Sep, 2017 1 commit
    • Deepti Gandluri's avatar
      [wasm] Memory.Grow with guard pages enabled should adjust memory allocated · 2aecded2
      Deepti Gandluri authored
       - Memory.Grow with guard pages enabled should adjust amount of allocated
         memory, and not allocate a new buffer. This was disabled because previously
         the backing store was freed in the MemoryFinalizer, and we needed to be sure
         that the backing store is not released till the last buffer using it is
         released. This is now safe as we no longer use the MemoryFinalizer
       - SetProtection should use Guard/Unprotect that use mprotect underneath,
         instead of CommitRegion/UncommitRegion that use mmap
       - Move buffer allocation to the end to avoid inconsistent memory due to GC
      
      BUG=v8:5886
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I0d7edb884bd1e3167eb5fbced6953c6401688d40
      Reviewed-on: https://chromium-review.googlesource.com/629517Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
      Reviewed-by: 's avatarEric Holk <eholk@chromium.org>
      Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47960}
      2aecded2