1. 27 Jan, 2016 20 commits
  2. 26 Jan, 2016 20 commits
    • littledan's avatar
      Fix length of DataView and TypedArray get/set functions · 3f37c446
      littledan authored
      Functions like DataView.prototype.getUint8 should have length 1,
      and DataView.prototype.setUint8 should have length 2, as their
      endianness arguments are optional. Additionally,
      TypedArray.prototype.set.length should be 2. This follows the ES2015
      specification, and a new test262 test tests for it. This patch
      fixes the functions' lengths.
      
      R=adamk
      
      Review URL: https://codereview.chromium.org/1636953003
      
      Cr-Commit-Position: refs/heads/master@{#33531}
      3f37c446
    • adamk's avatar
      Ensure arrow functions can close over lexically-scoped variables · 953bb416
      adamk authored
      ParseArrowFunctionLiteral was erroneously checking AllowsLazyCompilation
      rather than AllowsLazyParsing when deciding whether to parse lazily.
      This meant that lexically-scoped variables that had no other referents
      wouldn't get closed over properly.
      
      BUG=chromium:580934, v8:4255
      LOG=y
      
      Review URL: https://codereview.chromium.org/1630823006
      
      Cr-Commit-Position: refs/heads/master@{#33530}
      953bb416
    • adamk's avatar
      [test262] Re-order and re-tag some Function.name related tests · e8b6b14b
      adamk authored
      This makes it easier to see what behavior each test is verifying.
      
      BUG=v8:3699
      LOG=n
      
      Review URL: https://codereview.chromium.org/1638853003
      
      Cr-Commit-Position: refs/heads/master@{#33529}
      e8b6b14b
    • adamk's avatar
      Treat yield expressions as an AssignmentPattern error · b874e3d5
      adamk authored
      They were already treated as a BindingPattern error; this patch simply
      replaces that call with one marking them as both a binding and assignment
      error, and adds parsing tests for both cases.
      
      BUG=v8:4707
      LOG=n
      
      Review URL: https://codereview.chromium.org/1632303002
      
      Cr-Commit-Position: refs/heads/master@{#33528}
      b874e3d5
    • alph's avatar
      Add CollectSample API function to CpuProfiler · 7068caf5
      alph authored
      It allows embedder to inject a stack sample on demand.
      
      BUG=chromium:579191
      LOG=N
      
      Review URL: https://codereview.chromium.org/1631043002
      
      Cr-Commit-Position: refs/heads/master@{#33527}
      7068caf5
    • pkotwicz's avatar
      [GN] Remove CAN_USE_VFP_INSTRUCTIONS define to match GYP · f53d530b
      pkotwicz authored
      CAN_USE_VFP_INSTRUCTIONS was removed in GYP in
      https://codereview.chromium.org/340373002
      
      BUG=None
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1635123003
      
      Cr-Commit-Position: refs/heads/master@{#33526}
      f53d530b
    • rmcilroy's avatar
      [Interpreter] Implement do expressions. · 04c00ee9
      rmcilroy authored
      Implements do expressions for the Ignition.
      
      BUG=v8:4685
      LOG=N
      
      Review URL: https://codereview.chromium.org/1632213002
      
      Cr-Commit-Position: refs/heads/master@{#33525}
      04c00ee9
    • mbrandy's avatar
      PPC: [es6] Tail calls support. · 95aedaa0
      mbrandy authored
      Port 6131ab1e
      
      Original commit message:
          This CL implements PrepareForTailCall() mentioned in ES6 spec for full codegen, Crankshaft and Turbofan.
          When debugger is active tail calls are disabled.
      
          Tail calling can be enabled by --harmony-tailcalls flag.
      
      R=ishell@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:4698
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1635823003
      
      Cr-Commit-Position: refs/heads/master@{#33524}
      95aedaa0
    • mlippautz's avatar
      [heap] Parallel newspace evacuation, semispace copy, and compaction \o/ · 8f0fd8c0
      mlippautz authored
      All parallelism can be turned off using --predictable, or --noparallel-compaction.
      
      This patch completely parallelizes
       - semispace copy: from space -> to space (within newspace)
       - newspace evacuation: newspace -> oldspace
       - oldspace compaction: oldspace -> oldspace
      
      Previously newspace has been handled sequentially (semispace copy, newspace
      evacuation) before compacting oldspace in parallel. However, on a high level
      there are no dependencies between those two actions, hence we parallelize them
      altogether. We base the number of evacuation tasks on the overall set of
      to-be-processed pages (newspace + oldspace compaction pages).
      
      Some low-level details:
       - The hard cap on number of tasks has been lifted
       - We cache store buffer entries locally before merging them back into the global
         StoreBuffer in a finalization phase.
       - We cache AllocationSite operations locally before merging them back into the
         global pretenuring storage in a finalization phase.
       - AllocationSite might be compacted while they would be needed for newspace
         evacuation. To mitigate any problems we defer checking allocation sites for
         newspace till merging locally buffered data.
      
      CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel
      BUG=chromium:524425
      LOG=N
      R=hpayer@chromium.org, ulan@chromium.org
      
      Review URL: https://codereview.chromium.org/1577853007
      
      Cr-Commit-Position: refs/heads/master@{#33523}
      8f0fd8c0
    • yangguo's avatar
      [debugger] muting break positions should work for the entire statement. · 8349ee0c
      yangguo authored
      A statement could have several break positions. The entire statement
      should be considered muted if break points across all these break
      positions evaluate to false.
      
      R=verwaest@chromium.org
      BUG=chromium:429167
      LOG=N
      
      Review URL: https://codereview.chromium.org/1615903002
      
      Cr-Commit-Position: refs/heads/master@{#33522}
      8349ee0c
    • jarin's avatar
      Replace HeapType with a non-templated FieldType class. · cfaeb63b
      jarin authored
      This replace HeapType with a dedicated class that implements just what we need for field type tracking. In the next CL, I plan to remove FieldType::Iterator because FieldType can iterate over at most one map.
      
      The ultimate plan is to get rid of templates in types.(h|cc) and remove type-inl.h.
      
      TBR=rossberg@chromium.org
      
      Review URL: https://codereview.chromium.org/1636013002
      
      Cr-Commit-Position: refs/heads/master@{#33521}
      cfaeb63b
    • mvstanton's avatar
      Revert of Type Feedback Vector lives in the closure (patchset #12 id:260001 of... · e2e7dc32
      mvstanton authored
      Revert of Type Feedback Vector lives in the closure (patchset #12 id:260001 of https://codereview.chromium.org/1563213002/ )
      
      Reason for revert:
      FAilure on win32 bot, need to investigate webkit failures.
      
      Original issue's description:
      > Type Feedback Vector lives in the closure
      >
      > We get less "pollution" of type feedback if we have one vector per native
      > context, rather than one for the whole system. This CL moves the vector
      > appropriately.
      >
      > We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The
      > vector actually lives in the first slot of the literals array (indeed there is
      > great commonality between those arrays, they can be thought of as the same
      > thing). So we make greater effort to ensure there is a valid literals array
      > after compilation.
      >
      > This meant, for performance reasons, that we needed to extend
      > FastNewClosureStub to support creating closures with literals. And ultimately,
      > it drove us to move the optimized code map lookup out of FastNewClosureStub
      > and into the compile lazy builtin.
      >
      > The heap change is trivial so I TBR Hannes for it...
      >
      > TBR=hpayer@chromium.org
      >
      > BUG=
      >
      > Committed: https://crrev.com/a5200f7ed4d11c6b882fa667da7a1864226544b4
      > Cr-Commit-Position: refs/heads/master@{#33518}
      
      TBR=bmeurer@chromium.org,akos.palfi@imgtec.com
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review URL: https://codereview.chromium.org/1632993003
      
      Cr-Commit-Position: refs/heads/master@{#33520}
      e2e7dc32
    • joransiu's avatar
      S390: Add platform specific atomic ops impl · 4cbd63c9
      joransiu authored
      Add S390 specific atomic ops implementation + associated build
      toolchain updates.
      
      R=danno@chromium.org,svenpanne@chromium.org,michael_dawson@ca.ibm.com,jyan@ca.ibm.com,mtbrandyberry@ca.ibm.com
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1601223003
      
      Cr-Commit-Position: refs/heads/master@{#33519}
      4cbd63c9
    • mvstanton's avatar
      Type Feedback Vector lives in the closure · a5200f7e
      mvstanton authored
      We get less "pollution" of type feedback if we have one vector per native
      context, rather than one for the whole system. This CL moves the vector
      appropriately.
      
      We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The
      vector actually lives in the first slot of the literals array (indeed there is
      great commonality between those arrays, they can be thought of as the same
      thing). So we make greater effort to ensure there is a valid literals array
      after compilation.
      
      This meant, for performance reasons, that we needed to extend
      FastNewClosureStub to support creating closures with literals. And ultimately,
      it drove us to move the optimized code map lookup out of FastNewClosureStub
      and into the compile lazy builtin.
      
      The heap change is trivial so I TBR Hannes for it...
      
      TBR=hpayer@chromium.org
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1563213002
      
      Cr-Commit-Position: refs/heads/master@{#33518}
      a5200f7e
    • rmcilroy's avatar
      [Interpreter] Add back one more skip for an mjsunit test failing on Arm64 on Ignition. · 8476397f
      rmcilroy authored
      BUG=v8:4280
      LOG=N
      TBR=machenbach@chromium.org
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1633133002
      
      Cr-Commit-Position: refs/heads/master@{#33517}
      8476397f
    • oth's avatar
      [interpreter] Wide register support. · 19df7a20
      oth authored
      This increases the size of register operands to be 16-bit.
      
      Not all bytecodes have wide register variants, so when they are
      needed a register translator will copy them into a small area
      reserved at the top of the 8-bit register range and these registers
      are supplied as arguments to the bytecode with 8-bit operands.
      
      This is non-intrusive for typical bytecode where the number of
      registers is less than 120. For bytecodes with wide register
      operands (above the window) their index needs to be translated
      to avoid the reserved translation window.
      
      Enables splay.js to run in Octane and a handful of mjsunit tests.
      
      BUG=v8:4280,v8:4675
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1613163002
      
      Cr-Commit-Position: refs/heads/master@{#33516}
      19df7a20
    • mlippautz's avatar
      [heap] Cleanup SemiSpace · 8391d425
      mlippautz authored
      - Remove semispace target capacity: It's unused and adds some unneeded
        complexity
      
      - Enforcing decl order for SemiSpace
      - Move forward declarations in spaces.h to top
      - Add all members to default constructor
      
      BUG=chromium:581076
      LOG=N
      
      Review URL: https://codereview.chromium.org/1631713002
      
      Cr-Commit-Position: refs/heads/master@{#33515}
      8391d425
    • sigurds's avatar
      [turbofan] Disable test · a59653a2
      sigurds authored
      This CL disables a test that takes too long in debug mode when
      escape analysis is enabled in turbofan.
      
      R=machenbach@chromium.org
      BUG=v8:4586
      LOG=n
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1636593004
      
      Cr-Commit-Position: refs/heads/master@{#33514}
      a59653a2
    • mstarzinger's avatar
      [interpreter] Fix how 'throw' is translated to TurboFan. · fd5505ca
      mstarzinger authored
      This fixes the translation of 'throw' bytecodes to TurboFan graphs. The
      correct runtime function is being used now, also the frame states are
      attached to the correct nodes now.
      
      R=mythria@chromium.org
      TEST=cctest/test-run-jsexceptions/ThrowMessageIndirectly
      BUG=v8:4674
      LOG=n
      
      Review URL: https://codereview.chromium.org/1636033002
      
      Cr-Commit-Position: refs/heads/master@{#33513}
      fd5505ca
    • rmcilroy's avatar
      [Interpreter] Fix deopting from inline functions. · 32eade63
      rmcilroy authored
      Rename IntepreterExceptionEntryHandler builtin to InterpreterEnterBytecodeDispatch
      and use it as the return address when building interpreter frames during deopt.
      This ensures that we restart execution of the outer frame at the correct
      bytecode.
      
      BUG=v8:4280,v8:4678
      LOG=N
      
      Review URL: https://codereview.chromium.org/1633633002
      
      Cr-Commit-Position: refs/heads/master@{#33512}
      32eade63