1. 08 Aug, 2017 1 commit
    • Adam Klein's avatar
      Throw errors when assigning to const variables inside `with` · a9846ad4
      Adam Klein authored
      This code appears to have been wrong forever, as it only
      threw in strict mode (presumably predating ES2015 const).
      
      In order to get exactly the right behavior, special
      handling of sloppy named function expressions is required.
      Rather than polluting PropertyAttributes with another
      dummy value, this CL simply adds a bool output argument
      to Context::Lookup to indicate that case.
      
      Bug: v8:6677
      Change-Id: I34daa5080d291808f10cbaefc91d716f0b22963b
      Reviewed-on: https://chromium-review.googlesource.com/602690Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47207}
      a9846ad4
  2. 07 Aug, 2017 27 commits
  3. 06 Aug, 2017 1 commit
  4. 05 Aug, 2017 3 commits
  5. 04 Aug, 2017 8 commits
    • Adam Klein's avatar
      Mark mjsunit/wasm/atomics as slow on arm64 · 51fa1d91
      Adam Klein authored
      It started timing out on trybots after commit
      575ec863.
      
      Tbr: gdeepti@chromium.org
      Change-Id: Iab025ccbce15a6c9f978b737f064695d11704c93
      Reviewed-on: https://chromium-review.googlesource.com/602990Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47175}
      51fa1d91
    • Bill Budge's avatar
      Revert "[Memory] Experiment to try using regular version of 'new T[]'." · 93d84f28
      Bill Budge authored
      This reverts commit bec2b4d2.
      
      Reason for revert: NewArrayOOM fails.
      
      Original change's description:
      > [Memory] Experiment to try using regular version of 'new T[]'.
      > 
      > - Use normal new, vs. nothrow new.
      > - Modify NewArray to have only 1 invocation of new.
      > 
      > Bug: chromium:752056
      > Change-Id: I1a2fb3626264b1bf647af9227d55e9b54e44e8b6
      > Reviewed-on: https://chromium-review.googlesource.com/600895
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47173}
      
      TBR=bbudge@chromium.org,mlippautz@chromium.org
      
      Change-Id: I881f3b75209714d11d93fae6268171ffa9cc47a1
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:752056
      Reviewed-on: https://chromium-review.googlesource.com/602847Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47174}
      93d84f28
    • Bill Budge's avatar
      [Memory] Experiment to try using regular version of 'new T[]'. · bec2b4d2
      Bill Budge authored
      - Use normal new, vs. nothrow new.
      - Modify NewArray to have only 1 invocation of new.
      
      Bug: chromium:752056
      Change-Id: I1a2fb3626264b1bf647af9227d55e9b54e44e8b6
      Reviewed-on: https://chromium-review.googlesource.com/600895Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47173}
      bec2b4d2
    • Deepti Gandluri's avatar
      [wasm] Implement atomic logical BinOps · 575ec863
      Deepti Gandluri authored
       - Implemented ops: I32AtomicAnd, I32AtomicAnd8U, I32AtomicAnd16U, I32AtomicOr,
       I32AtomicOr8U, I32AtomicOr16U, I32AtomicXor, I32AtomicXor8U, I32AtomicXor16U
       - Refactor wasm-compiler AtomicOp to use macros
       - Tests
      
      Bug:V8:6532
      
      R=binji@chromium.org, bbudge@chromium.org, bradnelson@chromium.org
      
      Change-Id: I7e4dc8ad8cf3e211c3aef721a02778f2a4621322
      Reviewed-on: https://chromium-review.googlesource.com/600539Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47172}
      575ec863
    • Adam Klein's avatar
      [parsing] Add a UseCounter for labeled expression statements · 946f78a0
      Adam Klein authored
      This was suggested by bmeurer after running into the confusing
      example of:
      
        x => {x:x}
      
      which might appear to be an arrow function that returns an object
      literal containing its argument, but instead is an arrow function
      that does nothing.
      
      While it's unclear whether the language would change to make this
      probable programmer error an actual syntax error, we can at least
      gather some data on the question of whether we see any such code
      in the wild.
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I08202039ecf7a7a4c71ad95ecd839436b4ec2af8
      Reviewed-on: https://chromium-review.googlesource.com/600888
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47171}
      946f78a0
    • Marja Hölttä's avatar
      [parser] Skipping inner funcs: implement a bailout. · e7a46253
      Marja Hölttä authored
      In some cases, PreParser cannot replicate the Scope structure created by
      Parser. It happens esp. with arrow function parameters, since the relevant
      information is already lost by the time we figure out it's an arrow function.
      
      In these cases, PreParser should bail out of trying to create data for skipping
      inner functions.
      
      Implementation notes:
      
      - The arrow function case is more fundamental; the non-arrow case could be
        hacked together somehow if we implemented tracking is_simple for each param
        separately; but now that it's possible to bail out consistently from both
        cases, I don't think the is_simple complication is worth it.
      
      - The added mjsunit test cases are based on the test262 test cases which exposed
        the problem.
      
      - cctest/preparser/PreParserScopeAnalysis was exercising similar cases, but the
        problem didn't show up because the function parameters didn't contain
        skippable functions. Those test cases have been repurposed for testing the
        bailout.
      
      - Extra precaution: the bailout tests are in a separate file, to guard from the
        bug that a bailout case results in bailing out of *all* data creation, which
        would make all skipping tests in the same file useless.
      
      BUG=v8:5516
      
      Change-Id: I4324749a5ec602fa5d7dc27647ade0284a6842fe
      Reviewed-on: https://chromium-review.googlesource.com/599849Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47170}
      e7a46253
    • Adam Klein's avatar
      [parser] Various cleanup for async function parsing · 28f25699
      Adam Klein authored
      This patch removes a few unnecessary bits of async function
      parsing (the PrepareAsyncFunctionBody() helper method, the
      FunctionBodyType enum) by doing separate handling of
      block and single-expression async arrow functions.
      
      Change-Id: I64f837635a23eaf06d42887ca7f9ac59c768f0f2
      Reviewed-on: https://chromium-review.googlesource.com/601247
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47169}
      28f25699
    • Karl Schimpf's avatar
      Fix counting number of functions in Wasm Modules · fe0323d4
      Karl Schimpf authored
      This CL moves the recording of the number of functions in a Wasm
      module to the size read in the "functions" section of the module. The
      advantage is that all modules read this section once, making it a good
      target for collecting the data.
      
      The previous code was also broken because in one code path, it did not
      distinguish between asm.js and Wasm modules.
      
      Bug: v8:6361
      Change-Id: I6c49e91975c1730608e791036d15622d538bce77
      Reviewed-on: https://chromium-review.googlesource.com/600837Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47168}
      fe0323d4