1. 12 Jul, 2017 4 commits
  2. 11 Jul, 2017 25 commits
  3. 10 Jul, 2017 11 commits
    • Adam Klein's avatar
      Make InstanceType enum a uint8_t · 41e79062
      Adam Klein authored
      This enforces that its enumeration values fit in a byte, as required
      by Map's {instance_type} field (and probably other parts of the
      system).
      
      Clang helpfully emits this error message if an enum value goes out
      of range:
      
         enumerator value 256 is not representable in the underlying type 'uint8_t' (aka 'unsigned char')
      
      Change-Id: I533cd5afc755e7163c2fd40f7b00d9adfd960895
      Reviewed-on: https://chromium-review.googlesource.com/565892Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46544}
      41e79062
    • Deepti Gandluri's avatar
      [wasm] WebAssembly.Memory constructor should accept SharedArrayBuffers. · c44228b7
      Deepti Gandluri authored
       - Implement js-api changes for WebAssembly.Memory to accept a shared parameter
       - Update allocation to use SharedArrayBuffers
      
      BUG=v8:6532
      
      R=binji@chromium.org, bradnelson@chromium.org
      
      Change-Id: I021491217568751b06fbd7b4b08b1dd88910e21d
      Reviewed-on: https://chromium-review.googlesource.com/564058
      Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
      Reviewed-by: 's avatarBen Smith <binji@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46543}
      c44228b7
    • Alexey Kozyatinskiy's avatar
      Reland "[parser] moved load property position after dot" · 61ea3243
      Alexey Kozyatinskiy authored
      This is a reland of 5b44ba0e
      Original change's description:
      > (Reland) [parser] moved load property position after dot
      > 
      > Currently LdaNamedProperty bytecode for expressions like a.b has position before dot. This CL moves this location after dot.
      > It's important for later removing of Nop bytecodes in expressions like a.b() where a is local variable, property call and property load should have the same position.
      > 
      > R=jgruber@chromium.org
      > TBR=marja@chromium.org
      > 
      > Bug: v8:6425
      > Change-Id: I05c21ca5e018da9c432c6bc963c7a96799336d1c
      > Reviewed-on: https://chromium-review.googlesource.com/562879
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46484}
      
      TBR=marja@chromium.org,jgruber@chromium.org
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      
      Bug: v8:6425
      Change-Id: I5eba5fe43ad31c5c781ffcc8c604cd9c98baa57e
      Reviewed-on: https://chromium-review.googlesource.com/565907Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46542}
      61ea3243
    • Karl Schimpf's avatar
      Make wasm memory histograms simple histograms. · ec8a5873
      Karl Schimpf authored
      This Cl fixes a fundamental misunderstanding when Wasm memory
      histograms were added. They were added using
      HISTOGRAM_MEMORY_LIST(). This macro implements aggregating memory
      histograms that handle cases memory cases that are not module
      specific.
      
      The fixed memory histograms are all module specific, and are simple
      histograms.
      
      In addition, it removes field is_sync from ModuleCompiler and
      WasmCompilationUnit, since the field is no longer needed to make the
      fixed memory histograms synchronous.
      
      Bug: v8:6361
      Change-Id: I696109b4fd1a4aadc87a6bdbbc4b7daefd58ea51
      Reviewed-on: https://chromium-review.googlesource.com/565349Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
      Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46541}
      ec8a5873
    • Karl Schimpf's avatar
      Complete set of exception handling opcodes in decoder. · 0a5cbce4
      Karl Schimpf authored
      Adds missing opcodes for exception handling for the function body decoder.
      Also adds error messages if the exception handling construct is not yet
      functional.
      
      Note that the previous prototype for catch and throw have been marked
      as not yet functional. This was done because it doesn't model
      exceptions the way the proposal suggests. Rather, they implement a
      hard-coded (c++ model) of exceptions.
      
      Bug: v8:6577
      Change-Id: Ife170b9f0cb2be91b11082e43c4795ce81a427dc
      Reviewed-on: https://chromium-review.googlesource.com/564138Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46540}
      0a5cbce4
    • Karl Schimpf's avatar
      Decode the exception section. · 9c431505
      Karl Schimpf authored
      Modifies V8 to be able to parse the exception section (defining
      exception types), when the experimental_wasm_eh flag is true.
      
      Bug: v8:6577
      Change-Id: I5d8b3fddaf5b0dec6b14ddd0992f9fb883e8dc90
      Reviewed-on: https://chromium-review.googlesource.com/561757
      Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
      Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46539}
      9c431505
    • Benedikt Meurer's avatar
      [turbofan] Widen the fast-path for JSCreateArray. · 1edb46cc
      Benedikt Meurer authored
      This improves the general Array constructor call performance (w/o
      usable AllocationSite feedback) in TurboFan by ~2x, i.e. for example
      invoking the Array constructor like this
      
        var a = Array.call(undefined, n);
      
      instead of
      
        var a = Array(n);
      
      such that the CallIC doesn't know that it's eventually calling the
      Array constructor.
      
      It also thus changes the single argument Array constructor to always
      return holey arrays. Previously the single argument case for the Array
      constructor was somehow trying to dynamically detect 0 and in that case
      returned a packed array instead of a holey one. That adds quite a lot
      of churn, and doesn't seem to be very useful, especially since this
      might lead to unnecessary feedback pollution later.
      
      R=mvstanton@chromium.org
      
      Bug: v8:2229, v8:5269, v8:6399
      Change-Id: I3d7cb9bd975ec0e491e3cdbcf1230185cfd1e3de
      Reviewed-on: https://chromium-review.googlesource.com/565721Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46538}
      1edb46cc
    • Adam Klein's avatar
      [mjsunit] Skip regress-430201 on tsan builds due to timeouts · be8983da
      Adam Klein authored
      It's already skipped (for slowness) in debug, asan, and msan builds.
      
      TBR=machenbach@chromium.org
      
      Change-Id: I1d7cb38d88e621f6d14344426bc5f931b1d6ffcd
      Reviewed-on: https://chromium-review.googlesource.com/565741Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46537}
      be8983da
    • Caitlin Potter's avatar
      [parser] avoid for-loop desugaring unless loop var may be captured · 10b9c019
      Caitlin Potter authored
      In https://chromium-review.googlesource.com/c/472247/, I avoided
      running DesugarLexicalBindingsInForStatement() if there were no lexical
      loop variables, the function was not resumable, and the variables are
      not captured by eval or a function declaration.
      
      I think it's now possible to limit this further, and only do the more
      extensive desugaring if there's a function declaration / eval() call
      in the loop body. `yield` and `await` are not an issue as those loop
      variables are written to the register file and not lost.
      
      This change just removes the `is_resumable()` condition. If it passes
      tests, I think it's safe.
      
      BUG=v8:4762, v8:5460, v8:6579
      
      Change-Id: I92d0308ad9401c1338411bc9ae9021f978803d3a
      Reviewed-on: https://chromium-review.googlesource.com/563587
      Commit-Queue: Caitlin Potter <caitp@igalia.com>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46536}
      10b9c019
    • Ulan Degenbaev's avatar
      [heap] Fix data race in JSObject::RawFastDoublePropertyAsBitsAtPut with · e4b3f6a7
      Ulan Degenbaev authored
      concurrent marking.
      
      The function should use relaxed store similar to other JSObject setters.
      
      BUG=chromium:694255
      
      Change-Id: I032f0763a5f2420d120bce976533aa0007868b97
      Reviewed-on: https://chromium-review.googlesource.com/565573Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46535}
      e4b3f6a7
    • Benedikt Meurer's avatar
      Revert "[base] Make USE a variadic template" · b707c602
      Benedikt Meurer authored
      This reverts commit 39e335c7.
      
      Reason for revert: Breaks debug builds on Linux, especially mksnapshot fails now, i.e.:
      
      FAILED: mksnapshot
      python "../../build/toolchain/gcc_link_wrapper.py" --output="./mksnapshot" -- ../../third_party/llvm-build/Release+Asserts/bin/clang++ -pie -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--no-as-needed -lpthread -Wl,--as-needed -fuse
      -ld=gold -B../../third_party/binutils/Linux_x64/Release/bin -Wl,--threads -Wl,--thread-count=4 -Wl,--icf=all -m64 -Werror -Wl,--gdb-index --sysroot=../../build/linux/debian_jessie_amd64-sysroot -L../../build/linux/debian_jessie_amd64-sysroot/lib/x86_64-linux-gnu -Wl,-rpat
      h-link=../../build/linux/debian_jessie_amd64-sysroot/lib/x86_64-linux-gnu -L../../build/linux/debian_jessie_amd64-sysroot/usr/lib/x86_64-linux-gnu -Wl,-rpath-link=../../build/linux/debian_jessie_amd64-sysroot/usr/lib/x86_64-linux-gnu -Wl,-rpath-link=. -Wl,--disable-new-dt
      ags -rdynamic -nodefaultlibs -o "./mksnapshot" -Wl,--start-group @"./mksnapshot.rsp"  -Wl,--end-group   -ldl -lpthread -lrt -lc -lm -lgcc_s
      ../../src/elements.cc:3362: error: undefined reference to 'v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)7>::Kind'
      ../../src/elements.cc:3362: error: undefined reference to 'v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)8>::Kind'
      ../../src/elements.cc:3953: error: undefined reference to 'v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)9>::Kind'
      ../../src/profiler/heap-snapshot-generator.cc:187: error: undefined reference to 'v8::internal::(anonymous namespace)::SnapshotSizeConstants<4ul>::kExpectedHeapGraphEdgeSize'
      ../../src/elements.cc:3953: error: undefined reference to 'v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)10>::Kind'
      ../../src/profiler/heap-snapshot-generator.cc:198: error: undefined reference to 'v8::internal::(anonymous namespace)::SnapshotSizeConstants<4ul>::kExpectedHeapEntrySize'
      ../../src/profiler/heap-snapshot-generator.cc:199: error: undefined reference to 'v8::internal::(anonymous namespace)::SnapshotSizeConstants<8ul>::kExpectedHeapGraphEdgeSize'
      ../../src/profiler/heap-snapshot-generator.cc:200: error: undefined reference to 'v8::internal::(anonymous namespace)::SnapshotSizeConstants<8ul>::kExpectedHeapEntrySize'
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      ninja: build stopped: subcommand failed.
      
      Original change's description:
      > [base] Make USE a variadic template
      > 
      > This will allow for passing more than one variable. This is
      > particularly interesting for calling a method on each type in a
      > parameter pack, as in:
      > 
      > template<typename... T>
      > void foo(T&&... ts) {
      >   USE(do_something(ts)...);
      > }
      > 
      > Drive-by fix: Allow to pass arbitrary types to USE, including
      > references. This might prevent a copy for pass-by-value.
      > 
      > R=​ishell@chromium.org
      > 
      > Change-Id: I8f894d730bbcd195ed83705f98771994b4bc906f
      > Reviewed-on: https://chromium-review.googlesource.com/565561
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46527}
      
      TBR=clemensh@chromium.org,ishell@chromium.org
      
      Change-Id: Ibd3f0529e7a3136c4bcac15443da3d9f8dde8510
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/565141Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46534}
      b707c602