- 22 Feb, 2018 1 commit
-
-
Benedikt Meurer authored
This is preparatory cleanup work for eventually tracking the functions (rather than concrete closures) in the CALL_IC, also for builtins like the default PromiseCapability [[Resolve]] and [[Reject]] functions. It adds a new FeedbackCell type, which is used by JSFunctions consistently now to reference the feedback vector (or undefined if not the function is not compiled yet or is a native/asm.js function). This also changes the calling convention for FastNewClosure builtin and the JSCreateClosure operator in TurboFan to carry the FeedbackCell here instead of the parent FeedbackVector and the slot index. In addition we eliminate the now unused %InterpreterNewClosure runtime function. Bug: v8:2206, v8:7253, v8:7310 Change-Id: Ib4ce456e276e0273e57c163dcdd0b33abf863656 Reviewed-on: https://chromium-review.googlesource.com/928403 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#51474}
-
- 21 Feb, 2018 1 commit
-
-
Ross McIlroy authored
The compilation logic never used the saved FeedbackVector for Script compiles when looking up the CompilationCache, so remove it and simplify the return value of LookupScript to be a MaybeHandle<SharedFunctionInfo> Change-Id: Ib1d833f997b299e2e79621bd8509bdfd911d4e10 Reviewed-on: https://chromium-review.googlesource.com/924002 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#51443}
-
- 19 Feb, 2018 1 commit
-
-
Caitlin Potter authored
Previously, eval caching was only disabled if the root eval body code contained a tagged template. Per discussion on https://github.com/tc39/ecma262/pull/890, this is incorrect. This change tracks if eval caching is allowed during parsing, and uses this information to decide to insert new entries into the cache, or not. This change also removes the TemplateObject feedback kind, as it's no longer needed (behaves the same as Literal feedback). BUG=v8:3230, v8:2891 R=littledan@chromium.org, yangguo@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org Change-Id: Ib75abe9159baf4d8ad10f8de99d2152714bd0094 Reviewed-on: https://chromium-review.googlesource.com/916945 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51373}
-
- 14 Feb, 2018 1 commit
-
-
Ulan Degenbaev authored
The description will be used to annotate roots in the heap snapshot. Bug: chromium:811842 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ic5c9a89d1921cabddb06783f08ba63740e72820d Reviewed-on: https://chromium-review.googlesource.com/916564Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#51286}
-
- 12 Feb, 2018 1 commit
-
-
Caitlin Potter authored
Implements the change outlined in https://github.com/tc39/ecma262/pull/890, which has been ratified and pulled into the specification. In particular, template callsite objects are no longer kept in a global, eternal Map, but are instead associated with their callsite, which can be collected. This prevents a memory leak incurred by TaggedTemplate calls. Changes, summarized: - Remove the TemplateMap and TemplateMapShape objects, instead caching template objects in the feedback vector. - Remove the `hash` member of TemplateObjectDescriptor, and the Equals method (used by TemplateMap) - Add a new FeedbackSlotKind (kTemplateObject), which behaves similarly to FeedbackSlotKind::kLiteral, but prevents eval caching. This ensures that a new feedback vector is always created for eval() containing tagged templates, even when the CompilationCache is used. - GetTemplateObject bytecode now takes a feedback index, and only calls into the runtime if the feedback is Smi::kZero (uninitialized). BUG=v8:3230, v8:2891 R=littledan@chromium.org, yangguo@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I7827bc148d3d93e2b056ebf63dd624da196ad423 Reviewed-on: https://chromium-review.googlesource.com/624564 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#51248}
-
- 18 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
This CL fixes all occurences that don't require special OWNER reviews, or can be reviewed by Michi. After this one, we should be able to reenable the readability/check cpplint check. R=mstarzinger@chromium.org Bug: v8:6837, v8:6921 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: Ic81d68d5534eaa795b7197fed5c41ed158361d62 Reviewed-on: https://chromium-review.googlesource.com/721120 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48670}
-
- 05 Oct, 2017 1 commit
-
-
Sathya Gunasekaran authored
This fixes some of the old legacy API that used empty Handle<> Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I861e31a4a6f65bc497bfc512174adba39c17abca Reviewed-on: https://chromium-review.googlesource.com/701634Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#48311}
-
- 22 May, 2017 1 commit
-
-
Ross McIlroy authored
Only FullCodegen code ever gets flushed by code flushing. Since we are deprecating the old pipeline, the added complexity introduced by code flushing is no longer worth it. This CL removes it (but keeps code aging, which is used to unlink SFIs from the compilation cache). BUG=v8:6389,v8:6379,v8:6409 Change-Id: I90de113a101f86dbeaaf0511c61a090ef12aa365 Reviewed-on: https://chromium-review.googlesource.com/507388 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45446}
-
- 25 Apr, 2017 1 commit
-
-
ulan authored
This patch adds a new interface called RootVisitor and changes the root iteration functions to accept a RootVisitor instead of an ObjectVisitor. Future CLs will change ObjectVisitor to provide the host object to all visiting functions, which will bring it in sync with static visitors. Having separate visitors for roots and objects removes ambiguity in VisitPointers and reduces chances of forgetting to record slots. This is intended as pure refactoring. All places that require behavior change are marked with TODO and will addressed in future CLs. BUG=chromium:709075 Review-Url: https://codereview.chromium.org/2801073006 Cr-Commit-Position: refs/heads/master@{#44852}
-
- 06 Apr, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5402 R=mstarzinger@chromium.org Change-Id: I8ce43504fee83dcb6859418a526b2c7aea52e778 Reviewed-on: https://chromium-review.googlesource.com/468968 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44436}
-
- 30 Mar, 2017 1 commit
-
-
mvstanton authored
HasOrigin() can allocate. Make sure to wrap vulnerable raw pointers in handles. BUG= Review-Url: https://codereview.chromium.org/2788663002 Cr-Commit-Position: refs/heads/master@{#44271}
-
- 16 Feb, 2017 1 commit
-
-
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}
-
- 06 Feb, 2017 1 commit
-
-
mvstanton authored
TypeFeedbackVectors are strongly rooted by a closure. However, in modern JavaScript closures are created and abandoned more freely. An important closure may not be present in the root-set at time of garbage collection, even though we've cached optimized code and use it regularly. For example, consider leaf functions in an event dispatching system. They may well be "hot," but tragically non-present when we collect the heap. Until now, we've relied on a weak root to cache the feedback vector in this case. Since there is no way to signal intent or relative importance, this weak root is as susceptible to clearing as any other weak root at garbage collection time. Meanwhile, the feedback vector has become more important. All of our ICs store their data there. Literal and regex boilerplates are stored there. If we lose the vector, then we not only lose optimized code built from it, we also lose the very feedback which allowed us to create that optimized code. Therefore it's vital to express that dependency through the root set. This CL does this by creating a strong link to a feedback vector at the instantiation site of the function closure. This instantiation site is in the code and feedback vector of the outer closure. BUG=v8:5456 Review-Url: https://codereview.chromium.org/2674593003 Cr-Commit-Position: refs/heads/master@{#42953}
-
- 30 Jun, 2016 1 commit
-
-
yangguo authored
R=mstarzinger@chromium.org BUG=v8:5117 Review-Url: https://codereview.chromium.org/2109773004 Cr-Commit-Position: refs/heads/master@{#37426}
-
- 06 Jun, 2016 1 commit
-
-
cbruni authored
Passing in the isolate and pointer compare the instnance against the corresponding constant is always faster than decoding the instance types. BUG= Review-Url: https://codereview.chromium.org/2028983002 Cr-Commit-Position: refs/heads/master@{#36744}
-
- 28 Sep, 2015 1 commit
-
-
jkummerow authored
Replacing it with SMI_ACCESSORS. This change makes accesses to Smi fields in objects more regular (the accessors now always consume/return an int rather than a Smi*), which avoids a bunch of manual Smi::FromInt() and Smi::value() conversions, and is a step on the way towards being able to generate objects-inl.h. Review URL: https://codereview.chromium.org/1371893002 Cr-Commit-Position: refs/heads/master@{#30975}
-
- 20 Aug, 2015 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1285183010 Cr-Commit-Position: refs/heads/master@{#30263}
-
- 01 Jun, 2015 1 commit
-
-
erikcorry authored
When compiling on a laptop I like to concatenate the small test files. This makes a big difference to compile times. These changes make that easier. R=ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/1163803002 Cr-Commit-Position: refs/heads/master@{#28742}
-
- 19 May, 2015 1 commit
-
-
horo authored
When the page is controlled by a ServiceWorker, the ServiceWorker can return an opaque (non-CORS cross origin) resource response. We need to treat the messages from such script resource as opaque. Committed: https://crrev.com/7a599c5e1242d3c5ab7515ee149623da90ae69ec Cr-Commit-Position: refs/heads/master@{#28445} Review URL: https://codereview.chromium.org/1140673002 Cr-Commit-Position: refs/heads/master@{#28459}
-
- 18 May, 2015 2 commits
-
-
machenbach authored
Revert of [V8] Added Script::is_opaque flag for embedders (patchset #5 id:80001 of https://codereview.chromium.org/1140673002/) Reason for revert: [Sheriff] Breaks chromium win compilation: http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Win/builds/96 Original issue's description: > [V8] Added Script::is_opaque flag for embedders > > When the page is controlled by a ServiceWorker, the ServiceWorker can return an opaque (non-CORS cross origin) resource response. > We need to treat the messages from such script resource as opaque. > > Committed: https://crrev.com/7a599c5e1242d3c5ab7515ee149623da90ae69ec > Cr-Commit-Position: refs/heads/master@{#28445} TBR=mkwst@chromium.org,jochen@chromium.org,yangguo@chromium.org,horo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1135343005 Cr-Commit-Position: refs/heads/master@{#28449}
-
horo authored
When the page is controlled by a ServiceWorker, the ServiceWorker can return an opaque (non-CORS cross origin) resource response. We need to treat the messages from such script resource as opaque. Review URL: https://codereview.chromium.org/1140673002 Cr-Commit-Position: refs/heads/master@{#28445}
-
- 27 Mar, 2015 1 commit
-
-
yangguo authored
R=jochen@chromium.org Review URL: https://codereview.chromium.org/1041743002 Cr-Commit-Position: refs/heads/master@{#27501}
-
- 12 Feb, 2015 1 commit
-
-
rossberg authored
Fixes the TSAN issue. R=mstarzinger@chromium.org NOTRY=true BUG= Review URL: https://codereview.chromium.org/923573002 Cr-Commit-Position: refs/heads/master@{#26623}
-
- 04 Feb, 2015 1 commit
-
-
marja authored
This enables adding more language modes in the future. For maximum flexibility, LanguageMode is a bitmask, so we're not restricted to use a sequence of language modes which are progressively stricter, but we can express the language mode as combination of features. For now, LanguageMode can only be "sloppy" or "strict", and there are STATIC_ASSERTS in places which need to change when more modes are added. LanguageMode is a bit like the old LanguageMode when "extended" mode was still around (see https://codereview.chromium.org/8417035 and https://codereview.chromium.org/181543002 ) except that it's transmitted through all the layers (there's no StrictModeFlag). BUG= Review URL: https://codereview.chromium.org/894683003 Cr-Commit-Position: refs/heads/master@{#26419}
-
- 29 Jan, 2015 1 commit
-
-
kozyatinskiy authored
In DevTools we need one more flag for script origin - is debugger script. We already have "is shared origin" flag. The new flag added by analogy with the old but new has accessor in script object. R=yurys@chromium.org Review URL: https://codereview.chromium.org/879553002 Cr-Commit-Position: refs/heads/master@{#26324}
-
- 31 Oct, 2014 1 commit
-
-
verwaest@chromium.org authored
Instead of using multiple generations for the code, first only store the hash that gets aged. Once a hash matched on a next probe, actually cache the code. Use regular code aging to remove entries from the cache. BUG= R=ulan@chromium.org Review URL: https://codereview.chromium.org/675013004 Cr-Commit-Position: refs/heads/master@{#25040} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Oct, 2014 1 commit
-
-
yangguo@chromium.org authored
R=verwaest@chromium.org Review URL: https://codereview.chromium.org/678843004 Cr-Commit-Position: refs/heads/master@{#24927} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Sep, 2014 1 commit
-
-
https://codereview.chromium.org/567313003/erik.corry@gmail.com authored
R=svenpanne@chromium.org, yangguo@chromium.org BUG= Review URL: https://codereview.chromium.org/580383003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Sep, 2014 2 commits
-
-
rossberg@chromium.org authored
Causes a flaky failure on buildbots. Here is the (deterministic) repro step (thanks to Michael Stanton): first go to flag-definitions.h and set this to false. DEFINE_BOOL(enable_sse4_1, false, "enable use of SSE4.1 instructions if available") Run the following and it should fail: tools/run-tests.py --arch=ia32 --mode=release cctest/test-api/Regress2107 R=yangguo@chromium.org BUG= Review URL: https://codereview.chromium.org/580123002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
R=yangguo@chromium.org, rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/567313003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Aug, 2014 1 commit
-
-
bmeurer@chromium.org authored
This way we don't clash with the ASSERT* macros defined by GoogleTest, and we are one step closer to being able to replace our homegrown base/ with base/ from Chrome. R=jochen@chromium.org, svenpanne@chromium.org Review URL: https://codereview.chromium.org/430503007 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Jun, 2014 1 commit
-
-
jochen@chromium.org authored
- this avoids using relative include paths which are forbidden by the style guide - makes the code more readable since it's clear which header is meant - allows for starting to use checkdeps BUG=none R=jkummerow@chromium.org, danno@chromium.org LOG=n Review URL: https://codereview.chromium.org/304153016 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Apr, 2014 1 commit
-
-
bmeurer@chromium.org authored
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/259183002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Apr, 2014 1 commit
-
-
ishell@chromium.org authored
R=yangguo@chromium.org Review URL: https://codereview.chromium.org/257633002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Apr, 2014 1 commit
-
-
yangguo@chromium.org authored
R=ulan@chromium.org Review URL: https://codereview.chromium.org/225823003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Apr, 2014 1 commit
-
-
yangguo@chromium.org authored
R=ulan@chromium.org Review URL: https://codereview.chromium.org/230283002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Apr, 2014 1 commit
-
-
ulan@chromium.org authored
BUG= R=yangguo@chromium.org Review URL: https://codereview.chromium.org/224733022 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Mar, 2014 1 commit
-
-
rossberg@chromium.org authored
- Merge LanguageMode and StrictModeFlag enums - Make harmony-scoping depend only on strict mode - Free some bits on the way - Plus additional clean-up and renaming R=ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/181543002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Dec, 2013 1 commit
-
-
yangguo@chromium.org authored
Goals: - easier to read, more suitable identifiers. - better distinction between compiling optimized/unoptimized code - compiler does not install code on the function. - easier to add features (e.g. caching optimized code for osr). - remove unnecessary code. R=titzer@chromium.org Review URL: https://codereview.chromium.org/110203002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jul, 2013 1 commit
-
-
mstarzinger@chromium.org authored
In order to properly sanitize exception data during a 'window.onerror' handler, we need to know whether a script was served with proper CORS headers at the time it was loaded into V8. This patch adds a single bool to ScriptOrigin, and pipes that through the compiler to land on the Script object. We can then retrieve the parameter when calling the embedder's exception callback. BUG=crbug.com/159566 R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/20646006 Patch from Mike West <mkwst@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-