1. 19 Jan, 2017 30 commits
  2. 18 Jan, 2017 10 commits
    • kozyatinskiy's avatar
      [inspector] introduced debug::SetBreakEventListener,SetExceptionEventListener · f3dcdf88
      kozyatinskiy authored
      Inspector is moved to per-event-type callbacks instead of general v8::debug::SetDebugEventListener. It allows to:
      - remove any usage of v8::Debug::EventDetails in debug-interface,
      - avoid redundant JS call on each event to get properties of event objects,
      - introduce better pure C++ API for these events later.
      
      BUG=v8:5510
      R=yangguo@chromium.org,jgruber@chromium.org,dgozman@chromium.org
      
      Review-Url: https://codereview.chromium.org/2622253004
      Cr-Commit-Position: refs/heads/master@{#42483}
      f3dcdf88
    • bjaideep's avatar
      PPC/s390: [Turbofan] Implement super calls with spread bytecode in assembly code. · ea4f834c
      bjaideep authored
      Port 0b8200c7
      
      R=petermarshall@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:5659
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2645683002
      Cr-Commit-Position: refs/heads/master@{#42482}
      ea4f834c
    • binji's avatar
      Implement ldrex/strex instructions in ARM simulator · 66ae5f7d
      binji authored
      This CL implements ldrex, ldrexb, ldrexh, strex, strexb, and strexh in the
      Simulator. These instructions provide "exclusive" access, which provides mutual
      exclusion for concurrent threads of execution.
      
      The ARM specification gives some leeway to implementors, but essentially
      describes each processor as having Local Monitor and Global Monitor. The Local
      Monitor is used to check the exclusivity state without having to synchronize
      with other processors. The Global Monitor is shared between processors. We
      model both to make it easier to match behavior with the spec.
      
      When running with multiple OS threads, each thread has its own isolate, and
      each isolate has its own Simulator. The Local Monitor is stored directly on the
      Simulator, and the Global Monitor is stored as a lazy singleton. The Global
      Monitor maintains a linked-list of all Simulators.
      
      All loads/stores (even non-exclusive) are guarded by the Global Monitor's mutex.
      
      BUG=v8:4614
      
      Review-Url: https://codereview.chromium.org/2006183004
      Cr-Commit-Position: refs/heads/master@{#42481}
      66ae5f7d
    • kozyatinskiy's avatar
      [inspector] unconditionally pause on OOM · 9662547c
      kozyatinskiy authored
      Currently V8 context just crashes on OOM, with this CL backend will send paused notification with OOM reason before OOM and will increase heap limits to allow further debugging on pause.
      
      BUG=chromium:675911
      
      Review-Url: https://codereview.chromium.org/2624543004
      Cr-Commit-Position: refs/heads/master@{#42480}
      9662547c
    • bradnelson's avatar
      [wasm][asm.js] Disable asm->wasm for the M57 branch. · 51a4b9f9
      bradnelson authored
      BUG=v8:4203
      R=hablich@chromium.org
      
      Review-Url: https://codereview.chromium.org/2641983002
      Cr-Commit-Position: refs/heads/master@{#42479}
      51a4b9f9
    • bmeurer's avatar
      [turbofan] Also recognize 'type' === typeof x. · ff46966d
      bmeurer authored
      So far we only recognized
      
        typeof x == 'type'
        typeof x != 'type'
        typeof x === 'type'
        typeof x !== 'type'
      
      but some people seem to prefer it the other way around, i.e.
      
        'type' == typeof x
        'type' != typeof x
        'type' === typeof x
        'type' !== typeof x
      
      as spotted in some Ember.js code, so we should obviously handle that as
      well and reduce it to a quick check on x instead of calling the TypeOf
      builtin and comparing the resulting string.
      
      R=ishell@chromium.org
      BUG=v8:5267
      
      Review-Url: https://codereview.chromium.org/2642743003
      Cr-Commit-Position: refs/heads/master@{#42478}
      ff46966d
    • kozyatinskiy's avatar
      [inspector] introduced debug::SetCompileEventListener · b0577a3d
      kozyatinskiy authored
      Listener is called instead of event listener for v8::AfterCompile and v8::CompileError events if installed.
      - removed v8::debug::Script::Wrap.
      
      BUG=v8:5510
      R=yangguo@chromium.org,jgruber@chromium.org,dgozman@chromium.org,clemensh@chromium.org, alph@chromium.org,
      
      Review-Url: https://codereview.chromium.org/2626283002
      Cr-Commit-Position: refs/heads/master@{#42477}
      b0577a3d
    • ofrobots's avatar
      Revert remove dead hole check logic · 80234ee3
      ofrobots authored
      This reverts commits
      * 45c11887 "[fullcodegen] Remove dead hole check logic"
      * 2aaf217b "[crankshaft] Remove dead Variable hole-checking code"
      * f40a3817 "[crankshaft] Fix mips/mips64 build: remove unused variable"
      
      BUG=
      R=adamk@chromium.org,bmeurer@chromium.org,hablich@chromium.org
      
      Review-Url: https://codereview.chromium.org/2640793004
      Cr-Commit-Position: refs/heads/master@{#42476}
      80234ee3
    • mattloring's avatar
      FFI Compiler outline based on code stub assembler. We are looking to land this... · 0ecc6b06
      mattloring authored
      FFI Compiler outline based on code stub assembler. We are looking to land this frame to allow specific type translation implementations to proceed in parallel.
      
      BUG=v8:4456
      
      Review-Url: https://codereview.chromium.org/2607993003
      Cr-Commit-Position: refs/heads/master@{#42475}
      0ecc6b06
    • mtrofin's avatar
      [turbofan] Regalloc was assuming "blocked" register can't be "used" · 970d9076
      mtrofin authored
      When attempting to allocate a blocked register, in the absence of
      aliasing, it was possible to assume that a register that was
      blocked - by either belonging to an active fixed register, or to
      an active unspillable range - could not have possibly be allocated
      to another active range (because there'd be an interference otherwise).
      
      With aliasing, that changes. The range we're trying to allocate
      may be a double, while the 2 or more active ranges in the paragraph
      above may be singles aliasing to the same double slot.
      
      Opportunistically refactored for readability an optimization, and
      added some comments.
      
      BUG=681529
      
      Review-Url: https://codereview.chromium.org/2632373004
      Cr-Commit-Position: refs/heads/master@{#42474}
      970d9076