- 20 Feb, 2017 1 commit
-
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/6d17aae..3e739fd TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: Ibb3a878d44b3fd56e95bbfa608500761c882bd21 Reviewed-on: https://chromium-review.googlesource.com/444426Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#43301}
-
- 19 Feb, 2017 2 commits
-
-
Georg Neis authored
The bytecode generator did not necessarily know for which scope, and thus language mode, it was generating code, because it only tracked scopes that have a context. This led to wrong behavior in some examples involving class expressions (which are always in strict mode). With this CL, the bytecode generator explicitly tracks the current scope, independent of whether it has a context. BUG=v8:5927 Change-Id: Ifa6b3ee5e13e07b63d00e74c7f557a328633c88b Reviewed-on: https://chromium-review.googlesource.com/444785 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#43300}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/35fe3e2..6d17aae Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/36a5082..84a7af6 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I102ea8b7361db854fcdd736e5e392f25690e0b1b Reviewed-on: https://chromium-review.googlesource.com/444507Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#43299}
-
- 18 Feb, 2017 4 commits
-
-
vabr authored
Currently, typeof o, where o is an undetectable callable object (such as document.all), returns 'function' if optimised. It should, however, return 'undefined'. This CL excludes undetectable objects from the optimization resulting in type 'function' and renames the related code to reflect that. BUG=v8:5972 R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2697063002 Cr-Commit-Position: refs/heads/master@{#43298}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/1ecc6e7..35fe3e2 Rolling v8/test/wasm-js: https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+log/b96d096..193fcb4 Rolling v8/tools/swarming_client: https://chromium.googlesource.com/external/swarming.client/+log/ebc8dab..11e31af TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: Ice84eb04c8cad9444b7062826cb7dd422e862dd3 Reviewed-on: https://chromium-review.googlesource.com/444506Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#43297}
-
gdeepti authored
Currently, the default name for wasm functions in generated code is 'wasm', tag wasm functions with the index into the function table to identify functions. Snippets of sample output with --print-code below. Before: --- Code --- kind = WASM_FUNCTION name = wasm compiler = turbofan After: --- Code --- kind = WASM_FUNCTION name = wasm#200 compiler = turbofan R=mtrofin@chromium.org Review-Url: https://codereview.chromium.org/2690113012 Cr-Commit-Position: refs/heads/master@{#43296}
-
mtrofin authored
Two controls, one for instantiation and one for compilation. They allow the embedder (e.g. Chrome) check properties of the parameters of those two operations, and decide if they are allowed to continue. For example, Chrome may now decline compilation of certain size buffers, in synchronous cases; same for instantiation (where the buffer size refers to the size of the buffer containing wasm wire bytes) BUG=v8:5981 Review-Url: https://codereview.chromium.org/2699843003 Cr-Commit-Position: refs/heads/master@{#43295}
-
- 17 Feb, 2017 31 commits
-
-
gsathya authored
Adds five new TF builtins for the spec defined functions/closures. This follows mechanism similar to promise resolving functions approach where we store the closure variables in a custom context. Adds a new --harmony-promise-finally flag. BUG=v8:5967 Review-Url: https://codereview.chromium.org/2695753002 Cr-Commit-Position: refs/heads/master@{#43294}
-
bmeurer authored
Failed instance migration should only be reported if the map of the object was originally marked as deprecated. Otherwise it's pretty confusing to investigate deoptimizations. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2700143002 Cr-Commit-Position: refs/heads/master@{#43293}
-
binji authored
BUG=v8:5906 R=machenbach@chromium.org Review-Url: https://codereview.chromium.org/2697723004 Cr-Commit-Position: refs/heads/master@{#43292}
-
Georg Neis authored
Until recently, it sometimes did. BUG= Change-Id: I8785c1865909e6f46693b71c9146d4fa17114fce Reviewed-on: https://chromium-review.googlesource.com/444188 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#43291}
-
danno authored
Specifically, add bytecodes for Call0, Call1, Call2, CallProperty0, CallProperty1, and CallProperty2. Also share the bytecode handler code between between equivalent CallX and CallPropertyX handlers. Review-Url: https://codereview.chromium.org/2684993002 Cr-Commit-Position: refs/heads/master@{#43290}
-
eholk authored
This is the beginning of a new fuzzer that generates correct-by-construction Wasm modules. This should allow us to better exercise the compiler and correctness aspects of fuzzing. It is based off of ahaas' original Wasm fuzzer. At the moment, it can generate expressions made up of most binops, and also nested blocks with unconditional breaks. Future CLs will add additional constructs, such as br_if, loops, memory access, etc. The way the fuzzer works is that it starts with an array of arbitrary data provided by libfuzzer. It uses the data to generate an expression. Care is taken to make use of the entire string. Basically, the generator has a bunch of grammar-like rules for how to construct an expression of a given type. For example, an i32 can be made by adding two other i32s, or by wrapping an i64. The process then continues recursively until all the data is consumed. We generate an expression from a slice of data as follows: * If the slice is less than or equal to the size of the type (e.g. 4 bytes for i32), then it will emit the entire slice as a constant. * Otherwise, it will consume the first 4 bytes of the slice and use this to select which rule to apply. Each rule then consumes the remainder of the slice in an appropriate way. For example: * Unary ops use the remainder of the slice to generate the argument. * Binary ops consume another four bytes and mod this with the length of the remaining slice to split the slice into two parts. Each of these subslices are then used to generate one of the arguments to the binop. * Blocks are basically like a unary op, but a stack of block types is maintained to facilitate branches. For blocks that end in a break, the first four bytes of a slice are used to select the break depth and the stack determines what type of expression to generate. The goal is that once this generator is complete, it will provide a one to one mapping between binary strings and valid Wasm modules. Review-Url: https://codereview.chromium.org/2658723006 Cr-Commit-Position: refs/heads/master@{#43289}
-
Igor Sheludko authored
BUG= Change-Id: Ifc441739ef730a0b2278be0b662413c223631a72 Reviewed-on: https://chromium-review.googlesource.com/444190Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43288}
-
bjaideep authored
R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Review-Url: https://codereview.chromium.org/2698333003 Cr-Commit-Position: refs/heads/master@{#43287}
-
Igor Sheludko authored
BUG= Change-Id: I7efa4df72c6860120e3e9c090fcd666737b43749 Reviewed-on: https://chromium-review.googlesource.com/444786 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#43286}
-
Igor Sheludko authored
... which is used for initializing properties with non compile time values. Currently we use StoreOwnIC only for storing properties that already exist in the boilerplate therefore we can reuse StoreIC dispatcher. The proper StoreOwnIC dispatcher will be implemented in a separate CL. BUG=v8:5495, v8:4414 Change-Id: I9c33fdb8499ec5be2c7fce1ecb6ce7aa285e5844 Reviewed-on: https://chromium-review.googlesource.com/443588Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43285}
-
ulan authored
The functions do not work correctly with concurrent sweeper and they do not take weak references into account. The latter is a fundamental problem for this tracing approach. BUG= Review-Url: https://codereview.chromium.org/2707433002 Cr-Commit-Position: refs/heads/master@{#43284}
-
Michael Lippautz authored
BUG= Change-Id: I7542ada0eb557b5b813396f7d250549abb880f91 Reviewed-on: https://chromium-review.googlesource.com/444408 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#43283}
-
jarin authored
Revert of [turbofan] extend escape analysis to reduce CheckMaps (patchset #7 id:140001 of https://codereview.chromium.org/2680973013/ ) Reason for revert: Likely causing http://crbug.com/692254 BUG=chromium:692254 Original issue's description: > [turbofan] extend escape analysis to reduce CheckMaps > > R=bmeurer@chromium.org > > BUG= > > Review-Url: https://codereview.chromium.org/2680973013 > Cr-Commit-Position: refs/heads/master@{#43163} > Committed: https://chromium.googlesource.com/v8/v8/+/f01c8a6e4b24ab38e58bb141fc251bc6b75dbe21 TBR=bmeurer@chromium.org,tebbi@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG= Review-Url: https://codereview.chromium.org/2704573003 Cr-Commit-Position: refs/heads/master@{#43282}
-
addaleax authored
Add `ValueSerializer::SetTreatArrayBufferViewsAsHostObjects()` which instructs the `ValueSerializer` to treat ArrayBufferView objects as host objects. BUG=v8:5926 Review-Url: https://codereview.chromium.org/2696133007 Cr-Commit-Position: refs/heads/master@{#43281}
-
Michael Achenbach authored
For results processor to work, we need to maintain the assumption that the cwd is equal to the currently running benchmark directory. NOTRY=true TBR=clemensh@chromium.org Change-Id: I585c301dea846194652645973470786ad43aa280 Reviewed-on: https://chromium-review.googlesource.com/444784Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#43280}
-
Camillo Bruni authored
BUG=691323 Change-Id: I84f2c90355982567c421639e115745eadd5fcb21 Reviewed-on: https://chromium-review.googlesource.com/441964Reviewed-by: Caitlin Potter <caitp@igalia.com> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#43279}
-
Marja Hölttä authored
Add some tests which already pass. BUG=v8:5516 R=vogelheim@chromium.org Change-Id: Icf5cf5e40010deb2efb69dea750661854b055566 Reviewed-on: https://chromium-review.googlesource.com/444744 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#43278}
-
clemensh authored
Instead of placing a runtime call to StackGuard in the compiled wasm code, we just call the builtin, which is cheaper. By passing Smi::kZero as context, we save even more code space and avoid embedding the context in the code. The WasmStackGuard builtin then calls the new WasmStackGuard runtime function, which gets the context from the instance attached to the calling wasm code, and then does the usual StackGuard logic. For the unity benchmark in asm-wasm mode, generated code size reduces from 63.0 to 61.6 MB (-2.1%). R=titzer@chromium.org, ahaas@chromium.org, mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2691993004 Cr-Commit-Position: refs/heads/master@{#43277}
-
Michael Lippautz authored
A fast promotion mode that works solely on GC heuristics without requiring compiler or other profiler support by implementing zero-copy evacuation for new space. - Once a threshold of survived bytes in the Scavenger is reached the mode is activated. - In fast promotion mode all pages are moved to old space instead of performing a Scavenge. - The inevitable upcoming full MC determines whether the decision whether the mode should stay on or be turned off based on the young generation survival rate. BUG=chromium:693413 Change-Id: Ifdf296092a9bac609f9dcdfb47a24046f3093745 Reviewed-on: https://chromium-review.googlesource.com/442560 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#43276}
-
vabr authored
https://codereview.chromium.org/2694003002/ introduced "SyntaxError: Lexical declaration cannot appear in a single-statement context" for the case when let + desctructuring from a list happen. As was pointed out in https://codereview.chromium.org/2694003002/#msg18, the case without destructuring would also benefit from a better message: if a single statement is expected and "let identifier = ..." is seen, the error is indeed again that the lexical declaration is not a statement. However, the current error is "Unexpected identifier", because the parser tries to accept "let" as an identifier in an expression statement, and then gives up seeing the other identifier after "let". This CL ensures that the parser recognises the error properly and reports accordingly. It also renames the existing test, which contains destructuring, and adds the one with a non-destructuring lexical declaration. BUG=v8:5686 Review-Url: https://codereview.chromium.org/2697193007 Cr-Commit-Position: refs/heads/master@{#43275}
-
bmeurer authored
When trying to infer receiver maps for property accesses, go hunting in the effect chain to find an earlier CheckMaps or StoreField for the receiver. BUG=v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2704563005 Cr-Commit-Position: refs/heads/master@{#43274}
-
bmeurer authored
In the JSInliner we shouldn't introduce JSConvertReceiver needlessly if the input is already known to produce a receiver, i.e. if it's a JSCreate or something like that. BUG=v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2697513010 Cr-Commit-Position: refs/heads/master@{#43273}
-
mvstanton authored
Set flag --mark-shared-functions-for-tier-up to true. R=leszeks@chromium.org Review-Url: https://codereview.chromium.org/2694363006 Cr-Commit-Position: refs/heads/master@{#43272}
-
Michael Achenbach authored
This reverts commit e1f7ae33. Reason for revert: Breaks on the bot: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20cfi/builds/8773/steps/compile/logs/stdio Original change's description: > [swarming] Dogfood exparchive feature > > The new swarming archiving method requires isolate files to be copied to the build dir. > > BUG=chromium:598990 > NOTRY=true > TBR=tandrii@chromium.org,tansell@chromium.org,vogelheim@chromium.org > > Change-Id: I87633725d9ce715684f761ce0c8d2691642c5389 > Reviewed-on: https://chromium-review.googlesource.com/444644 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#43266} TBR=machenbach@chromium.org,vogelheim@chromium.org,tandrii@chromium.org,tansell@chromium.org,v8-reviews@googlegroups.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:598990 Change-Id: Ie25205f8df69981fde223a232348534487460808 Reviewed-on: https://chromium-review.googlesource.com/444225 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#43271}
-
Michael Achenbach authored
Before this change, presubmit on upload/commit would miss checking status files when e.g. test files were deleted. But the status file check in CI will enforce that all referenced test files exist. NOTRY=true Change-Id: I6069563a0a4e98406977dbce2ae44b299f7cd4b0 Reviewed-on: https://chromium-review.googlesource.com/443467Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#43270}
-
Toon Verwaest authored
BUG= Change-Id: Ie7a8327fac62a0608b60cf9f0f072f979ac4fd76 Reviewed-on: https://chromium-review.googlesource.com/443528Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Toon Verwaest <verwaest@google.com> Cr-Commit-Position: refs/heads/master@{#43269}
-
dcheng authored
TestWithIsolate and TestWithContext already instantiate the scopers. BUG=none Review-Url: https://codereview.chromium.org/2690303009 Cr-Commit-Position: refs/heads/master@{#43268}
-
bmeurer authored
The CodeStubAssembler::SubString method should not try to be defensive about non-string inputs, but really enforce String receiver. Passing a non-String input will result in crash in the %SubString runtime function anyway. R=jgruber@chromium.org Review-Url: https://codereview.chromium.org/2700103002 Cr-Commit-Position: refs/heads/master@{#43267}
-
Michael Achenbach authored
The new swarming archiving method requires isolate files to be copied to the build dir. BUG=chromium:598990 NOTRY=true TBR=tandrii@chromium.org,tansell@chromium.org,vogelheim@chromium.org Change-Id: I87633725d9ce715684f761ce0c8d2691642c5389 Reviewed-on: https://chromium-review.googlesource.com/444644Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#43266}
-
jyan authored
1. use ltr/ltgr when possible 2. combine compares with possible load R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com Review-Url: https://codereview.chromium.org/2696343002 Cr-Commit-Position: refs/heads/master@{#43265}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/c8fd116..1ecc6e7 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/574285d..36a5082 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/7764539..799a6a3 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I1652a02293550cdface44d4dc5d0fd930b480ebe Reviewed-on: https://chromium-review.googlesource.com/444285Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#43264}
-
- 16 Feb, 2017 2 commits
-
-
dcheng authored
https://crrev.com/2500363002 updated FunctionTemplate::HasInstance to follow the hidden prototype chain of a global proxy to the global object. However, remote contexts don't have a global object to check; instead, teach the instance check knows about the conventions of global proxy setup and have it also check the constructor's prototype. Similarly, also teach Object::FindInstanceInPrototypeChain about the unusual conventions for remote contexts. BUG=527190 Review-Url: https://codereview.chromium.org/2698683003 Cr-Commit-Position: refs/heads/master@{#43263}
-
jwolfe authored
For functions declared in source code, the .toString() representation will be an excerpt of the source code. * For functions declared with the "function" keyword, the excerpt starts at the "function" or "async" keyword and ends at the final "}". The previous behavior would start the excerpt at the "(" of the parameter list, and prepend a canonical `"function " + name` or similar, which would discard comments and formatting surrounding the function's name. Anonymous functions declared as function expressions no longer get the name "anonymous" in their toString representation. * For methods, the excerpt starts at the "get", "set", "*" (for generator methods), or property name, whichever comes first. Previously, the toString representation for methods would use a canonical prefix before the "(" of the parameter list. Note that any "static" keyword is omitted. * For arrow functions and class declarations, the excerpt is unchanged. For functions created with the Function, GeneratorFunction, or AsyncFunction constructors: * The string separating the parameter text and body text is now "\n) {\n", where previously it was "\n/*``*/) {\n" or ") {\n". * At one point, newline normalization was required by the spec here, but that was removed from the spec, and so this CL does not do it. Included in this CL is a fix for CreateDynamicFunction parsing. ')' and '`' characters in the parameter string are no longer disallowed, and Function("a=function(", "}){") is no longer allowed. BUG=v8:4958, v8:4230 Review-Url: https://codereview.chromium.org/2156303002 Cr-Commit-Position: refs/heads/master@{#43262}
-