1. 14 Dec, 2015 1 commit
  2. 10 Dec, 2015 1 commit
  3. 24 Nov, 2015 1 commit
  4. 20 Nov, 2015 1 commit
  5. 13 Nov, 2015 1 commit
  6. 10 Nov, 2015 1 commit
  7. 09 Nov, 2015 1 commit
  8. 05 Nov, 2015 5 commits
  9. 04 Nov, 2015 8 commits
  10. 03 Nov, 2015 2 commits
  11. 27 Oct, 2015 1 commit
    • yangguo's avatar
      RegExp: remove last match info override. · 85e085b7
      yangguo authored
      With ES6 21.2.5.8, step 13, we no longer have to keep up the illusion
      that matching and calling replace function is interleaved. This is
      observable through unspec'ed static properties such as RegExp.$1.
      
      Last match info not working yet.
      
      R=littledan@chromium.org
      
      Review URL: https://codereview.chromium.org/1418703003
      
      Cr-Commit-Position: refs/heads/master@{#31593}
      85e085b7
  12. 22 Oct, 2015 1 commit
  13. 16 Oct, 2015 1 commit
  14. 13 Oct, 2015 1 commit
    • mstarzinger's avatar
      Move builtin JavaScript sources into own directory. · e5320d8a
      mstarzinger authored
      This moves JavaScript source files that are bundled with V8 into a
      separate directory. The goal is to improve code readability and also
      being able to formalize ideal reviewers by subsequently adding the
      OWNERS file. These files almost exclusively contain implementations
      of methods fully specified by ES6.
      
      Note that files in the "debug" directory as well as the "d8.js" file
      aren't affected by this change.
      
      R=rossberg@chromium.org
      
      Review URL: https://codereview.chromium.org/1398733002
      
      Cr-Commit-Position: refs/heads/master@{#31230}
      e5320d8a
  15. 01 Oct, 2015 1 commit
    • bmeurer's avatar
      [es6] Fix missing bits for full @@toPrimitive support. · 2a0759d3
      bmeurer authored
      Introduce %_ToNumber intrinsic, which just calls to the existing
      ToNumberStub, and remove all uses of our custom JavaScript plus
      intrinsics based ToNumber and friends.
      
      Also replace the TO_NUMBER_INLINE macro with TO_NUMBER,
      which is currently a wrapper for %_ToNumber. Newly written JS
      code should use TO_NUMBER (similar to TO_STRING, TO_INT32,
      and friends).
      
      Also finally remove the DefaultString/DefaultNumber builtins, which
      are basically the ES5 version of ToPrimitive. Now all code uses the
      ES6 version, which is implemented in Object::ToPrimitive and
      JSReceiver::ToPrimitive in C++.
      
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg
      R=jarin@chromium.org
      BUG=v8:4307
      LOG=n
      
      Review URL: https://codereview.chromium.org/1384443002
      
      Cr-Commit-Position: refs/heads/master@{#31054}
      2a0759d3
  16. 29 Sep, 2015 1 commit
    • bmeurer's avatar
      [es6] Introduce %ToInteger and %ToLength. · 93b2b262
      bmeurer authored
      This adds ES6 compliant Object::ToInteger, Object::ToInt32,
      Object::ToUint32 and Object::ToLength, and replaces the old
      Execution wrappers of those abstract operations (which were
      not using the correct ToPrimitive).
      
      This also introduces proper %ToInteger and %ToLength runtime
      entries, with a fast path %_ToInteger supported in fullcodegen
      and Crankshaft (for now). Internal JavaScript code should use
      TO_INTEGER and TO_LENGTH respectively.
      
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg
      BUG=v8:4307
      LOG=n
      
      Review URL: https://codereview.chromium.org/1378533002
      
      Cr-Commit-Position: refs/heads/master@{#30993}
      93b2b262
  17. 23 Sep, 2015 1 commit
    • bmeurer's avatar
      [runtime] Replace %to_string_fun with %_ToString. · 7a7b692b
      bmeurer authored
      Introduce a new macro TO_STRING that maps to %_ToString and use that
      instead of calling into any of the ToString/NonStringToString JavaScript
      builtins. Also remove the TO_STRING_INLINE macro, which is basically
      obsolete with %_ToString. We still have a few uses of ToString left (via
      the utils export mechanism), where we need to investigate whether we
      will tank badly if we replace them with TO_STRING as well.
      
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg
      R=yangguo@chromium.org
      BUG=v8:4307
      LOG=n
      
      Review URL: https://codereview.chromium.org/1323543002
      
      Cr-Commit-Position: refs/heads/master@{#30895}
      7a7b692b
  18. 16 Sep, 2015 1 commit
    • bmeurer's avatar
      [builtins] Unify the String constructor. · a3d6f6cc
      bmeurer authored
      Implement the String constructor completely as native builtin,
      avoiding the need to do gymnastics in JavaScript builtin to
      properly detect the no argument case (which is different from
      the undefined argument case) and also allowing to just
      tailcall through to ToString or SymbolDescriptiveString for
      the common case. Also the JavaScript builtin was misleading
      since the case for construct call was unused, but could be
      triggered in a wrong way once we support tail calls from
      constructor functions.
      
      This refactoring allows us to properly implement subclassing
      for String builtins, once we have the correct initial_map on
      derived classes (it's merely a matter of using NewTarget
      instead of the target register now).
      
      This introduces a new %SymbolDescriptiveString runtime
      entry, which is also used by Symbol.toString() now.
      
      R=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/1344893002
      
      Cr-Commit-Position: refs/heads/master@{#30759}
      a3d6f6cc
  19. 15 Sep, 2015 1 commit
    • bmeurer's avatar
      [es6] Move builtin constructors for primitives to strict mode. · e2f1c269
      bmeurer authored
      The ES6 specification says that "Built-in functions that are ECMAScript
      function objects must be strict mode functions", which in particular
      means that you can never test for them using the "caller" field of a
      sloppy mode function.
      
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg
      R=mstarzinger@chromium.org
      BUG=v8:105
      LOG=n
      
      Review URL: https://codereview.chromium.org/1347663002
      
      Cr-Commit-Position: refs/heads/master@{#30750}
      e2f1c269
  20. 08 Sep, 2015 2 commits
  21. 04 Sep, 2015 1 commit
    • karl's avatar
      [es6] Use SubString in String{Starts,Ends}With · d42920ce
      karl authored
      Much faster and constant than always searching the whole string
      
      ````
      var allCodePoints = [];
      for (var i = 0; i < 65536; i++) allCodePoints[i] = i;
      var allCharsString = String.fromCharCode.apply(String, allCodePoints);
      
      function bench(search) {
        var counter = 0;
        print(search + " found at " + allCharsString.startsWith(search));
        var start = Date.now();
        while (counter++ < 5000000) {
          allCharsString.startsWith(search);
        }
        var end = Date.now();
        print(end - start);
        return counter;
      }
      
      print("single character");
      bench("\u0000");
      bench("\u0050");
      bench("\u1000");
      ````
      
      OLD
      
      single character
       found at true
      374
      P found at false
      559
      က found at false
      13492
      
      NEW
      
      single character
       found at true
      261
      P found at false
      146
      က found at false
      146
      
      BUG=v8:4384
      LOG=N
      
      Review URL: https://codereview.chromium.org/1321853006
      
      Cr-Commit-Position: refs/heads/master@{#30599}
      d42920ce
  22. 03 Sep, 2015 1 commit
    • bmeurer's avatar
      [es6] Initial steps towards a correct implementation of IsCallable. · 8a378f46
      bmeurer authored
      This turns the has_instance_call_handler bit on Map into an is_callable
      bit, that matches the spec definition of IsCallable (i.e. instances have
      [[Call]] internal methods).
      
      Also fix the typeof operator to properly say "function" for everything
      that is callable.
      
      Also remove the (unused) premature %_GetPrototype optimization from
      Crankshaft, which just complicated the Map bit swap.
      
      R=mstarzinger@chromium.org, rossberg@chromium.org, yangguo@chromium.org
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg
      
      Review URL: https://codereview.chromium.org/1316933002
      
      Cr-Commit-Position: refs/heads/master@{#30552}
      8a378f46
  23. 28 Aug, 2015 1 commit
  24. 19 Aug, 2015 1 commit
    • yangguo's avatar
      Native context: debug.js does not load from js builtins object anymore. · eb8c0928
      yangguo authored
      This mainly changes how we share ToBoolean, ToNumber and ToString between
      native scripts. Instead of putting them on the js builtins object, we now
      explicitly export and import those functions.
      
      I also had to change the import/export mechanism slightly. Previously,
      exports and imports are hooked up after all native scripts have been
      executed. This means that imported functions cannot be called at the time
      the native script is executed.
      
      However, since ToBoolean (and also e.g. ObjectDefineProperties) is called
      in v8natives.js, I changed the mechanism so that exports from previous
      native scripts (runtime.js for ToBoolean) is imported immediately and can
      be called.
      
      R=cbruni@chromium.org
      
      Review URL: https://codereview.chromium.org/1302533002
      
      Cr-Commit-Position: refs/heads/master@{#30244}
      eb8c0928
  25. 12 Aug, 2015 1 commit
  26. 11 Aug, 2015 1 commit
  27. 05 Aug, 2015 1 commit