1. 25 Aug, 2015 1 commit
    • bmeurer's avatar
      Correctify instanceof and make it optimizable. · 5d875a57
      bmeurer authored
      The previous hack with HInstanceOfKnownGlobal was not only slower,
      but also very brittle and required a lot of weird hacks to support it. And
      what's even more important it wasn't even correct (because a map check
      on the lhs is never enough for instanceof).
      
      The new implementation provides a sane runtime implementation
      for InstanceOf plus a fast case in the InstanceOfStub, combined with
      a proper specialization in the case of a known global in CrankShaft,
      which does only the prototype chain walk (coupled with a code
      dependency on the known global).
      
      As a drive-by-fix: Also fix the incorrect Object.prototype.isPrototypeOf
      implementation.
      
      BUG=v8:4376
      LOG=y
      
      Review URL: https://codereview.chromium.org/1304633002
      
      Cr-Commit-Position: refs/heads/master@{#30342}
      5d875a57
  2. 03 Aug, 2015 1 commit
    • yangguo's avatar
      Remove JSFunctionResultCache. · 4a2e4420
      yangguo authored
      There is only one use case for it: String.prototype.search converts a
      string argument into a RegExp. The cache is used to avoid repeating that
      conversion. However, this does not make the added complexity worthwhile.
      
      Review URL: https://codereview.chromium.org/1267493006
      
      Cr-Commit-Position: refs/heads/master@{#29985}
      4a2e4420
  3. 30 Jul, 2015 1 commit
  4. 20 Jul, 2015 1 commit
    • yangguo's avatar
      Debugger: prepare code for debugging on a per-function basis. · 35c28ce0
      yangguo authored
      Prior to this patch, we enter a global debug mode whenever a break point
      is set. By entering this mode, all code is deoptimized and activated
      frames are recompiled and redirected to newly compiled debug code.
      
      After this patch, we only deoptimize/redirect for functions we want to
      debug. Trigger for this is Debug::EnsureDebugInfo, and having DebugInfo
      object attached to the SFI prevents optimization/inlining.
      
      The result is that we can have optimized code for functions without break
      points alongside functions that do have break points, which are not
      optimized.
      
      R=mstarzinger@chromium.org, ulan@chromium.org
      BUG=v8:4132
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1233073005
      
      Cr-Commit-Position: refs/heads/master@{#29758}
      35c28ce0
  5. 13 Jul, 2015 2 commits
  6. 03 Jun, 2015 1 commit
    • bmeurer's avatar
      [date] Refactor the %_DateField intrinsic to be optimizable. · e4782a9b
      bmeurer authored
      Previously the %_DateField intrinsic would also check the object and
      throw an exception if you happen to pass something that is not a valid
      JSDate, which (a) violates our policy for instrinsics and (b) is hard to
      optimize in TurboFan (even Crankshaft has a hard time, but there we will
      never inline the relevant builtins, so it doesn't show up). The throwing
      part is now a separate intrinsics %_ThrowIfNotADate that throws an
      exception in full codegen and deoptimizes in Crankshaft, which means the
      code for the current use cases is roughly the same (modulo some register
      renamings/gap moves).
      
      R=jkummerow@chromium.org
      
      Review URL: https://codereview.chromium.org/1167813003
      
      Cr-Commit-Position: refs/heads/master@{#28782}
      e4782a9b
  7. 21 May, 2015 1 commit
    • arv's avatar
      [es6] Spread in array literals · 9502e91a
      arv authored
      This allows you to put iterables into your array literals
      and the will get spread into the array.
      
        let x = [0, ...range(1, 3)];  // [0, 1, 2]
      
      This is done by treating the array literal up to the first
      spread element as usual, including using a boiler plate
      array, and then appending the remaining expressions and rest
      expressions.
      
      BUG=v8:3018
      LOG=N
      
      Review URL: https://codereview.chromium.org/1125183008
      
      Cr-Commit-Position: refs/heads/master@{#28534}
      9502e91a
  8. 30 Apr, 2015 1 commit
  9. 27 Apr, 2015 1 commit
  10. 16 Apr, 2015 1 commit
  11. 15 Apr, 2015 1 commit
  12. 13 Apr, 2015 1 commit
  13. 07 Apr, 2015 1 commit
  14. 11 Mar, 2015 1 commit
  15. 10 Mar, 2015 1 commit
  16. 27 Feb, 2015 1 commit
  17. 14 Feb, 2015 1 commit
  18. 29 Jan, 2015 1 commit
  19. 22 Jan, 2015 1 commit
  20. 16 Jan, 2015 1 commit
  21. 15 Jan, 2015 1 commit
    • arv's avatar
      ES6 computed property names · 74e38e34
      arv authored
      This adds support for computed property names, under the flag
      --harmony-computed-property-names, for both object literals and
      classes.
      
      This is a revert of the revert, 7d48fd9d.
      
      BUG=v8:3754
      LOG=Y
      R=dslomov@chromium.org
      
      Review URL: https://codereview.chromium.org/798243004
      
      Cr-Commit-Position: refs/heads/master@{#26084}
      74e38e34
  22. 13 Jan, 2015 1 commit
  23. 12 Jan, 2015 1 commit
  24. 17 Dec, 2014 2 commits
  25. 16 Dec, 2014 2 commits
    • arv's avatar
      Revert of ES6 computed property names (patchset #1 id:1 of... · 5f22fdd5
      arv authored
      Revert of ES6 computed property names (patchset #1 id:1 of https://codereview.chromium.org/807173002/)
      
      Reason for revert:
      Crashes Win32. It was not flake.
      
      Original issue's description:
      > ES6 computed property names
      >
      > This adds support for computed property names, under the flag
      > --harmony-computed-property-names, for both object literals and
      > classes.
      >
      > This is a revert of the revert, a76419f0 with
      > no changes. I cannot reproduce the issue on Win8.1 or WinXP. Letting the bots
      > try again.
      >
      > BUG=v8:3754
      > LOG=Y
      > TBR=dslomov@chromium.org
      
      TBR=dslomov@chromium.org
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:3754
      
      Review URL: https://codereview.chromium.org/807033003
      
      Cr-Commit-Position: refs/heads/master@{#25853}
      5f22fdd5
    • arv's avatar
      ES6 computed property names · a235b107
      arv authored
      This adds support for computed property names, under the flag
      --harmony-computed-property-names, for both object literals and
      classes.
      
      This is a revert of the revert, a76419f0 with
      no changes. I cannot reproduce the issue on Win8.1 or WinXP. Letting the bots
      try again.
      
      BUG=v8:3754
      LOG=Y
      TBR=dslomov@chromium.org
      
      Review URL: https://codereview.chromium.org/807173002
      
      Cr-Commit-Position: refs/heads/master@{#25851}
      a235b107
  26. 15 Dec, 2014 2 commits
    • arv's avatar
      Revert of ES6 computed property names (patchset #9 id:160001 of... · a76419f0
      arv authored
      Revert of ES6 computed property names (patchset #9 id:160001 of https://codereview.chromium.org/795573005/)
      
      Reason for revert:
      Crashes on Win32
      
      http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%201/builds/1357
      
      Test: mjsunit/harmony/computed-property-names
      Flags: --stress-opt --always-opt
      Command: build\Release\d8.exe --test --random-seed=-233815021 --stress-opt --always-opt --nohard-abort --nodead-code-elimination --nofold-constants --harmony-computed-property-names test\mjsunit\mjsunit.js test\mjsunit\harmony\computed-property-names.js
      
      Run #1
      Exit code: -1073741819
      Result: CRASH
      Expected outcomes: PASS
      
      Run #2
      Exit code: -1073741819
      Result: CRASH
      Expected outcomes: PASS
      
      Run #3
      Exit code: -1073741819
      Result: CRASH
      Expected outcomes: PASS
      
      Original issue's description:
      > ES6 computed property names
      >
      > This adds support for computed property names, under the flag
      > --harmony-computed-property-names, for both object literals and
      > classes.
      >
      > BUG=v8:3754
      > LOG=Y
      
      TBR=dslomov@chromium.org,wingo@igalia.com
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:3754
      
      Review URL: https://codereview.chromium.org/809433002
      
      Cr-Commit-Position: refs/heads/master@{#25825}
      a76419f0
    • arv's avatar
      ES6 computed property names · 6e38caf8
      arv authored
      This adds support for computed property names, under the flag
      --harmony-computed-property-names, for both object literals and
      classes.
      
      BUG=v8:3754
      LOG=Y
      
      Review URL: https://codereview.chromium.org/795573005
      
      Cr-Commit-Position: refs/heads/master@{#25821}
      6e38caf8
  27. 24 Sep, 2014 1 commit