Commit Graph

36683 Commits

Author SHA1 Message Date
bradnelson
b1cfa6448c [wasm][asm.js] Ensure final validation phase runs.
Asm.js modules missing exports fail to run the last phase of
validation. Adding an explicit check for this.

BUG=676573
R=titzer@chromium.org,aseemgarg@chromium.org

Review-Url: https://codereview.chromium.org/2620893002
Cr-Commit-Position: refs/heads/master@{#42191}
2017-01-10 17:47:21 +00:00
bradnelson
e8188a2d99 [wasm][asm.js] Exclude zero left hand side in arm64 isel.
BUG=641885
R=titzer@chromium.org,rossberg@chromium.org

Review-Url: https://codereview.chromium.org/2620953002
Cr-Commit-Position: refs/heads/master@{#42190}
2017-01-10 17:46:11 +00:00
machenbach
e88e668e81 Revert of [foozzie] Pass startup test (patchset #1 id:1 of https://codereview.chromium.org/2623743004/ )
Reason for revert:
Setting the BAD_BUILDS_CHECK env variable should
be enough. Lets revert this as the code doesn't
look particularly good. There must be another
problem still that needs investigation.

Original issue's description:
> [foozzie] Pass startup test
>
> This makes sure the harness passes when called without test case.
>
> BUG=chromium:673246
> NOTRY=true
> TBR=tandrii@chromium.org,mbarbella@chromium.org
>
> Review-Url: https://codereview.chromium.org/2623743004
> Cr-Commit-Position: refs/heads/master@{#42183}
> Committed: ede2fc1ff0

TBR=tandrii@chromium.org,mbarbella@chromium.org,mmoroz@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:673246

Review-Url: https://codereview.chromium.org/2628493003
Cr-Commit-Position: refs/heads/master@{#42189}
2017-01-10 17:18:59 +00:00
titzer
6921b71d41 [test] Fix test-api.cc test for caching of FunctionTemplate.
R=verwaest@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2627543004
Cr-Commit-Position: refs/heads/master@{#42188}
2017-01-10 16:59:57 +00:00
marja
03762b8488 objects.h splitting: move ModuleInfo
Including a fix: object-macros.h needs to be the last include: otherwise
we'll have a problem when a file does this:

#include "object-macros.h"
#include "x.h" // x.h also includes object-macros.h

BUG=v8:5402

Review-Url: https://codereview.chromium.org/2623573003
Cr-Commit-Position: refs/heads/master@{#42187}
2017-01-10 16:05:34 +00:00
epertoso
bf67ce5f55 [turbofan] Do Smi comparison without untagging when lowering SpeculativeNumber(Compare).
BUG=

Review-Url: https://codereview.chromium.org/2626603002
Cr-Commit-Position: refs/heads/master@{#42186}
2017-01-10 15:46:21 +00:00
ishell
de24227234 [ic][stubs] Move more IC-related methods from CSA to AccessorAssembler.
... and reshuffle it a bit.

BUG=v8:5495

Review-Url: https://codereview.chromium.org/2619823005
Cr-Commit-Position: refs/heads/master@{#42185}
2017-01-10 15:45:11 +00:00
rossberg
8e9c90baa0 Make .prototype properties of Wasm constructors read-only
R=titzer@chromium.org
BUG=v8:5817

Review-Url: https://codereview.chromium.org/2620783005
Cr-Commit-Position: refs/heads/master@{#42184}
2017-01-10 15:40:57 +00:00
machenbach
ede2fc1ff0 [foozzie] Pass startup test
This makes sure the harness passes when called without test case.

BUG=chromium:673246
NOTRY=true
TBR=tandrii@chromium.org,mbarbella@chromium.org

Review-Url: https://codereview.chromium.org/2623743004
Cr-Commit-Position: refs/heads/master@{#42183}
2017-01-10 15:34:58 +00:00
hablich
f3026389ff Revert of [build] Introduce an embedder version string (patchset #2 id:20001 of https://codereview.chromium.org/2619213002/ )
Reason for revert:
Seems to break the Chromium build: https://codereview.chromium.org/2619193005/

Message:

[1832/9671] CXX obj/v8/v8_base/version.o
FAILED: obj/v8/v8_base/version.o
/b/c/cipd/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/v8/v8_base/version.o.d -DV8_DEPRECATION_WARNINGS -DDCHECK_ALWAYS_ON=1 -DUSE_UDEV -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DUSE_PROPRIETARY_CODECS -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=289944-2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DV8_I18N_SUPPORT -DENABLE_HANDLE_ZAPPING -DV8_USE_EXTERNAL_STARTUP_DATA -DV8_TARGET_ARCH_X64 -DDEBUG -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -Igen -I../../v8 -I../../v8/include -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -B../../third_party/binutils/Linux_x64/Release/bin -fcolor-diagnostics -fdebug-prefix-map=/b/c/b/linux/src=. -m64 -march=x86-64 -pthread -g1 --sysroot=../../build/linux/debian_wheezy_amd64-sysroot -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-ipc -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Werror -Wall -Wno-unused-variable -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -Wsign-compare -Winconsistent-missing-override -Wshorten-64-to-32 -O3 -fno-ident -fdata-sections -ffunction-sections -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -fno-rtti -fno-exceptions -Wno-deprecated -c ../../v8/src/version.cc -o obj/v8/v8_base/version.o
../../v8/src/version.cc:42:34: error: use of undeclared identifier 'V8_EMBEDDER_STRING'
const char* Version::embedder_ = V8_EMBEDDER_STRING;
                                 ^
1 error generated.

Original issue's description:
> [build] Introduce an embedder version string
>
> Sometimes, the embedder might want to merge a fix to an abandoned branch
> or to a supported branch but the fix is not relevant to Chromium.
> This adds a new version string that the embedder can set on compile time
> and that will be appended to the official V8 version.
> The separator must be provided in the string. For instance, to have a
> full version string like "5.5.372.37.custom.1", the embedder must set
> V8_EMBEDDER_STRING to ".custom.1".
>
> Related Node.js issue: https://github.com/nodejs/node/pull/9754
>
> BUG=v8:5740
> R=machenbach@chromium.org,hablich@chromium.com,ofrobots@google.com
>
> Review-Url: https://codereview.chromium.org/2619213002
> Cr-Commit-Position: refs/heads/master@{#42175}
> Committed: fc86d4329b

TBR=hablich@chromium.com,machenbach@chromium.org,ofrobots@google.com,mic.besace@gmail.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5740

Review-Url: https://codereview.chromium.org/2621033002
Cr-Commit-Position: refs/heads/master@{#42182}
2017-01-10 15:21:29 +00:00
ahaas
8bdcc77f22 [wasm] TrapIf and TrapUnless TurboFan operators implemented on arm64.
Please take a special look at the code I generate to call the runtime
function for the traps. The correct handling of csp vs jssp seems to be
quite tricky.

Original commit message:
[wasm] Introduce the TrapIf and TrapUnless operators to generate trap code.

Some instructions in WebAssembly trap for some inputs, which means that the
execution is terminated and (at least at the moment) a JavaScript exception is
thrown. Examples for traps are out-of-bounds memory accesses, or integer
divisions by zero.

Without the TrapIf and TrapUnless operators trap check in WebAssembly introduces 5
TurboFan nodes (branch, if_true, if_false, trap-reason constant, trap-position
constant), in addition to the trap condition itself. Additionally, each
WebAssembly function has four TurboFan nodes (merge, effect_phi, 2 phis) whose
number of inputs is linear to the number of trap checks in the function.
Especially for functions with high numbers of trap checks we observe a
significant slowdown in compilation time, down to 0.22 MiB/s in the sqlite
benchmark instead of the average of 3 MiB/s in other benchmarks. By introducing
a TrapIf common operator only a single node is necessary per trap check, in
addition to the trap condition. Also the nodes which are shared between trap
checks (merge, effect_phi, 2 phis) would disappear. First measurements suggest a
speedup of 30-50% on average.

This CL only implements TrapIf and TrapUnless on x64. The implementation is also
hidden behind the --wasm-trap-if flag.

Please take a special look at how the source position is transfered from the
instruction selector to the code generator, and at the context that is used for
the runtime call.

R=titzer@chromium.org, georgia.kouveli@arm.com, v8-arm-ports@googlegroups.com

Review-Url: https://codereview.chromium.org/2619203005
Cr-Commit-Position: refs/heads/master@{#42181}
2017-01-10 15:12:56 +00:00
jochen
a3ea32f656 Fix disabling of inlining of API functions for TF with call stats
R=verwaest@chromium.org,epertoso@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2620713003
Cr-Commit-Position: refs/heads/master@{#42180}
2017-01-10 14:28:42 +00:00
leszeks
6873f14b60 [turbofan] Allow indexed access to node inputs/input_edges
Node::InputCount() and ::InputAt() have to check for inline/out-of-line
inputs every time they are called. The compiler doesn't seem to be very
good at caching the result of this check, meaning that it (and all its
jumps) would happen for every node access.

Previously we would get around this sometimes, by using Node::inputs(),
which returned a Node::Inputs iterable over node inputs. However,
sometimes node access is more convenient using an index, or we also
want to access the count. This patch adds an index accessor and 'count'
method to Node::Inputs, and replaces several uses of InputCount and
InputAt with this accessor.

Review-Url: https://codereview.chromium.org/2617123002
Cr-Commit-Position: refs/heads/master@{#42179}
2017-01-10 13:55:03 +00:00
kozyatinskiy
754736d26c [inspector] async stacks for Promise.then calls...
... which were done after the promise has been resolved.

Goal of this CL - change promise instrumentation to support better callbacks, chained after promise resolution and prepare instrumentation for adding new asyncTaskCreated instrumentation.

Instrumentation changes:
- asyncTaskScheduled(recurring) when promise is fulfilled or rejected,
- asyncTaskCancelled when promise is collected (since [1] we can be sure that promise will survive scheduled microtasks).

Minor changes:
- async task type in inspector <-> debugger API transferred by enum instead of string,
- Debug manages async task ids based on promise objects.

More details: https://docs.google.com/document/d/1u19N45f1gSF7M39mGsycJEK3IPyJgIXCBnWyiPeuJFE

[1] https://codereview.chromium.org/2581503003/

BUG=chromium:632829,v8:5738
R=dgozman@chromium.org,yangguo@chromium.org,gsathya@chromium.org

Review-Url: https://codereview.chromium.org/2578923002
Cr-Commit-Position: refs/heads/master@{#42178}
2017-01-10 12:54:12 +00:00
ishell
0f159f5973 [runtime] Add MapUpdater class that manages all kinds of map updates.
... including property reconfiguring, elements kind change and migration
of a map to an up-to-date non-deprecated version.

BUG=v8:5495

Review-Url: https://codereview.chromium.org/2601643002
Cr-Commit-Position: refs/heads/master@{#42177}
2017-01-10 12:42:53 +00:00
bbudge
8dfea24e3d [ARM] Add vrecpe, vrecps, vrsqrte, vrsqrts instructions to assembler.
- Disassembler, simulator support too.
LOG=N
BUG=v8:4124

Review-Url: https://codereview.chromium.org/2600153002
Cr-Commit-Position: refs/heads/master@{#42176}
2017-01-10 12:36:59 +00:00
mic.besace
fc86d4329b [build] Introduce an embedder version string
Sometimes, the embedder might want to merge a fix to an abandoned branch
or to a supported branch but the fix is not relevant to Chromium.
This adds a new version string that the embedder can set on compile time
and that will be appended to the official V8 version.
The separator must be provided in the string. For instance, to have a
full version string like "5.5.372.37.custom.1", the embedder must set
V8_EMBEDDER_STRING to ".custom.1".

Related Node.js issue: https://github.com/nodejs/node/pull/9754

BUG=v8:5740
R=machenbach@chromium.org,hablich@chromium.com,ofrobots@google.com

Review-Url: https://codereview.chromium.org/2619213002
Cr-Commit-Position: refs/heads/master@{#42175}
2017-01-10 12:34:10 +00:00
marja
8f1353256f PreParser scope analysis: simplify DeclareAndInitializeVariables.
Now we have declarations too, so it doesn't matter whether preparser
produces the same unresolved variables as the parser.

BUG=v8:5501, v8:5516
R=verwaest@chromium.org

Review-Url: https://codereview.chromium.org/2623583004
Cr-Commit-Position: refs/heads/master@{#42174}
2017-01-10 12:33:01 +00:00
jochen
ed43c63e26 Remove API check for interceptors to notify us of modifying the receiver
BUG=chromium:679345
R=verwaest@chromium.org

Review-Url: https://codereview.chromium.org/2622873002
Cr-Commit-Position: refs/heads/master@{#42173}
2017-01-10 12:22:21 +00:00
clemensh
544bd08c7f [wasm] Remove another unnecessary undefined-instance check
BUG=v8:5620
R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2620973002
Cr-Commit-Position: refs/heads/master@{#42172}
2017-01-10 11:45:21 +00:00
jkummerow
099abc58a1 [cleanup] Port KeyedLoadIC_{Slow,Miss} to TF and drop unused IC handler code
BUG=v8:5269

Review-Url: https://codereview.chromium.org/2623483002
Cr-Commit-Position: refs/heads/master@{#42171}
2017-01-10 11:40:53 +00:00
machenbach
32c0dff263 Revert of Internalize strings in-place (patchset #16 id:300001 of https://codereview.chromium.org/2549773002/ )
Reason for revert:
gc stress failures:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/8024

Original issue's description:
> Internalize strings in-place
>
> using newly introduced ThinStrings, which store a pointer to the actual,
> internalized string they represent.
>
> BUG=v8:4520
>
> Review-Url: https://codereview.chromium.org/2549773002
> Cr-Commit-Position: refs/heads/master@{#42168}
> Committed: af51befe69

TBR=ishell@chromium.org,hpayer@chromium.org,bmeurer@chromium.org,jkummerow@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4520

Review-Url: https://codereview.chromium.org/2621913002
Cr-Commit-Position: refs/heads/master@{#42170}
2017-01-10 11:33:04 +00:00
marja
b233776208 PreParsing inner funcs: make scope analysis even more complete.
This adds tracking the following:
- Let / var declarations in for loops

BUG=v8:5501, v8:5516

Review-Url: https://codereview.chromium.org/2616393002
Cr-Commit-Position: refs/heads/master@{#42169}
2017-01-10 11:14:53 +00:00
jkummerow
af51befe69 Internalize strings in-place
using newly introduced ThinStrings, which store a pointer to the actual,
internalized string they represent.

BUG=v8:4520

Review-Url: https://codereview.chromium.org/2549773002
Cr-Commit-Position: refs/heads/master@{#42168}
2017-01-10 10:58:03 +00:00
machenbach
d1f347fa54 [foozzie] Add correctness-fuzzer-archive builder's mb config
Related to:
https://chromium-review.googlesource.com/c/426618

BUG=chromium:673246
NOTRY=true
NOTREECHECKS=true
TBR=tandrii@chromium.org,jochen@chromium.org

Review-Url: https://codereview.chromium.org/2628483003
Cr-Commit-Position: refs/heads/master@{#42167}
2017-01-10 10:54:04 +00:00
machenbach
0bdb469007 [foozzie] Add correctness fuzzer resources to build output
This adds the correctness fuzzer harness files to the output
directory guarded by a gn arg.

The switch will be turned on on the builder uploading builds to
clusterfuzz.

BUG=chromium:673246
NOTRY=true
TBR=tandrii@chromium.org,jochen@chromium.org

Review-Url: https://codereview.chromium.org/2623843002
Cr-Commit-Position: refs/heads/master@{#42166}
2017-01-10 10:19:21 +00:00
marja
cd9ec3d29c Fix irregexp build after r42140
BUG=v8:5402

Review-Url: https://codereview.chromium.org/2628473003
Cr-Commit-Position: refs/heads/master@{#42165}
2017-01-10 10:16:47 +00:00
clemensh
4751959d1e [wasm] Remove obsolete comment
BUG=v8:5766
R=ahaas@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2622863002
Cr-Commit-Position: refs/heads/master@{#42164}
2017-01-10 10:00:49 +00:00
ahaas
a2081b2d7c [wasm] The exports property of a wasm instance should always exist
R=clemensh@chromium.org
BUG=chromium:663994

Review-Url: https://codereview.chromium.org/2622563002
Cr-Commit-Position: refs/heads/master@{#42163}
2017-01-10 09:55:10 +00:00
bbudge
0df234b0ed Revert of [WASM] Fix failing Wasm SIMD F32x4 tests. (patchset #7 id:130001 of https://codereview.chromium.org/2594043002/ )
Reason for revert:
F32x4Add / Sub are still failing. I'll have to investigate on ARM hardware when I get back.

Original issue's description:
> [WASM] Fix failing Wasm SIMD F32x4 tests.
> - Perform lane checks using FP compare instead of reinterpret casts. 0 and -0
> will be different under I32 compare.
> - Some arithmetic operations can generate NaN results, such as adding -Inf
> and +Inf. Skip these tests until we have a way to do more sophisticated
> FP comparisons in the SIMD tests.
> - Eliminate a redundant F32x4 parameter for FP SIMD vector checking. We will only have this one FP type.
>
> LOG=N
> BUG=v8:4124
>
> Review-Url: https://codereview.chromium.org/2594043002
> Cr-Commit-Position: refs/heads/master@{#42154}
> Committed: 5560bbb498

TBR=titzer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4124

Review-Url: https://codereview.chromium.org/2624713002
Cr-Commit-Position: refs/heads/master@{#42162}
2017-01-10 09:34:32 +00:00
bmeurer
a3859e48c3 [crankshaft] Also inline Math.ceil.
Inline calls to Math.ceil(x) as -Math.floor(-x) via the existing fast
path in Crankshaft.

R=ishell@chromium.org
BUG=v8:5782

Review-Url: https://codereview.chromium.org/2621903002
Cr-Commit-Position: refs/heads/master@{#42161}
2017-01-10 08:33:51 +00:00
jgruber
ca4d8136ee [async-await] Remove call indirection in Create and Reject
Instead of exporting/importing PromiseCreate and RejectPromise and going
through them, just call the runtime function / the TF builtin on the
context directly.

BUG=v8:5639

Review-Url: https://codereview.chromium.org/2599003002
Cr-Commit-Position: refs/heads/master@{#42160}
2017-01-10 08:06:48 +00:00
v8-autoroll
9691f6acbd Update V8 DEPS.
Rolling v8/build: 87eca92..da5025b

Rolling v8/third_party/catapult: 487c2d0..886ff59

Rolling v8/tools/clang: d150023..b644731

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Review-Url: https://codereview.chromium.org/2619903003
Cr-Commit-Position: refs/heads/master@{#42159}
2017-01-10 04:20:54 +00:00
bradnelson
be10e68f39 Forbid non-locals/keyed-property calls to allow interleaved compile.
Deferred function call validation is required to support out of order
asm.js function declaration. Unfortunately, since we've started interleaving
validation and asm-wasm building, we don't check names are resolved until
the end.
Fortunately, undefined names can be detected from their CallType.
Check this at asm-typer time.

BUG=676797
R=aseemgarg@chromium.org,titzer@chromium.org

Review-Url: https://codereview.chromium.org/2615443003
Cr-Commit-Position: refs/heads/master@{#42158}
2017-01-10 04:07:16 +00:00
zhengxing.li
0dde3045ad X87: [FeedbackVector] Infrastructure for literal arrays in the vector.
port 38602f1ff5 (r42146)

  original commit message:
  This changes the NewClosure interface descriptor, but ignores
  the additional vector/slot arguments for now. The feedback vector
  gets larger, as it holds a space for each literal array. A follow-on
  CL will constructively use this space.

BUG=

Review-Url: https://codereview.chromium.org/2616403007
Cr-Commit-Position: refs/heads/master@{#42157}
2017-01-10 04:04:53 +00:00
gsathya
8d19859c9e [pattern rewriter] Dont return value from void function
R=adamk@chromium.org

Review-Url: https://codereview.chromium.org/2626493002
Cr-Commit-Position: refs/heads/master@{#42156}
2017-01-10 03:07:32 +00:00
danno
8e19a2c497 [stubs] Ensure generated CalculateNewElementsCapacity is identical to runtime version
The original TF port didn't maintain the same semantics as the CS/runtime implementation, and in fact introduced a bug that grew capacity too slowly on
32-bit platforms.

R=ishell@chromium.org
LOG=N

Review-Url: https://codereview.chromium.org/2617393002
Cr-Commit-Position: refs/heads/master@{#42155}
2017-01-10 01:48:11 +00:00
bbudge
5560bbb498 [WASM] Fix failing Wasm SIMD F32x4 tests.
- Perform lane checks using FP compare instead of reinterpret casts. 0 and -0
will be different under I32 compare.
- Some arithmetic operations can generate NaN results, such as adding -Inf
and +Inf. Skip these tests until we have a way to do more sophisticated
FP comparisons in the SIMD tests.
- Eliminate a redundant F32x4 parameter for FP SIMD vector checking. We will only have this one FP type.

LOG=N
BUG=v8:4124

Review-Url: https://codereview.chromium.org/2594043002
Cr-Commit-Position: refs/heads/master@{#42154}
2017-01-09 23:11:17 +00:00
bbudge
ab14a13601 [ARM] Add get_q_register, set_q_register overloads for NEON instructions.
Adds overloads for float, int32, int16, uint16, int8 and uint8 arrays.

LOG=N
BUG=v8:4124

Review-Url: https://codereview.chromium.org/2619223002
Cr-Commit-Position: refs/heads/master@{#42153}
2017-01-09 23:10:06 +00:00
littledan
788c96a955 [intl] Remove redundant type checking system
Previously, the Intl implementation tracked types two ways:
 - In the intl_initialized_marker_symbol
 - In various named properties of the intl_impl_object_symbol value

As far as I can tell, these will never disagree with each other,
modulo bugs in Intl itself. This patch removes the second type
checking system.

This reland includes a fixed type check for
Intl.DateTimeFormat.prototype.formatToParts , which is the only Intl
method which is not bound. All future methods will follow this
pattern.

The second reland ensures that a newly inserted test is only run
if Intl is present.

BUG=v8:5751,chromium:677055, v8:4962
CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng

TBR=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2623683002
Cr-Commit-Position: refs/heads/master@{#42152}
2017-01-09 22:24:57 +00:00
rmcilroy
f377d9f364 [TurboFan] Reduce zone memory usage in register-allocator-verifier.
Avoid allocating local objects in the outer zone, instead create a new inner zone
in ValidatePendingAssessment.

BUG=v8:5796

Review-Url: https://codereview.chromium.org/2617413002
Cr-Commit-Position: refs/heads/master@{#42151}
2017-01-09 18:32:45 +00:00
machenbach
6d82e6182b [foozzie] Fix path to metadata
This makes sure the metadata is found during minimization. Also renames
the test files to fit the naming pattern.

BUG=chromium:673246
NOTRY=true
TBR=tandrii@chromium.org,mbarbella@chromium.org

Review-Url: https://codereview.chromium.org/2622653002
Cr-Commit-Position: refs/heads/master@{#42150}
2017-01-09 18:19:40 +00:00
adamk
2b961cec80 Tiny fix for sloppy function map 'name' descriptor attributes
I can't actually figure out how to trigger a change in behavior here,
but it looks like we should be passing the same attributes both to
the accessor and the descriptor.

R=verwaest@chromium.org

Review-Url: https://codereview.chromium.org/2616843005
Cr-Commit-Position: refs/heads/master@{#42149}
2017-01-09 18:17:19 +00:00
danno
5c15115e8e [x64] Fix code generation of testw and add tests
BUG=v8:5798
R=epertoso@chromium.org
LOG=N

Review-Url: https://codereview.chromium.org/2619263002
Cr-Commit-Position: refs/heads/master@{#42148}
2017-01-09 18:11:20 +00:00
rdevlin.cronin
e6e968d0e6 Fix String16's move constructor
String16 had a pseudo move constructor that took a const String16&&. The
problem with this is that the point of moving objects is the ability to
clobber the underlying data. If we look at this particular case, the
move ctor tried to then std::move the underlying std::basic_string<>;
this results in passing a const std::basic_string<>&& to the
basic_string ctor. This resolves to the const std::basic_string<>&
*copy* ctor. So in the end, we haven't moved anything.

Fix this by taking a mutable rvalue reference that allows the moving to
work as expected.

BUG=None

Review-Url: https://codereview.chromium.org/2616973002
Cr-Commit-Position: refs/heads/master@{#42147}
2017-01-09 16:15:50 +00:00
mvstanton
38602f1ff5 [FeedbackVector] Infrastructure for literal arrays in the vector.
This changes the NewClosure interface descriptor, but ignores
the additional vector/slot arguments for now. The feedback vector
gets larger, as it holds a space for each literal array. A follow-on
CL will constructively use this space.

BUG=v8:5456

Review-Url: https://codereview.chromium.org/2614373002
Cr-Commit-Position: refs/heads/master@{#42146}
2017-01-09 15:31:00 +00:00
bjaideep
e7fc42796c s390: Fix FunctionBodyDecoderTest to compile with gcc4.8.5
GCC4.8.5 on s390 emits warning "array subscript is above array bounds"
for line "code[pos + 1] = kLocalVoid;". The warning seems to be
correct because code[sizeof(code)] should be out of bounds.
I'm suggesting to run the loop till "sizeof(code) - 1" which GCC(4.8.5)
agrees with. Although this means the last byte is missed, but it should
be safe to do since the last few bytes are "0xb" (kExprEnd) and the
offending statement is only run when byte=kExprBlock.

R=titzer@chromium.org, mstarzinger@chromium.org, bradnelson@chromium.org
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2619063002
Cr-Commit-Position: refs/heads/master@{#42145}
2017-01-09 15:20:13 +00:00
rmcilroy
63952fd498 [Interpreter] Add leszeks@ to OWNERS
Review-Url: https://codereview.chromium.org/2622453003
Cr-Commit-Position: refs/heads/master@{#42144}
2017-01-09 14:33:03 +00:00
verwaest
6e17ea901a [counters] Add counter scopes for the Compiler::Analyze phases
BUG=

Review-Url: https://codereview.chromium.org/2579243003
Cr-Commit-Position: refs/heads/master@{#42143}
2017-01-09 14:22:07 +00:00
clemensh
02ae44b77d Forbid storing objects in new space in Code header
If you try to store an object in new space to the Code header, it will
be added to the store buffer, and a DCHECK will fail later, since Code
objects should never occur in the store buffer.

This CL adds DCHECKs to catch such assignments early. Once we handle
this case better, they can be removed again.

R=mstarzinger@chromium.org, ulan@chromium.org
BUG=chromium:674535

Review-Url: https://codereview.chromium.org/2587073002
Cr-Commit-Position: refs/heads/master@{#42142}
2017-01-09 13:58:40 +00:00