- 23 Jan, 2017 17 commits
-
-
franzih authored
For an object literal, has_seen_proto is needed to create the BoilerplateDescription. When iterating over the object properties in the AST, has_seen_proto can easily be computed. The flag in the ObjectLiteral is unnecessary. R=verwaest@chromium.org BUG=v8:5625 Review-Url: https://codereview.chromium.org/2646333002 Cr-Commit-Position: refs/heads/master@{#42601}
-
bmeurer authored
Port the fast path for accessor inlining to cached property names from Crankshaft to TurboFan. This constant-folds accesses to document in a script. R=jochen@chromium.org BUG=v8:5548 Review-Url: https://codereview.chromium.org/2646363003 Cr-Commit-Position: refs/heads/master@{#42600}
-
ahaas authored
The hardcoded constant caused a problem for the wasm fuzzer because when the maximum memory was allocated in a test case, clusterfuzz ran out of memory. with the command line flag we can set a lower limit for the fuzzer. The flag has the value of the constant as its default value, so that for everything but the fuzzers nothing should change. R=titzer@chromium.org BUG=chromium:676888 Review-Url: https://codereview.chromium.org/2626313003 Cr-Commit-Position: refs/heads/master@{#42599}
-
franzih authored
We do not want to reserve space in the backing store for index keys. Count index keys during creation of the BoilerplateDescription, and substract them for the backing store size. Correctly count index keys after encountering a property with a computed name during object literal creation. R=verwaest@chromium.org BUG=v8:5625 Review-Url: https://codereview.chromium.org/2651523002 Cr-Commit-Position: refs/heads/master@{#42598}
-
clemensh authored
As required by C++11, this CL changes the zone allocator to be able to construct and destroy arbitrary types, and accept arbitrary arguments for construct, passing them via perfect forwarding. I also change some push_back to emplace_back. Some of those did not compile before. R=ishell@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2646873004 Cr-Commit-Position: refs/heads/master@{#42597}
-
ahaas authored
I guess that a comparison with i::wasm::kV8MaxWasmTableSize was not intended here. I did not add a test because I do not even know if it is even possible to create a WasmMemoryObject with maximum_pages > i::wasm::kV8MaxWasmMemoryPages. Maybe we should replace the condition with a Check instead. R=titzer@chromium.org Review-Url: https://codereview.chromium.org/2645273004 Cr-Commit-Position: refs/heads/master@{#42596}
-
yangguo authored
R=jgruber@chromium.org BUG=v8:5530 Review-Url: https://codereview.chromium.org/2642253005 Cr-Original-Commit-Position: refs/heads/master@{#42543} Committed: https://chromium.googlesource.com/v8/v8/+/e26a58e43c51a680a0a6363e0066886f4971a41f Review-Url: https://codereview.chromium.org/2642253005 Cr-Commit-Position: refs/heads/master@{#42595}
-
yangguo authored
We are planning to add a few more debugger related bits, and are running out of compiler hints bits. The new bit field is going to be part of the debug info struct. If the debug info is not available, we store the bit field in its place on the shared function info. Review-Url: https://codereview.chromium.org/2649873002 Cr-Commit-Position: refs/heads/master@{#42594}
-
petermarshall authored
Add the operator in preparation for actual perf work. The operator is replaced by the same runtime call as before, during lowering. BUG=v8:5511 Review-Url: https://codereview.chromium.org/2639233002 Cr-Commit-Position: refs/heads/master@{#42593}
-
zhengxing.li authored
port ee9c7091 (r42561) original commit message: FAST_DOUBLE_ELEMENTS and FAST_HOLEY_DOUBLE_ELEMENTS kinds should both be handled by the runtime. BUG= Review-Url: https://codereview.chromium.org/2649053002 Cr-Commit-Position: refs/heads/master@{#42592}
-
zhengxing.li authored
The CL #42545 (https://codereview.chromium.org/2639353002 ) add SignallingNanSurvivesI32ReinterpretF32/SignallingNanSurvivesI64ReinterpretF64 tests. Those tests failed at x87 port as X87 FPU hardware will convert a sNaN to qNaN automatically. This CL skips SignallingNanSurvivesI32ReinterpretF32/SignallingNanSurvivesI64ReinterpretF64 tests for x87. BUG= Review-Url: https://codereview.chromium.org/2649843002 Cr-Commit-Position: refs/heads/master@{#42591}
-
petermarshall authored
Also, emit a NewWithSpread bytecode for CallNew AST nodes where possible, rather than desugaring in the parser. BUG=v8:5511 Review-Url: https://codereview.chromium.org/2629363002 Cr-Original-Commit-Position: refs/heads/master@{#42455} Committed: https://chromium.googlesource.com/v8/v8/+/4bae43471d5685e34d8bd74458889b83e60235a0 Review-Url: https://codereview.chromium.org/2629363002 Cr-Commit-Position: refs/heads/master@{#42590}
-
bmeurer authored
For calls from ToPrimitive we already now that the receiver cannot be null or undefined, since a property lookup succeeded before the call, which would have thrown an exception in case of null or undefined. R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2649093002 Cr-Commit-Position: refs/heads/master@{#42589}
-
zhengxing.li authored
port ea925431 (r42545) original commit message: On ia32 return statements in C++ automatically convert signalling NaNs to quiet NaNs, even when bit_cast is used. This CL removes all uses of bit_cast<float> and bit_cast<double> in the wasm compiler and wasm interpreter. BUG= Review-Url: https://codereview.chromium.org/2648203002 Cr-Commit-Position: refs/heads/master@{#42588}
-
zhengxing.li authored
port 037200e6 (r42486) original commit message: The IA32AddPair and IA32SubPair instructions were using an input register as a temporary value, which led to registers sometimes being clobbered when they shouldn't have been. This led to problems, for example, in calling printf to format doubles: printf("%f", 1.2345) => 0.61725 (on x86) BUG= Review-Url: https://codereview.chromium.org/2645233002 Cr-Commit-Position: refs/heads/master@{#42587}
-
zhengxing.li authored
port 0b8200c7 (r42444) original commit message: BUG= Review-Url: https://codereview.chromium.org/2646343002 Cr-Commit-Position: refs/heads/master@{#42586}
-
zhengxing.li authored
port 95a9b761 (r42344) original commit message: Recognize and emit in-memory comparisons of 8-bit and 16-bit values with immediate values that fit. BUG= Review-Url: https://codereview.chromium.org/2651553002 Cr-Commit-Position: refs/heads/master@{#42585}
-
- 22 Jan, 2017 1 commit
-
-
franzih authored
Property backing store size for object literals is the number of constant and named properties (possibly over-allocating for the same names). We do not reserve space in the backing store for __proto__. We do not reserve space in the backing store for index keys. Currently, we account for index keys in the runtime when iterating over the boilerplate properties. Since the boilerplate properties only include the properties up to the first computed property name, the property backing store size includes space for index keys if seen after the first computed property. R=verwaest@chromium.org BUG=v8:5625 Review-Url: https://codereview.chromium.org/2650593002 Cr-Commit-Position: refs/heads/master@{#42584}
-
- 21 Jan, 2017 3 commits
-
-
hablich authored
Revert of [build] Introduce an embedder version string (patchset #3 id:40001 of https://codereview.chromium.org/2619213002/ ) Reason for revert: Blocks roll https://codereview.chromium.org/2647183002/ 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 > > CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng > > Review-Url: https://codereview.chromium.org/2619213002 > Cr-Original-Commit-Position: refs/heads/master@{#42175} > Committed: https://chromium.googlesource.com/v8/v8/+/fc86d4329b253bf21c1dd85469f1ef4b6e5ba01a > Review-Url: https://codereview.chromium.org/2619213002 > Cr-Commit-Position: refs/heads/master@{#42582} > Committed: https://chromium.googlesource.com/v8/v8/+/2c1d1e60883882011ed50310a9b09e95dc61234a 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/2643393004 Cr-Commit-Position: refs/heads/master@{#42583}
-
mic.besace authored
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 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2619213002 Cr-Original-Commit-Position: refs/heads/master@{#42175} Committed: https://chromium.googlesource.com/v8/v8/+/fc86d4329b253bf21c1dd85469f1ef4b6e5ba01a Review-Url: https://codereview.chromium.org/2619213002 Cr-Commit-Position: refs/heads/master@{#42582}
-
gsathya authored
Convert strings to numbers if possible in the runtime call and store in excluded property list. BUG=v8:5549 Review-Url: https://codereview.chromium.org/2639333004 Cr-Commit-Position: refs/heads/master@{#42581}
-
- 20 Jan, 2017 19 commits
-
-
rmcilroy authored
This enables us to produce the list of eager inner functions for compilation in one go during the outer function's renumbering step, and avoid having to do renumbering explicitly on the inner functions, simplifying the zone ownership. BUG=v8:5203, v8:5215 Review-Url: https://codereview.chromium.org/2648503002 Cr-Original-Commit-Position: refs/heads/master@{#42540} Committed: https://chromium.googlesource.com/v8/v8/+/3541a074e241421b64ba41d81d8a99bb6ac62c5e Review-Url: https://codereview.chromium.org/2648503002 Cr-Commit-Position: refs/heads/master@{#42580}
-
jgruber authored
This moves AsyncFunctionAwait{Caught,Uncaught} to CSA, and removes async-await.js. BUG=v8:5639 Review-Url: https://codereview.chromium.org/2643023002 Cr-Commit-Position: refs/heads/master@{#42579}
-
gdeepti authored
BUG=v8:5863 R=titzer@chromium.org, dschuff@chromium.org Review-Url: https://codereview.chromium.org/2640403004 Cr-Commit-Position: refs/heads/master@{#42578}
-
jgruber authored
Revert of [regexp] Create property on result for each named capture (patchset #7 id:120001 of https://codereview.chromium.org/2630233003/ ) Reason for revert: Breaks arm64. Original issue's description: > [regexp] Store named captures on the regexp result > > This implements storing named captures on the regexp result object. > For instance, /(?<a>.)/u.exec("b") will return a result such that: > > result.group.a // "b" > > The spec proposal is not yet final, so this may still change in the future. > > BUG=v8:5437 > > Review-Url: https://codereview.chromium.org/2630233003 > Cr-Original-Commit-Position: refs/heads/master@{#42532} > Committed: https://chromium.googlesource.com/v8/v8/+/70000946eb2a9155679528702a766219a1fcf154 > Review-Url: https://codereview.chromium.org/2630233003 > Cr-Commit-Position: refs/heads/master@{#42570} > Committed: https://chromium.googlesource.com/v8/v8/+/ee94fa11ed63477393c6534c352ebac6e502396c TBR=yangguo@chromium.org,littledan@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5437 Review-Url: https://codereview.chromium.org/2639403008 Cr-Commit-Position: refs/heads/master@{#42577}
-
franzih authored
Allocate space in the backing store for computed property names. The property backing store was pre-allocated for the constant properties up to the first non-constant (computed name) property. To use lowering for storing data properties in literals with computed property names effectively, a fast store is needed, i.e., available space in the property backing store for properties with computed names. backing_store_size is the number of all properties (including computed names, but without __proto__) that is calculated in the ast and passed to the runtime function that allocates the property backing store. backing_store_size and constant_properties constitute a BoilerplateDescription. backing_store_size might be slightly too high because computed names can evaluate to the same name, but that should be a rare case so over-allocating is OK. If a property is __proto__, we don't store it as a regular property, because the map changes. Keep track of has_seen_proto in the parser to calculate the backing store size correctly. BUG=v8:5625 Review-Url: https://codereview.chromium.org/2632503003 Cr-Commit-Position: refs/heads/master@{#42576}
-
mtrofin authored
Additionally, fixed invalid check in WebAssembly.Module constructor. The constructor takes precisely one argument. BUG=v8:5875 Review-Url: https://codereview.chromium.org/2644993002 Cr-Commit-Position: refs/heads/master@{#42575}
-
mstarzinger authored
The flag in question was on by defautl for a while now and has never been supported for optimized code generated from bytecode. We no longer support eliding stack-checks within loops just in optimized code. R=bmeurer@chromium.org BUG=v8:5653 Review-Url: https://codereview.chromium.org/2643773008 Cr-Commit-Position: refs/heads/master@{#42574}
-
Michael Achenbach authored
Cr-Commit-Position: refs/heads/master@{#42573}
-
Michael Achenbach authored
Cr-Commit-Position: refs/heads/master@{#42572}
-
ishell authored
BUG= Review-Url: https://codereview.chromium.org/2645083003 Cr-Commit-Position: refs/heads/master@{#42571}
-
jgruber authored
This implements storing named captures on the regexp result object. For instance, /(?<a>.)/u.exec("b") will return a result such that: result.group.a // "b" The spec proposal is not yet final, so this may still change in the future. BUG=v8:5437 Review-Url: https://codereview.chromium.org/2630233003 Cr-Original-Commit-Position: refs/heads/master@{#42532} Committed: https://chromium.googlesource.com/v8/v8/+/70000946eb2a9155679528702a766219a1fcf154 Review-Url: https://codereview.chromium.org/2630233003 Cr-Commit-Position: refs/heads/master@{#42570}
-
machenbach authored
Also switch on validate asm in all configuration to zero out any comparisons. BUG=chromium:673246 NOTRY=true TBR=mstarzinger@chromium.org, rmcilroy@chromium.org Review-Url: https://codereview.chromium.org/2647493004 Cr-Commit-Position: refs/heads/master@{#42569}
-
mtrofin authored
BUG=v8:5876 Review-Url: https://codereview.chromium.org/2644893004 Cr-Commit-Position: refs/heads/master@{#42568}
-
tebbi authored
Create different json files for diffferent optimization attempts of the same function. This allows to analyze the graphs of early optimization attempts that lead to deopts or to produce a proper json file in the case of a deopt loop. R=danno@chromium.org Review-Url: https://codereview.chromium.org/2649513003 Cr-Commit-Position: refs/heads/master@{#42567}
-
clemensh authored
In this particular case, we just did a (lhs)op(rhs), ignoring the case that lhs and rhs might have different signedness. This CL changes that to use the proper Cmp##op##Impl implementation, which does two comparisions for signed-vs-unsigned checks, avoiding compiler errors. R=ishell@chromium.org Review-Url: https://codereview.chromium.org/2642383002 Cr-Commit-Position: refs/heads/master@{#42566}
-
mlippautz authored
Do not DCHECK live bytes as they might be inconsistent. BUG= TBR=hpayer@chromium.org NOTRY=true Review-Url: https://codereview.chromium.org/2647573004 Cr-Commit-Position: refs/heads/master@{#42565}
-
titzer authored
R=rossberg@chromium.org BUG=chromium:682659 Review-Url: https://codereview.chromium.org/2646093003 Cr-Commit-Position: refs/heads/master@{#42564}
-
marja authored
E.g., ast/ast.h uses Label but shouldn't need to include assembler.h for that. With this change, we can hope for proper layering in the future (not quite there yet). Also includes minor random include lowering and relevant IWYU fixes. BUG=v8:5294 Review-Url: https://codereview.chromium.org/2645063002 Cr-Commit-Position: refs/heads/master@{#42563}
-
rmcilroy authored
Moves ownership of the parsing Zone to ParseInfo with a shared_ptr. This is in preperation for enabling background compilation jobs for inner functions share the AST in the outer-function's parse zone memory (read-only), with the and zone being released when all compilation jobs have completed. BUG=v8:5203,v8:5215 Review-Url: https://codereview.chromium.org/2632123006 Cr-Original-Commit-Position: refs/heads/master@{#42539} Committed: https://chromium.googlesource.com/v8/v8/+/839b06b64fcaaaa9cceb2c3fd8fd5429e2932095 Review-Url: https://codereview.chromium.org/2632123006 Cr-Commit-Position: refs/heads/master@{#42562}
-