1. 10 Mar, 2016 6 commits
    • zhengxing.li's avatar
      X87: [turbofan] [deoptimizer] Support inlining of ES6 tail calls. · 7b84d299
      zhengxing.li authored
        port c29a4560(r34610)
      
        original commit message:
        In case when F was called with incompatible number of arguments (and therefore
        the arguments adator frame was created), F inlines a tail call of G which then
        deopts the deoptimizer should also remove the arguments adaptor frame for F.
      
        This CL adds required machinery to the deoptimizer.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1785593002
      
      Cr-Commit-Position: refs/heads/master@{#34651}
      7b84d299
    • zhengxing.li's avatar
      X87: [undetectable] Really get comparisons of document.all right now. · 92eb11e9
      zhengxing.li authored
        port 679d9503(r34608)
      
        original commit message:
        According to https://www.w3.org/TR/html5/obsolete.html#dom-document-all,
        comparisons of document.all to other values such as strings or objects,
        are unaffected. In fact document.all only gets special treatment in
        comparisons with null or undefined according to HTML. Especially setting
        the undetectable doesn't make two distinct JSReceivers equal.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1784763002
      
      Cr-Commit-Position: refs/heads/master@{#34650}
      92eb11e9
    • v8-autoroll's avatar
      Update V8 DEPS. · 0f8cb27e
      v8-autoroll authored
      Rolling v8/tools/clang to fc7b250f6ca03bcbcd2cd1a3e4102cb639a2814a
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review URL: https://codereview.chromium.org/1784643005
      
      Cr-Commit-Position: refs/heads/master@{#34649}
      0f8cb27e
    • zhengxing.li's avatar
      X87: [runtime] Unify and simplify how frames are marked. · 7a51f8c8
      zhengxing.li authored
        port 9dcd0857 (r34571)
      
        original commit message:
        Before this CL, various code stubs used different techniques
        for marking their frames to enable stack-crawling and other
        access to data in the frame. All of them were based on a abuse
        of the "standard" frame representation, e.g. storing the a
        context pointer immediately below the frame's fp, and a
        function pointer after that. Although functional, this approach
        tends to make stubs and builtins do an awkward, unnecessary
        dance to appear like standard frames, even if they have
        nothing to do with JavaScript execution.
      
        This CL attempts to improve this by:
      
        * Ensuring that there are only two fundamentally different
          types of frames, a "standard" frame and a "typed" frame.
          Standard frames, as before, contain both a context and
          function pointer. Typed frames contain only a minimum
          of a smi marker in the position immediately below the fp
          where the context is in standard frames.
        * Only interpreted, full codegen, and optimized Crankshaft and
          TurboFan JavaScript frames use the "standard" format. All
          other frames use the type frame format with an explicit
          marker.
        * Typed frames can contain one or more values below the
          type marker. There is new magic macro machinery in
          frames.h that simplifies defining the offsets of these fields
          in typed frames.
        * A new flag in the CallDescriptor enables specifying whether
          a frame is a standard frame or a typed frame. Secondary
          register location spilling is now only enabled for standard
          frames.
        * A zillion places in the code have been updated to deal with
          the fact that most code stubs and internal frames use the
          typed frame format. This includes changes in the
          deoptimizer, debugger, and liveedit.
        * StandardFrameConstants::kMarkerOffset is deprecated,
          (CommonFrameConstants::kContextOrFrameTypeOffset
          and StandardFrameConstants::kFrameOffset are now used
          in its stead).
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1774353002
      
      Cr-Commit-Position: refs/heads/master@{#34648}
      7a51f8c8
    • littledan's avatar
      String.prototype[Symbol.iterator] does RequireObjectCoercible(this) · 43adcd3c
      littledan authored
      BUG=v8:4348
      R=adamk
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1783643002
      
      Cr-Commit-Position: refs/heads/master@{#34647}
      43adcd3c
    • littledan's avatar
      Stage restrictive declarations flag · 7297f018
      littledan authored
      This flag bans illegal (and likely useless) constructs like
      
      for (;;) function f() {}
      
      R=adamk
      BUG=v8:4824
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1781653005
      
      Cr-Commit-Position: refs/heads/master@{#34646}
      7297f018
  2. 09 Mar, 2016 34 commits