From 00acbcce9d148e58a1847e89880086b61bf47427 Mon Sep 17 00:00:00 2001 From: "Node.js Jenkins CI" Date: Thu, 26 Oct 2017 05:55:21 +0000 Subject: [PATCH 1/8] doc: update README for node-v8 repository --- README.md | 592 +----------------------------------------------------- 1 file changed, 7 insertions(+), 585 deletions(-) diff --git a/README.md b/README.md index 6fcaac417d2..50b45ac86e5 100644 --- a/README.md +++ b/README.md @@ -1,587 +1,9 @@ -

- - Node.js - -

-

- -

+This is an automatically updated **experimental** +version of Node.js [Node.js](https://github.com/nodejs/node) +with V8 Tip-of-Tree. +**Do not use this in production!** -Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js -uses an event-driven, non-blocking I/O model that makes it lightweight and -efficient. The Node.js package ecosystem, [npm][], is the largest ecosystem of -open source libraries in the world. +This repository is not owned by @nodejs/v8, but they might be able to +help with issues. -The Node.js project is supported by the -[Node.js Foundation](https://nodejs.org/en/foundation/). Contributions, -policies, and releases are managed under an -[open governance model](./GOVERNANCE.md). - -**This project is bound by a [Code of Conduct][].** - -If you need help using or installing Node.js, please use the -[nodejs/help](https://github.com/nodejs/help) issue tracker. - - -# Table of Contents - -* [Resources for Newcomers](#resources-for-newcomers) -* [Release Types](#release-types) - * [Download](#download) - * [Current and LTS Releases](#current-and-lts-releases) - * [Nightly Releases](#nightly-releases) - * [API Documentation](#api-documentation) - * [Verifying Binaries](#verifying-binaries) -* [Building Node.js](#building-nodejs) - * [Security](#security) - * [Current Project Team Members](#current-project-team-members) - * [TSC (Technical Steering Committee)](#tsc-technical-steering-committee) - * [Collaborators](#collaborators) - * [Release Team](#release-team) - -## Resources for Newcomers - -### Official Resources - -* [Website][] -* [Node.js Help][] -* [Contributing to the project][] -* IRC (node core development): [#node-dev on chat.freenode.net][] - -### Unofficial Resources - -* IRC (general questions): [#node.js on chat.freenode.net][]. Please see - for more information regarding the `#node.js` IRC -channel. - -_Please note that unofficial resources are neither managed by (nor necessarily -endorsed by) the Node.js TSC. Specifically, such resources are not -currently covered by the [Node.js Moderation Policy][] and the selection and -actions of resource operators/moderators are not subject to TSC oversight._ - -## Release Types - -The Node.js project maintains multiple types of releases: - -* **Current**: Released from active development branches of this repository, - versioned by [SemVer](http://semver.org/) and signed by a member of the - [Release Team](#release-team). - Code for Current releases is organized in this repository by major version - number. For example: [v4.x](https://github.com/nodejs/node/tree/v4.x). - The major version number of Current releases will increment every 6 months - allowing for breaking changes to be introduced. This happens in April and - October every year. Current release lines beginning in October each year have - a maximum support life of 8 months. Current release lines beginning in April - each year will convert to LTS (see below) after 6 months and receive further - support for 30 months. -* **LTS**: Releases that receive Long-term Support, with a focus on stability - and security. Every second Current release line (major version) will become an - LTS line and receive 18 months of _Active LTS_ support and a further 12 - months of _Maintenance_. LTS release lines are given alphabetically - ordered codenames, beginning with v4 Argon. LTS releases are less frequent - and will attempt to maintain consistent major and minor version numbers, - only incrementing patch version numbers. There are no breaking changes or - feature additions, except in some special circumstances. -* **Nightly**: Versions of code in this repository on the current Current - branch, automatically built every 24-hours where changes exist. Use with - caution. - -More information can be found in the [LTS README](https://github.com/nodejs/LTS/). - -## Download - -Binaries, installers, and source tarballs are available at -. - -#### Current and LTS Releases -**Current** and **LTS** releases are available at -, listed under their version strings. -The [latest](https://nodejs.org/download/release/latest/) directory is an -alias for the latest Current release. The latest LTS release from an LTS -line is available in the form: latest-_codename_. For example: - - -#### Nightly Releases -**Nightly** builds are available at -, listed under their version -string which includes their date (in UTC time) and the commit SHA at -the HEAD of the release. - -#### API Documentation -**API documentation** is available in each release and nightly -directory under _docs_. points to the API -documentation of the latest stable version. - -### Verifying Binaries - -Current, LTS and Nightly download directories all contain a _SHASUMS256.txt_ -file that lists the SHA checksums for each file available for -download. - -The _SHASUMS256.txt_ can be downloaded using curl. - -```console -$ curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt -``` - -To check that a downloaded file matches the checksum, run -it through `sha256sum` with a command such as: - -```console -$ grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c - -``` - -_(Where "node-vx.y.z.tar.gz" is the name of the file you have -downloaded)_ - -Additionally, Current and LTS releases (not Nightlies) have the GPG -detached signature of SHASUMS256.txt available as SHASUMS256.txt.sig. -You can use `gpg` to verify that SHASUMS256.txt has not been tampered with. - -To verify SHASUMS256.txt has not been altered, you will first need to import -all of the GPG keys of individuals authorized to create releases. They are -listed at the bottom of this README under [Release Team](#release-team). -Use a command such as this to import the keys: - -```console -$ gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D -``` - -_(See the bottom of this README for a full script to import active -release keys)_ - -Next, download the SHASUMS256.txt.sig for the release: - -```console -$ curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt.sig -``` - -After downloading the appropriate SHASUMS256.txt and SHASUMS256.txt.sig files, -you can then use `gpg --verify SHASUMS256.txt.sig SHASUMS256.txt` to verify -that the file has been signed by an authorized member of the Node.js team. - -Once verified, use the SHASUMS256.txt file to get the checksum for -the binary verification command above. - -## Building Node.js - -See [BUILDING.md](BUILDING.md) for instructions on how to build -Node.js from source. The document also contains a list of -officially supported platforms. - -## Security - -All security bugs in Node.js are taken seriously and should be reported by -emailing security@nodejs.org. This will be delivered to a subset of the project -team who handle security issues. Please don't disclose security bugs -publicly until they have been handled by the security team. - -Your email will be acknowledged within 24 hours, and you’ll receive a more -detailed response to your email within 48 hours indicating the next steps in -handling your report. - -There are no hard and fast rules to determine if a bug is worth reporting as -a security issue. The general rule is any issue worth reporting -must allow an attacker to compromise the confidentiality, integrity -or availability of the Node.js application or its system for which the attacker -does not already have the capability. - -To illustrate the point, here are some examples of past issues and what the -Security Reponse Team thinks of them. When in doubt, however, please do send -us a report nonetheless. - - -### Public disclosure preferred - -- [#14519](https://github.com/nodejs/node/issues/14519): _Internal domain - function can be used to cause segfaults_. Causing program termination using - either the public Javascript APIs or the private bindings layer APIs requires - the ability to execute arbitrary Javascript code, which is already the highest - level of privilege possible. - -- [#12141](https://github.com/nodejs/node/pull/12141): _buffer: zero fill - Buffer(num) by default_. The buffer constructor behaviour was documented, - but found to be prone to [mis-use](https://snyk.io/blog/exploiting-buffer/). - It has since been changed, but despite much debate, was not considered misuse - prone enough to justify fixing in older release lines and breaking our - API stability contract. - -### Private disclosure preferred - -- [CVE-2016-7099](https://nodejs.org/en/blog/vulnerability/september-2016-security-releases/): - _Fix invalid wildcard certificate validation check_. This is a high severity - defect that would allow a malicious TLS server to serve an invalid wildcard - certificate for its hostname and be improperly validated by a Node.js client. - -- [#5507](https://github.com/nodejs/node/pull/5507): _Fix a defect that makes - the CacheBleed Attack possible_. Many, though not all, OpenSSL vulnerabilities - in the TLS/SSL protocols also effect Node.js. - -- [CVE-2016-2216](https://nodejs.org/en/blog/vulnerability/february-2016-security-releases/): - _Fix defects in HTTP header parsing for requests and responses that can allow - response splitting_. While the impact of this vulnerability is application and - network dependent, it is remotely exploitable in the HTTP protocol. - -When in doubt, please do send us a report. - - -## Current Project Team Members - -The Node.js project team comprises a group of core collaborators and a sub-group -that forms the _Technical Steering Committee_ (TSC) which governs the project. -For more information about the governance of the Node.js project, see -[GOVERNANCE.md](./GOVERNANCE.md). - -### TSC (Technical Steering Committee) - -* [addaleax](https://github.com/addaleax) - -**Anna Henningsen** <anna@addaleax.net> (she/her) -* [ChALkeR](https://github.com/ChALkeR) - -**Сковорода Никита Андреевич** <chalkerx@gmail.com> (he/him) -* [cjihrig](https://github.com/cjihrig) - -**Colin Ihrig** <cjihrig@gmail.com> -* [evanlucas](https://github.com/evanlucas) - -**Evan Lucas** <evanlucas@me.com> (he/him) -* [fhinkel](https://github.com/fhinkel) - -**Franziska Hinkelmann** <franziska.hinkelmann@gmail.com> (she/her) -* [Fishrock123](https://github.com/Fishrock123) - -**Jeremiah Senkpiel** <fishrock123@rocketmail.com> -* [indutny](https://github.com/indutny) - -**Fedor Indutny** <fedor.indutny@gmail.com> -* [jasnell](https://github.com/jasnell) - -**James M Snell** <jasnell@gmail.com> (he/him) -* [joshgav](https://github.com/joshgav) - -**Josh Gavant** <josh.gavant@outlook.com> -* [joyeecheung](https://github.com/joyeecheung) - -**Joyee Cheung** <joyeec9h3@gmail.com> (she/her) -* [mcollina](https://github.com/mcollina) - -**Matteo Collina** <matteo.collina@gmail.com> (he/him) -* [mhdawson](https://github.com/mhdawson) - -**Michael Dawson** <michael_dawson@ca.ibm.com> (he/him) -* [mscdex](https://github.com/mscdex) - -**Brian White** <mscdex@mscdex.net> -* [MylesBorins](https://github.com/MylesBorins) - -**Myles Borins** <myles.borins@gmail.com> (he/him) -* [ofrobots](https://github.com/ofrobots) - -**Ali Ijaz Sheikh** <ofrobots@google.com> -* [rvagg](https://github.com/rvagg) - -**Rod Vagg** <rod@vagg.org> -* [targos](https://github.com/targos) - -**Michaël Zasso** <targos@protonmail.com> (he/him) -* [thefourtheye](https://github.com/thefourtheye) - -**Sakthipriyan Vairamani** <thechargingvolcano@gmail.com> (he/him) -* [trevnorris](https://github.com/trevnorris) - -**Trevor Norris** <trev.norris@gmail.com> -* [Trott](https://github.com/Trott) - -**Rich Trott** <rtrott@gmail.com> (he/him) - -### TSC Emeriti - -* [bnoordhuis](https://github.com/bnoordhuis) - -**Ben Noordhuis** <info@bnoordhuis.nl> -* [chrisdickinson](https://github.com/chrisdickinson) - -**Chris Dickinson** <christopher.s.dickinson@gmail.com> -* [isaacs](https://github.com/isaacs) - -**Isaac Z. Schlueter** <i@izs.me> -* [nebrius](https://github.com/nebrius) - -**Bryan Hughes** <bryan@nebri.us> -* [orangemocha](https://github.com/orangemocha) - -**Alexis Campailla** <orangemocha@nodejs.org> -* [piscisaureus](https://github.com/piscisaureus) - -**Bert Belder** <bertbelder@gmail.com> -* [shigeki](https://github.com/shigeki) - -**Shigeki Ohtsu** <ohtsu@ohtsu.org> (he/him) - -### Collaborators - -* [abouthiroppy](https://github.com/abouthiroppy) - -**Yuta Hiroto** <hello@about-hiroppy.com> (he/him) -* [addaleax](https://github.com/addaleax) - -**Anna Henningsen** <anna@addaleax.net> (she/her) -* [ak239](https://github.com/ak239) - -**Aleksei Koziatinskii** <ak239spb@gmail.com> -* [andrasq](https://github.com/andrasq) - -**Andras** <andras@kinvey.com> -* [AndreasMadsen](https://github.com/AndreasMadsen) - -**Andreas Madsen** <amwebdk@gmail.com> (he/him) -* [AnnaMag](https://github.com/AnnaMag) - -**Anna M. Kedzierska** <anna.m.kedzierska@gmail.com> -* [apapirovski](https://github.com/apapirovski) - -**Anatoli Papirovski** <apapirovski@mac.com> (he/him) -* [aqrln](https://github.com/aqrln) - -**Alexey Orlenko** <eaglexrlnk@gmail.com> (he/him) -* [bengl](https://github.com/bengl) - -**Bryan English** <bryan@bryanenglish.com> (he/him) -* [benjamingr](https://github.com/benjamingr) - -**Benjamin Gruenbaum** <benjamingr@gmail.com> -* [bmeck](https://github.com/bmeck) - -**Bradley Farias** <bradley.meck@gmail.com> -* [bmeurer](https://github.com/bmeurer) - -**Benedikt Meurer** <benedikt.meurer@gmail.com> -* [bnoordhuis](https://github.com/bnoordhuis) - -**Ben Noordhuis** <info@bnoordhuis.nl> -* [brendanashworth](https://github.com/brendanashworth) - -**Brendan Ashworth** <brendan.ashworth@me.com> -* [BridgeAR](https://github.com/BridgeAR) - -**Ruben Bridgewater** <ruben@bridgewater.de> -* [bzoz](https://github.com/bzoz) - -**Bartosz Sosnowski** <bartosz@janeasystems.com> -* [calvinmetcalf](https://github.com/calvinmetcalf) - -**Calvin Metcalf** <calvin.metcalf@gmail.com> -* [ChALkeR](https://github.com/ChALkeR) - -**Сковорода Никита Андреевич** <chalkerx@gmail.com> (he/him) -* [chrisdickinson](https://github.com/chrisdickinson) - -**Chris Dickinson** <christopher.s.dickinson@gmail.com> -* [cjihrig](https://github.com/cjihrig) - -**Colin Ihrig** <cjihrig@gmail.com> -* [claudiorodriguez](https://github.com/claudiorodriguez) - -**Claudio Rodriguez** <cjrodr@yahoo.com> -* [danbev](https://github.com/danbev) - -**Daniel Bevenius** <daniel.bevenius@gmail.com> -* [DavidCai1993](https://github.com/DavidCai1993) - -**David Cai** <davidcai1993@yahoo.com> (he/him) -* [edsadr](https://github.com/edsadr) - -**Adrian Estrada** <edsadr@gmail.com> (he/him) -* [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) - -**Robert Jefe Lindstaedt** <robert.lindstaedt@gmail.com> -* [estliberitas](https://github.com/estliberitas) - -**Alexander Makarenko** <estliberitas@gmail.com> -* [eugeneo](https://github.com/eugeneo) - -**Eugene Ostroukhov** <eostroukhov@google.com> -* [evanlucas](https://github.com/evanlucas) - -**Evan Lucas** <evanlucas@me.com> (he/him) -* [fhinkel](https://github.com/fhinkel) - -**Franziska Hinkelmann** <franziska.hinkelmann@gmail.com> (she/her) -* [firedfox](https://github.com/firedfox) - -**Daniel Wang** <wangyang0123@gmail.com> -* [Fishrock123](https://github.com/Fishrock123) - -**Jeremiah Senkpiel** <fishrock123@rocketmail.com> -* [gabrielschulhof](https://github.com/gabrielschulhof) - -**Gabriel Schulhof** <gabriel.schulhof@intel.com> -* [geek](https://github.com/geek) - -**Wyatt Preul** <wpreul@gmail.com> -* [gibfahn](https://github.com/gibfahn) - -**Gibson Fahnestock** <gibfahn@gmail.com> (he/him) -* [gireeshpunathil](https://github.com/gireeshpunathil) - -**Gireesh Punathil** <gpunathi@in.ibm.com> (he/him) -* [iarna](https://github.com/iarna) - -**Rebecca Turner** <me@re-becca.org> -* [imran-iq](https://github.com/imran-iq) - -**Imran Iqbal** <imran@imraniqbal.org> -* [imyller](https://github.com/imyller) - -**Ilkka Myller** <ilkka.myller@nodefield.com> -* [indutny](https://github.com/indutny) - -**Fedor Indutny** <fedor.indutny@gmail.com> -* [italoacasas](https://github.com/italoacasas) - -**Italo A. Casas** <me@italoacasas.com> (he/him) -* [JacksonTian](https://github.com/JacksonTian) - -**Jackson Tian** <shyvo1987@gmail.com> -* [jasnell](https://github.com/jasnell) - -**James M Snell** <jasnell@gmail.com> (he/him) -* [jasongin](https://github.com/jasongin) - -**Jason Ginchereau** <jasongin@microsoft.com> -* [jbergstroem](https://github.com/jbergstroem) - -**Johan Bergström** <bugs@bergstroem.nu> -* [jhamhader](https://github.com/jhamhader) - -**Yuval Brik** <yuval@brik.org.il> -* [jkrems](https://github.com/jkrems) - -**Jan Krems** <jan.krems@gmail.com> (he/him) -* [joaocgreis](https://github.com/joaocgreis) - -**João Reis** <reis@janeasystems.com> -* [joshgav](https://github.com/joshgav) - -**Josh Gavant** <josh.gavant@outlook.com> -* [joyeecheung](https://github.com/joyeecheung) - -**Joyee Cheung** <joyeec9h3@gmail.com> (she/her) -* [julianduque](https://github.com/julianduque) - -**Julian Duque** <julianduquej@gmail.com> (he/him) -* [JungMinu](https://github.com/JungMinu) - -**Minwoo Jung** <minwoo@nodesource.com> (he/him) -* [kfarnung](https://github.com/kfarnung) - -**Kyle Farnung** <kfarnung@microsoft.com> (he/him) -* [kunalspathak](https://github.com/kunalspathak) - -**Kunal Pathak** <kunal.pathak@microsoft.com> -* [lance](https://github.com/lance) - -**Lance Ball** <lball@redhat.com> -* [lpinca](https://github.com/lpinca) - -**Luigi Pinca** <luigipinca@gmail.com> (he/him) -* [lucamaraschi](https://github.com/lucamaraschi) - -**Luca Maraschi** <luca.maraschi@gmail.com> (he/him) -* [matthewloring](https://github.com/matthewloring) - -**Matthew Loring** <mattloring@google.com> -* [mcollina](https://github.com/mcollina) - -**Matteo Collina** <matteo.collina@gmail.com> (he/him) -* [mhdawson](https://github.com/mhdawson) - -**Michael Dawson** <michael_dawson@ca.ibm.com> (he/him) -* [micnic](https://github.com/micnic) - -**Nicu Micleușanu** <micnic90@gmail.com> (he/him) -* [mikeal](https://github.com/mikeal) - -**Mikeal Rogers** <mikeal.rogers@gmail.com> -* [misterdjules](https://github.com/misterdjules) - -**Julien Gilli** <jgilli@nodejs.org> -* [mscdex](https://github.com/mscdex) - -**Brian White** <mscdex@mscdex.net> -* [MylesBorins](https://github.com/MylesBorins) - -**Myles Borins** <myles.borins@gmail.com> (he/him) -* [not-an-aardvark](https://github.com/not-an-aardvark) - -**Teddy Katz** <teddy.katz@gmail.com> -* [ofrobots](https://github.com/ofrobots) - -**Ali Ijaz Sheikh** <ofrobots@google.com> -* [orangemocha](https://github.com/orangemocha) - -**Alexis Campailla** <orangemocha@nodejs.org> -* [othiym23](https://github.com/othiym23) - -**Forrest L Norvell** <ogd@aoaioxxysz.net> (he/him) -* [phillipj](https://github.com/phillipj) - -**Phillip Johnsen** <johphi@gmail.com> -* [pmq20](https://github.com/pmq20) - -**Minqi Pan** <pmq2001@gmail.com> -* [princejwesley](https://github.com/princejwesley) - -**Prince John Wesley** <princejohnwesley@gmail.com> -* [Qard](https://github.com/Qard) - -**Stephen Belanger** <admin@stephenbelanger.com> (he/him) -* [refack](https://github.com/refack) - -**Refael Ackermann** <refack@gmail.com> (he/him) -* [richardlau](https://github.com/richardlau) - -**Richard Lau** <riclau@uk.ibm.com> -* [rmg](https://github.com/rmg) - -**Ryan Graham** <r.m.graham@gmail.com> -* [robertkowalski](https://github.com/robertkowalski) - -**Robert Kowalski** <rok@kowalski.gd> -* [romankl](https://github.com/romankl) - -**Roman Klauke** <romaaan.git@gmail.com> -* [ronkorving](https://github.com/ronkorving) - -**Ron Korving** <ron@ronkorving.nl> -* [RReverser](https://github.com/RReverser) - -**Ingvar Stepanyan** <me@rreverser.com> -* [rvagg](https://github.com/rvagg) - -**Rod Vagg** <rod@vagg.org> -* [saghul](https://github.com/saghul) - -**Saúl Ibarra Corretgé** <saghul@gmail.com> -* [sam-github](https://github.com/sam-github) - -**Sam Roberts** <vieuxtech@gmail.com> -* [santigimeno](https://github.com/santigimeno) - -**Santiago Gimeno** <santiago.gimeno@gmail.com> -* [sebdeckers](https://github.com/sebdeckers) - -**Sebastiaan Deckers** <sebdeckers83@gmail.com> -* [seishun](https://github.com/seishun) - -**Nikolai Vavilov** <vvnicholas@gmail.com> -* [shigeki](https://github.com/shigeki) - -**Shigeki Ohtsu** <ohtsu@ohtsu.org> (he/him) -* [silverwind](https://github.com/silverwind) - -**Roman Reiss** <me@silverwind.io> -* [srl295](https://github.com/srl295) - -**Steven R Loomis** <srloomis@us.ibm.com> -* [stefanmb](https://github.com/stefanmb) - -**Stefan Budeanu** <stefan@budeanu.com> -* [targos](https://github.com/targos) - -**Michaël Zasso** <targos@protonmail.com> (he/him) -* [thefourtheye](https://github.com/thefourtheye) - -**Sakthipriyan Vairamani** <thechargingvolcano@gmail.com> (he/him) -* [thekemkid](https://github.com/thekemkid) - -**Glen Keane** <glenkeane.94@gmail.com> (he/him) -* [thlorenz](https://github.com/thlorenz) - -**Thorsten Lorenz** <thlorenz@gmx.de> -* [TimothyGu](https://github.com/TimothyGu) - -**Timothy Gu** <timothygu99@gmail.com> (he/him) -* [tniessen](https://github.com/tniessen) - -**Tobias Nießen** <tniessen@tnie.de> -* [trevnorris](https://github.com/trevnorris) - -**Trevor Norris** <trev.norris@gmail.com> -* [Trott](https://github.com/Trott) - -**Rich Trott** <rtrott@gmail.com> (he/him) -* [tunniclm](https://github.com/tunniclm) - -**Mike Tunnicliffe** <m.j.tunnicliffe@gmail.com> -* [vkurchatkin](https://github.com/vkurchatkin) - -**Vladimir Kurchatkin** <vladimir.kurchatkin@gmail.com> -* [vsemozhetbyt](https://github.com/vsemozhetbyt) - -**Vse Mozhet Byt** <vsemozhetbyt@gmail.com> (he/him) -* [watilde](https://github.com/watilde) - -**Daijiro Wachi** <daijiro.wachi@gmail.com> (he/him) -* [whitlockjc](https://github.com/whitlockjc) - -**Jeremy Whitlock** <jwhitlock@apache.org> -* [XadillaX](https://github.com/XadillaX) - -**Khaidi Chu** <i@2333.moe> (he/him) -* [yorkie](https://github.com/yorkie) - -**Yorkie Liu** <yorkiefixer@gmail.com> -* [yosuke-furukawa](https://github.com/yosuke-furukawa) - -**Yosuke Furukawa** <yosuke.furukawa@gmail.com> - -### Collaborator Emeriti - -* [isaacs](https://github.com/isaacs) - -**Isaac Z. Schlueter** <i@izs.me> -* [lxe](https://github.com/lxe) - -**Aleksey Smolenchuk** <lxe@lxe.co> -* [monsanto](https://github.com/monsanto) - -**Christopher Monsanto** <chris@monsan.to> -* [Olegas](https://github.com/Olegas) - -**Oleg Elifantiev** <oleg@elifantiev.ru> -* [petkaantonov](https://github.com/petkaantonov) - -**Petka Antonov** <petka_antonov@hotmail.com> -* [piscisaureus](https://github.com/piscisaureus) - -**Bert Belder** <bertbelder@gmail.com> -* [rlidwka](https://github.com/rlidwka) - -**Alex Kocharin** <alex@kocharin.ru> -* [tellnes](https://github.com/tellnes) - -**Christian Tellnes** <christian@tellnes.no> - -Collaborators follow the [COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md) in -maintaining the Node.js project. - -### Release Team - -Node.js releases are signed with one of the following GPG keys: - -* **Colin Ihrig** <cjihrig@gmail.com> -`94AE36675C464D64BAFA68DD7434390BDBE9B9C5` -* **Evan Lucas** <evanlucas@me.com> -`B9AE9905FFD7803F25714661B63B535A4C206CA9` -* **Italo A. Casas** <me@italoacasas.com> -`56730D5401028683275BD23C23EFEFE93C4CFFFE` -* **James M Snell** <jasnell@keybase.io> -`71DCFD284A79C3B38668286BC97EC7A07EDE3FC1` -* **Jeremiah Senkpiel** <fishrock@keybase.io> -`FD3A5288F042B6850C66B31F09FE44734EB7990E` -* **Myles Borins** <myles.borins@gmail.com> -`C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8` -* **Rod Vagg** <rod@vagg.org> -`DD8F2338BAE7501E3DD5AC78C273792F7D83545D` - -The full set of trusted release keys can be imported by running: - -```shell -gpg --keyserver pool.sks-keyservers.net --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 -gpg --keyserver pool.sks-keyservers.net --recv-keys FD3A5288F042B6850C66B31F09FE44734EB7990E -gpg --keyserver pool.sks-keyservers.net --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 -gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D -gpg --keyserver pool.sks-keyservers.net --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 -gpg --keyserver pool.sks-keyservers.net --recv-keys B9AE9905FFD7803F25714661B63B535A4C206CA9 -gpg --keyserver pool.sks-keyservers.net --recv-keys 56730D5401028683275BD23C23EFEFE93C4CFFFE -``` - -See the section above on [Verifying Binaries](#verifying-binaries) for details -on what to do with these keys to verify that a downloaded file is official. - -Previous releases may also have been signed with one of the following GPG keys: - -* **Chris Dickinson** <christopher.s.dickinson@gmail.com> -`9554F04D7259F04124DE6B476D5A82AC7E37093B` -* **Isaac Z. Schlueter** <i@izs.me> -`93C7E9E91B49E432C2F75674B0A78B0A6C481CF6` -* **Julien Gilli** <jgilli@fastmail.fm> -`114F43EE0176B71C7BC219DD50A3051F888C628D` -* **Timothy J Fontaine** <tjfontaine@gmail.com> -`7937DFD2AB06298B2293C3187D33FF9D0246406D` - -### Working Groups - -Information on the current Node.js Working Groups can be found in the -[TSC repository](https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md). - -[npm]: https://www.npmjs.com -[Website]: https://nodejs.org/en/ -[Contributing to the project]: CONTRIBUTING.md -[Node.js Help]: https://github.com/nodejs/help -[Node.js Moderation Policy]: https://github.com/nodejs/TSC/blob/master/Moderation-Policy.md -[#node.js on chat.freenode.net]: https://webchat.freenode.net?channels=node.js&uio=d4 -[#node-dev on chat.freenode.net]: https://webchat.freenode.net?channels=node-dev&uio=d4 -[Code of Conduct]: https://github.com/nodejs/TSC/blob/master/CODE_OF_CONDUCT.md +This project is bound by a [Code of Conduct](https://github.com/nodejs/TSC/blob/master/CODE_OF_CONDUCT.md). From 3b8c3e19f8acbaa4cb9126a955620bf14b276615 Mon Sep 17 00:00:00 2001 From: "Node.js Jenkins CI" Date: Thu, 26 Oct 2017 05:55:37 +0000 Subject: [PATCH 2/8] deps: update V8 to 6.4.132 --- deps/v8/.git-blame-ignore-revs | 22 + deps/v8/.gitignore | 8 +- deps/v8/.vpython | 32 + deps/v8/AUTHORS | 10 +- deps/v8/BUILD.gn | 159 +- deps/v8/ChangeLog | 2285 ++++++++ deps/v8/DEPS | 305 +- deps/v8/Makefile | 26 +- deps/v8/PRESUBMIT.py | 72 +- .../trace_event/common/trace_event_common.h | 15 +- deps/v8/gni/isolate.gni | 11 +- deps/v8/gypfiles/all.gyp | 1 - deps/v8/gypfiles/features.gypi | 8 +- deps/v8/gypfiles/gyp_environment.py | 3 - deps/v8/gypfiles/gyp_v8 | 12 +- deps/v8/gypfiles/isolate.gypi | 2 +- deps/v8/gypfiles/run-tests-legacy.py | 50 + deps/v8/gypfiles/toolchain.gypi | 1 + deps/v8/gypfiles/vs_toolchain.py | 371 -- .../v8/gypfiles/win/msvs_dependencies.isolate | 8 +- deps/v8/include/v8-inspector.h | 2 + deps/v8/include/v8-platform.h | 5 +- deps/v8/include/v8-util.h | 7 +- deps/v8/include/v8-version-string.h | 7 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8.h | 133 +- deps/v8/infra/config/cq.cfg | 22 +- deps/v8/infra/mb/mb_config.pyl | 85 +- deps/v8/samples/hello-world.cc | 42 +- deps/v8/samples/process.cc | 26 +- deps/v8/src/OWNERS | 5 +- deps/v8/src/accessors.cc | 155 +- deps/v8/src/address-map.cc | 2 +- deps/v8/src/allocation.cc | 103 +- deps/v8/src/allocation.h | 91 +- deps/v8/src/api-arguments.h | 26 +- deps/v8/src/api-natives.cc | 8 +- deps/v8/src/api.cc | 604 +- deps/v8/src/api.h | 124 +- deps/v8/src/arguments.h | 2 - deps/v8/src/arm/assembler-arm-inl.h | 33 +- deps/v8/src/arm/assembler-arm.cc | 373 +- deps/v8/src/arm/assembler-arm.h | 456 +- deps/v8/src/arm/code-stubs-arm.cc | 386 +- deps/v8/src/arm/code-stubs-arm.h | 86 +- deps/v8/src/arm/codegen-arm.cc | 108 +- deps/v8/src/arm/codegen-arm.h | 33 - deps/v8/src/arm/constants-arm.cc | 17 +- deps/v8/src/arm/constants-arm.h | 5 +- deps/v8/src/arm/deoptimizer-arm.cc | 20 +- deps/v8/src/arm/disasm-arm.cc | 12 +- deps/v8/src/arm/eh-frame-arm.cc | 8 +- deps/v8/src/arm/frame-constants-arm.cc | 9 + deps/v8/src/arm/interface-descriptors-arm.cc | 41 +- deps/v8/src/arm/macro-assembler-arm.cc | 689 +-- deps/v8/src/arm/macro-assembler-arm.h | 235 +- deps/v8/src/arm/simulator-arm.cc | 314 +- deps/v8/src/arm/simulator-arm.h | 20 +- deps/v8/src/arm64/assembler-arm64-inl.h | 179 +- deps/v8/src/arm64/assembler-arm64.cc | 70 +- deps/v8/src/arm64/assembler-arm64.h | 387 +- deps/v8/src/arm64/code-stubs-arm64.cc | 508 +- deps/v8/src/arm64/code-stubs-arm64.h | 103 +- deps/v8/src/arm64/codegen-arm64.cc | 96 - deps/v8/src/arm64/codegen-arm64.h | 32 - deps/v8/src/arm64/cpu-arm64.cc | 4 +- deps/v8/src/arm64/decoder-arm64-inl.h | 18 +- deps/v8/src/arm64/deoptimizer-arm64.cc | 6 +- deps/v8/src/arm64/disasm-arm64.cc | 64 +- deps/v8/src/arm64/eh-frame-arm64.cc | 10 +- deps/v8/src/arm64/frame-constants-arm64.cc | 13 + deps/v8/src/arm64/frame-constants-arm64.h | 5 +- .../src/arm64/instructions-arm64-constants.cc | 46 + deps/v8/src/arm64/instructions-arm64.cc | 9 +- deps/v8/src/arm64/instructions-arm64.h | 50 +- deps/v8/src/arm64/instrument-arm64.cc | 11 +- deps/v8/src/arm64/instrument-arm64.h | 5 +- .../src/arm64/interface-descriptors-arm64.cc | 52 +- deps/v8/src/arm64/macro-assembler-arm64-inl.h | 49 +- deps/v8/src/arm64/macro-assembler-arm64.cc | 775 +-- deps/v8/src/arm64/macro-assembler-arm64.h | 302 +- deps/v8/src/arm64/simulator-arm64.cc | 101 +- deps/v8/src/arm64/simulator-arm64.h | 11 +- deps/v8/src/arm64/simulator-logic-arm64.cc | 2 +- deps/v8/src/arm64/utils-arm64.cc | 7 +- deps/v8/src/asmjs/asm-js.cc | 32 +- deps/v8/src/asmjs/asm-parser.cc | 79 +- deps/v8/src/asmjs/asm-parser.h | 1 - deps/v8/src/asmjs/asm-scanner.cc | 7 +- deps/v8/src/asmjs/asm-types.cc | 6 +- deps/v8/src/asmjs/asm-types.h | 4 +- deps/v8/src/asmjs/switch-logic.cc | 2 + deps/v8/src/assembler.cc | 126 +- deps/v8/src/assembler.h | 145 +- deps/v8/src/assert-scope.cc | 6 +- deps/v8/src/ast/ast-expression-rewriter.cc | 42 +- deps/v8/src/ast/ast-numbering.cc | 201 +- deps/v8/src/ast/ast-numbering.h | 9 +- deps/v8/src/ast/ast-source-ranges.h | 8 +- deps/v8/src/ast/ast-traversal-visitor.h | 40 +- deps/v8/src/ast/ast-value-factory.cc | 61 +- deps/v8/src/ast/ast-value-factory.h | 95 +- deps/v8/src/ast/ast.cc | 412 +- deps/v8/src/ast/ast.h | 987 ++-- deps/v8/src/ast/context-slot-cache.cc | 6 - deps/v8/src/ast/context-slot-cache.h | 4 +- deps/v8/src/ast/modules.h | 17 +- deps/v8/src/ast/prettyprinter.cc | 121 +- deps/v8/src/ast/scopes.cc | 109 +- deps/v8/src/ast/scopes.h | 34 +- deps/v8/src/ast/variables.h | 4 +- deps/v8/src/bailout-reason.cc | 2 +- deps/v8/src/bailout-reason.h | 9 - deps/v8/src/base.isolate | 4 +- deps/v8/src/base/bits.h | 46 +- deps/v8/src/base/build_config.h | 4 +- deps/v8/src/base/cpu.cc | 84 +- deps/v8/src/base/debug/stack_trace.cc | 2 +- deps/v8/src/base/debug/stack_trace_android.cc | 2 +- deps/v8/src/base/debug/stack_trace_posix.cc | 28 +- deps/v8/src/base/debug/stack_trace_win.cc | 16 +- deps/v8/src/base/division-by-constant.cc | 2 +- deps/v8/src/base/logging.cc | 16 + deps/v8/src/base/logging.h | 122 +- deps/v8/src/base/once.h | 3 +- deps/v8/src/base/platform/OWNERS | 6 + .../src/base/platform/condition-variable.cc | 2 +- deps/v8/src/base/platform/elapsed-timer.h | 4 +- deps/v8/src/base/platform/mutex.cc | 2 +- deps/v8/src/base/platform/platform-aix.cc | 200 +- deps/v8/src/base/platform/platform-cygwin.cc | 229 +- deps/v8/src/base/platform/platform-freebsd.cc | 216 +- deps/v8/src/base/platform/platform-fuchsia.cc | 144 +- deps/v8/src/base/platform/platform-linux.cc | 232 +- deps/v8/src/base/platform/platform-macos.cc | 160 +- deps/v8/src/base/platform/platform-openbsd.cc | 231 +- .../src/base/platform/platform-posix-time.cc | 2 +- deps/v8/src/base/platform/platform-posix.cc | 63 +- deps/v8/src/base/platform/platform-qnx.cc | 223 +- deps/v8/src/base/platform/platform-solaris.cc | 139 +- deps/v8/src/base/platform/platform-win32.cc | 216 +- deps/v8/src/base/platform/platform.h | 176 +- deps/v8/src/base/platform/semaphore.cc | 8 +- deps/v8/src/base/platform/time.cc | 16 +- deps/v8/src/base/platform/time.h | 2 +- deps/v8/src/base/sys-info.cc | 8 +- deps/v8/src/base/template-utils.h | 58 +- deps/v8/src/base/tsan.h | 47 + .../src/base/utils/random-number-generator.cc | 7 +- deps/v8/src/bignum-dtoa.cc | 20 +- deps/v8/src/bignum.cc | 30 +- deps/v8/src/bootstrapper.cc | 781 +-- deps/v8/src/bootstrapper.h | 36 +- deps/v8/src/boxed-float.h | 60 +- deps/v8/src/builtins/arm/builtins-arm.cc | 498 +- deps/v8/src/builtins/arm64/builtins-arm64.cc | 1166 ++-- deps/v8/src/builtins/builtins-api.cc | 3 +- .../v8/src/builtins/builtins-arguments-gen.cc | 10 +- deps/v8/src/builtins/builtins-array-gen.cc | 629 ++- deps/v8/src/builtins/builtins-array.cc | 27 +- .../builtins/builtins-async-function-gen.cc | 8 +- deps/v8/src/builtins/builtins-async-gen.cc | 55 +- .../builtins/builtins-async-generator-gen.cc | 2 +- deps/v8/src/builtins/builtins-bigint.cc | 164 + deps/v8/src/builtins/builtins-call-gen.cc | 38 +- deps/v8/src/builtins/builtins-callsite.cc | 1 - .../src/builtins/builtins-collections-gen.cc | 199 +- deps/v8/src/builtins/builtins-collections.cc | 4 +- deps/v8/src/builtins/builtins-console.cc | 54 +- .../src/builtins/builtins-constructor-gen.cc | 468 +- .../src/builtins/builtins-constructor-gen.h | 26 +- deps/v8/src/builtins/builtins-constructor.h | 2 +- .../src/builtins/builtins-conversion-gen.cc | 38 +- deps/v8/src/builtins/builtins-date-gen.cc | 4 +- deps/v8/src/builtins/builtins-date.cc | 2 +- deps/v8/src/builtins/builtins-definitions.h | 227 +- deps/v8/src/builtins/builtins-descriptors.h | 3 +- deps/v8/src/builtins/builtins-forin-gen.cc | 209 - deps/v8/src/builtins/builtins-forin-gen.h | 38 - deps/v8/src/builtins/builtins-function-gen.cc | 196 +- deps/v8/src/builtins/builtins-function.cc | 2 +- .../v8/src/builtins/builtins-generator-gen.cc | 3 +- deps/v8/src/builtins/builtins-handler-gen.cc | 35 +- deps/v8/src/builtins/builtins-ic-gen.cc | 13 +- deps/v8/src/builtins/builtins-internal-gen.cc | 264 +- deps/v8/src/builtins/builtins-intl-gen.cc | 1 + deps/v8/src/builtins/builtins-intl.cc | 4 +- deps/v8/src/builtins/builtins-iterator-gen.cc | 2 + deps/v8/src/builtins/builtins-math-gen.cc | 3 +- deps/v8/src/builtins/builtins-number-gen.cc | 203 +- deps/v8/src/builtins/builtins-object-gen.cc | 379 +- deps/v8/src/builtins/builtins-object.cc | 58 +- deps/v8/src/builtins/builtins-promise-gen.cc | 370 +- deps/v8/src/builtins/builtins-promise-gen.h | 7 +- deps/v8/src/builtins/builtins-proxy-gen.cc | 269 +- deps/v8/src/builtins/builtins-proxy-gen.h | 14 + .../builtins/builtins-proxy-helpers-gen.cc | 160 - .../src/builtins/builtins-proxy-helpers-gen.h | 38 - deps/v8/src/builtins/builtins-reflect-gen.cc | 25 + deps/v8/src/builtins/builtins-reflect.cc | 37 +- deps/v8/src/builtins/builtins-regexp-gen.cc | 101 +- .../builtins-sharedarraybuffer-gen.cc | 5 +- deps/v8/src/builtins/builtins-string-gen.cc | 796 ++- deps/v8/src/builtins/builtins-string-gen.h | 27 +- deps/v8/src/builtins/builtins-string.cc | 82 +- .../src/builtins/builtins-typedarray-gen.cc | 71 +- deps/v8/src/builtins/builtins-typedarray.cc | 263 +- deps/v8/src/builtins/builtins-utils.h | 6 +- deps/v8/src/builtins/builtins-wasm-gen.cc | 2 +- deps/v8/src/builtins/builtins.cc | 98 +- deps/v8/src/builtins/builtins.h | 29 +- deps/v8/src/builtins/ia32/builtins-ia32.cc | 513 +- deps/v8/src/builtins/mips/builtins-mips.cc | 496 +- .../v8/src/builtins/mips64/builtins-mips64.cc | 511 +- deps/v8/src/builtins/ppc/OWNERS | 3 +- deps/v8/src/builtins/ppc/builtins-ppc.cc | 517 +- deps/v8/src/builtins/s390/OWNERS | 3 +- deps/v8/src/builtins/s390/builtins-s390.cc | 512 +- .../src/builtins/setup-builtins-internal.cc | 87 +- deps/v8/src/builtins/x64/builtins-x64.cc | 512 +- deps/v8/src/cached-powers.cc | 2 +- deps/v8/src/char-predicates.h | 2 +- deps/v8/src/code-events.h | 37 - deps/v8/src/code-factory.cc | 139 +- deps/v8/src/code-factory.h | 21 +- deps/v8/src/code-stub-assembler.cc | 3291 ++++++----- deps/v8/src/code-stub-assembler.h | 333 +- deps/v8/src/code-stubs.cc | 126 +- deps/v8/src/code-stubs.h | 146 +- deps/v8/src/codegen.cc | 247 +- deps/v8/src/codegen.h | 81 - deps/v8/src/collector.h | 33 +- deps/v8/src/compilation-cache.cc | 19 +- deps/v8/src/compilation-cache.h | 10 +- deps/v8/src/compilation-dependencies.cc | 13 +- deps/v8/src/compilation-dependencies.h | 3 +- deps/v8/src/compilation-info.cc | 49 +- deps/v8/src/compilation-info.h | 70 +- .../optimizing-compile-dispatcher.cc | 14 +- .../unoptimized-compile-job.cc | 18 +- deps/v8/src/compiler.cc | 180 +- deps/v8/src/compiler.h | 26 +- deps/v8/src/compiler/access-builder.cc | 56 +- deps/v8/src/compiler/access-builder.h | 20 +- deps/v8/src/compiler/access-info.cc | 36 + deps/v8/src/compiler/access-info.h | 7 +- deps/v8/src/compiler/allocation-builder.h | 98 + .../v8/src/compiler/arm/code-generator-arm.cc | 216 +- .../compiler/arm/instruction-selector-arm.cc | 18 +- .../compiler/arm64/code-generator-arm64.cc | 170 +- .../arm64/instruction-selector-arm64.cc | 12 +- deps/v8/src/compiler/branch-elimination.cc | 2 +- deps/v8/src/compiler/bytecode-analysis.cc | 17 +- .../v8/src/compiler/bytecode-graph-builder.cc | 672 ++- deps/v8/src/compiler/bytecode-graph-builder.h | 72 +- deps/v8/src/compiler/c-linkage.cc | 4 +- deps/v8/src/compiler/code-assembler.cc | 416 +- deps/v8/src/compiler/code-assembler.h | 558 +- deps/v8/src/compiler/code-generator.cc | 87 +- deps/v8/src/compiler/code-generator.h | 31 +- deps/v8/src/compiler/common-operator.cc | 45 +- deps/v8/src/compiler/common-operator.h | 33 +- deps/v8/src/compiler/dead-code-elimination.h | 1 - .../src/compiler/effect-control-linearizer.cc | 994 +++- .../src/compiler/effect-control-linearizer.h | 31 +- .../src/compiler/escape-analysis-reducer.cc | 549 +- .../v8/src/compiler/escape-analysis-reducer.h | 107 +- deps/v8/src/compiler/escape-analysis.cc | 2299 +++----- deps/v8/src/compiler/escape-analysis.h | 236 +- deps/v8/src/compiler/frame.h | 8 +- deps/v8/src/compiler/graph-assembler.cc | 1 - deps/v8/src/compiler/graph-assembler.h | 133 +- deps/v8/src/compiler/graph-reducer.cc | 4 +- deps/v8/src/compiler/graph-visualizer.cc | 98 +- deps/v8/src/compiler/graph-visualizer.h | 5 + .../src/compiler/ia32/code-generator-ia32.cc | 159 +- .../ia32/instruction-selector-ia32.cc | 5 +- deps/v8/src/compiler/instruction-scheduler.cc | 8 +- deps/v8/src/compiler/instruction-scheduler.h | 2 +- deps/v8/src/compiler/instruction-selector.cc | 29 +- deps/v8/src/compiler/instruction.cc | 4 +- deps/v8/src/compiler/instruction.h | 52 +- deps/v8/src/compiler/int64-lowering.cc | 83 +- deps/v8/src/compiler/js-builtin-reducer.cc | 618 +- deps/v8/src/compiler/js-builtin-reducer.h | 6 +- deps/v8/src/compiler/js-call-reducer.cc | 1147 +++- deps/v8/src/compiler/js-call-reducer.h | 29 + .../src/compiler/js-context-specialization.cc | 3 +- deps/v8/src/compiler/js-create-lowering.cc | 642 ++- deps/v8/src/compiler/js-create-lowering.h | 20 +- deps/v8/src/compiler/js-generic-lowering.cc | 96 +- deps/v8/src/compiler/js-generic-lowering.h | 1 - deps/v8/src/compiler/js-graph.cc | 2 +- deps/v8/src/compiler/js-graph.h | 3 + deps/v8/src/compiler/js-inlining-heuristic.cc | 424 +- deps/v8/src/compiler/js-inlining-heuristic.h | 13 +- deps/v8/src/compiler/js-inlining.cc | 8 +- deps/v8/src/compiler/js-inlining.h | 1 + deps/v8/src/compiler/js-intrinsic-lowering.cc | 35 +- deps/v8/src/compiler/js-intrinsic-lowering.h | 2 - .../js-native-context-specialization.cc | 595 +- .../js-native-context-specialization.h | 38 +- deps/v8/src/compiler/js-operator.cc | 201 +- deps/v8/src/compiler/js-operator.h | 82 +- deps/v8/src/compiler/js-type-hint-lowering.cc | 144 +- deps/v8/src/compiler/js-type-hint-lowering.h | 129 +- deps/v8/src/compiler/js-typed-lowering.cc | 425 +- deps/v8/src/compiler/js-typed-lowering.h | 3 +- deps/v8/src/compiler/jump-threading.cc | 3 +- deps/v8/src/compiler/linkage.cc | 2 - deps/v8/src/compiler/linkage.h | 44 +- deps/v8/src/compiler/load-elimination.cc | 262 +- deps/v8/src/compiler/load-elimination.h | 26 +- .../src/compiler/loop-variable-optimizer.cc | 5 +- .../v8/src/compiler/machine-graph-verifier.cc | 6 +- .../src/compiler/machine-operator-reducer.cc | 5 +- deps/v8/src/compiler/machine-operator.cc | 4 +- .../src/compiler/mips/code-generator-mips.cc | 294 +- .../mips/instruction-selector-mips.cc | 94 +- .../compiler/mips64/code-generator-mips64.cc | 266 +- .../mips64/instruction-selector-mips64.cc | 107 +- deps/v8/src/compiler/move-optimizer.cc | 2 +- .../compiler/new-escape-analysis-reducer.cc | 411 -- .../compiler/new-escape-analysis-reducer.h | 122 - deps/v8/src/compiler/new-escape-analysis.cc | 739 --- deps/v8/src/compiler/new-escape-analysis.h | 181 - deps/v8/src/compiler/node-properties.cc | 17 +- deps/v8/src/compiler/node-properties.h | 5 + deps/v8/src/compiler/node.cc | 24 +- deps/v8/src/compiler/node.h | 2 +- deps/v8/src/compiler/opcodes.h | 138 +- deps/v8/src/compiler/operation-typer.cc | 38 +- deps/v8/src/compiler/operator-properties.cc | 2 +- deps/v8/src/compiler/operator.cc | 4 +- deps/v8/src/compiler/operator.h | 4 +- deps/v8/src/compiler/osr.cc | 3 +- deps/v8/src/compiler/pipeline.cc | 301 +- deps/v8/src/compiler/pipeline.h | 3 +- deps/v8/src/compiler/ppc/OWNERS | 3 +- .../v8/src/compiler/ppc/code-generator-ppc.cc | 379 +- .../compiler/ppc/instruction-selector-ppc.cc | 23 +- .../src/compiler/property-access-builder.cc | 56 +- .../v8/src/compiler/property-access-builder.h | 2 + deps/v8/src/compiler/raw-machine-assembler.cc | 27 +- deps/v8/src/compiler/raw-machine-assembler.h | 25 +- .../v8/src/compiler/redundancy-elimination.cc | 6 +- .../compiler/register-allocator-verifier.cc | 6 +- deps/v8/src/compiler/register-allocator.cc | 26 +- deps/v8/src/compiler/register-allocator.h | 8 +- deps/v8/src/compiler/representation-change.cc | 12 +- deps/v8/src/compiler/representation-change.h | 2 +- deps/v8/src/compiler/s390/OWNERS | 3 +- .../src/compiler/s390/code-generator-s390.cc | 323 +- .../compiler/s390/instruction-codes-s390.h | 1 + .../s390/instruction-scheduler-s390.cc | 1 + .../s390/instruction-selector-s390.cc | 42 +- deps/v8/src/compiler/schedule.cc | 6 +- deps/v8/src/compiler/scheduler.cc | 156 +- deps/v8/src/compiler/scheduler.h | 9 +- deps/v8/src/compiler/simd-scalar-lowering.cc | 34 +- deps/v8/src/compiler/simplified-lowering.cc | 268 +- deps/v8/src/compiler/simplified-lowering.h | 1 - deps/v8/src/compiler/simplified-operator.cc | 470 +- deps/v8/src/compiler/simplified-operator.h | 111 +- deps/v8/src/compiler/state-values-utils.cc | 22 +- .../src/compiler/store-store-elimination.cc | 6 +- deps/v8/src/compiler/type-cache.h | 1 + deps/v8/src/compiler/typed-optimization.cc | 102 + deps/v8/src/compiler/typed-optimization.h | 4 + deps/v8/src/compiler/typer.cc | 112 +- deps/v8/src/compiler/types.cc | 23 +- deps/v8/src/compiler/types.h | 4 +- .../src/compiler/value-numbering-reducer.cc | 4 +- deps/v8/src/compiler/verifier.cc | 137 +- deps/v8/src/compiler/verifier.h | 4 +- deps/v8/src/compiler/wasm-compiler.cc | 1385 +++-- deps/v8/src/compiler/wasm-compiler.h | 217 +- deps/v8/src/compiler/wasm-linkage.cc | 35 +- .../v8/src/compiler/x64/code-generator-x64.cc | 312 +- .../compiler/x64/instruction-scheduler-x64.cc | 4 +- .../compiler/x64/instruction-selector-x64.cc | 16 +- .../compiler/x64/unwinding-info-writer-x64.cc | 6 +- deps/v8/src/compiler/zone-stats.cc | 2 + deps/v8/src/contexts-inl.h | 4 +- deps/v8/src/contexts.cc | 78 +- deps/v8/src/contexts.h | 22 +- deps/v8/src/conversions-inl.h | 605 -- deps/v8/src/conversions.cc | 905 ++- deps/v8/src/conversions.h | 47 +- deps/v8/src/counters.cc | 37 +- deps/v8/src/counters.h | 288 +- deps/v8/src/d8-console.cc | 81 +- deps/v8/src/d8-console.h | 6 + deps/v8/src/d8-posix.cc | 49 +- deps/v8/src/d8.cc | 340 +- deps/v8/src/d8.h | 40 +- deps/v8/src/d8.js | 6 +- deps/v8/src/date.cc | 30 +- deps/v8/src/date.h | 4 +- deps/v8/src/dateparser-inl.h | 2 +- deps/v8/src/dateparser.cc | 2 +- deps/v8/src/debug/OWNERS | 2 +- deps/v8/src/debug/arm/debug-arm.cc | 2 +- deps/v8/src/debug/arm64/debug-arm64.cc | 1 - deps/v8/src/debug/debug-coverage.cc | 78 +- deps/v8/src/debug/debug-coverage.h | 8 +- deps/v8/src/debug/debug-evaluate.cc | 105 +- deps/v8/src/debug/debug-evaluate.h | 9 +- deps/v8/src/debug/debug-frames.cc | 41 +- deps/v8/src/debug/debug-frames.h | 6 +- deps/v8/src/debug/debug-interface.h | 102 +- deps/v8/src/debug/debug-scope-iterator.cc | 13 +- deps/v8/src/debug/debug-scopes.cc | 29 +- deps/v8/src/debug/debug-scopes.h | 4 +- .../src/debug/debug-stack-trace-iterator.cc | 34 +- .../v8/src/debug/debug-stack-trace-iterator.h | 2 +- deps/v8/src/debug/debug-type-profile.cc | 117 + deps/v8/src/debug/debug-type-profile.h | 45 + deps/v8/src/debug/debug.cc | 145 +- deps/v8/src/debug/debug.h | 7 +- deps/v8/src/debug/ia32/debug-ia32.cc | 2 +- deps/v8/src/debug/liveedit.cc | 113 +- deps/v8/src/debug/liveedit.h | 5 +- deps/v8/src/debug/mips/debug-mips.cc | 2 +- deps/v8/src/debug/mips64/debug-mips64.cc | 2 +- deps/v8/src/debug/mirrors.js | 39 + deps/v8/src/debug/ppc/OWNERS | 3 +- deps/v8/src/debug/ppc/debug-ppc.cc | 2 +- deps/v8/src/debug/s390/OWNERS | 3 +- deps/v8/src/debug/s390/debug-s390.cc | 2 +- deps/v8/src/debug/x64/debug-x64.cc | 2 +- deps/v8/src/deoptimize-reason.h | 15 +- deps/v8/src/deoptimizer.cc | 730 +-- deps/v8/src/deoptimizer.h | 72 +- deps/v8/src/detachable-vector.h | 73 + deps/v8/src/disassembler.cc | 49 +- deps/v8/src/disassembler.h | 2 +- deps/v8/src/diy-fp.h | 2 +- deps/v8/src/double.h | 8 +- deps/v8/src/dtoa.cc | 1 - deps/v8/src/eh-frame.cc | 24 +- deps/v8/src/elements.cc | 213 +- deps/v8/src/elements.h | 16 +- deps/v8/src/execution.cc | 67 +- .../externalize-string-extension.cc | 4 +- .../v8/src/extensions/statistics-extension.cc | 2 +- deps/v8/src/external-reference-table.cc | 22 +- deps/v8/src/external-reference-table.h | 12 +- deps/v8/src/factory-inl.h | 137 + deps/v8/src/factory.cc | 354 +- deps/v8/src/factory.h | 205 +- deps/v8/src/fast-dtoa.cc | 10 +- deps/v8/src/feedback-vector-inl.h | 107 +- deps/v8/src/feedback-vector.cc | 239 +- deps/v8/src/feedback-vector.h | 132 +- deps/v8/src/ffi/OWNERS | 4 - deps/v8/src/ffi/ffi-compiler.cc | 125 - deps/v8/src/ffi/ffi-compiler.h | 37 - deps/v8/src/field-index-inl.h | 4 +- deps/v8/src/field-index.h | 4 +- deps/v8/src/find-and-replace-pattern.h | 37 - deps/v8/src/fixed-dtoa.cc | 13 +- deps/v8/src/flag-definitions.h | 160 +- deps/v8/src/flags.cc | 58 +- deps/v8/src/flags.h | 4 +- deps/v8/src/frame-constants.h | 23 +- deps/v8/src/frames-inl.h | 30 +- deps/v8/src/frames.cc | 207 +- deps/v8/src/frames.h | 82 +- deps/v8/src/futex-emulation.cc | 3 +- deps/v8/src/gdb-jit.cc | 107 +- deps/v8/src/global-handles.cc | 168 +- deps/v8/src/global-handles.h | 14 +- deps/v8/src/globals.h | 106 +- deps/v8/src/handles-inl.h | 11 +- deps/v8/src/handles.cc | 26 +- deps/v8/src/handles.h | 13 +- deps/v8/src/heap-symbols.h | 10 +- deps/v8/src/heap/array-buffer-tracker-inl.h | 23 +- deps/v8/src/heap/array-buffer-tracker.cc | 21 +- deps/v8/src/heap/array-buffer-tracker.h | 9 +- deps/v8/src/heap/barrier.h | 77 + deps/v8/src/heap/code-stats.cc | 6 +- deps/v8/src/heap/concurrent-marking.cc | 222 +- deps/v8/src/heap/concurrent-marking.h | 19 +- deps/v8/src/heap/gc-idle-time-handler.cc | 2 +- deps/v8/src/heap/gc-tracer.cc | 19 +- deps/v8/src/heap/heap-inl.h | 144 +- deps/v8/src/heap/heap.cc | 1234 ++-- deps/v8/src/heap/heap.h | 126 +- deps/v8/src/heap/incremental-marking-job.cc | 2 +- deps/v8/src/heap/incremental-marking.cc | 295 +- deps/v8/src/heap/incremental-marking.h | 160 +- deps/v8/src/heap/local-allocator.h | 10 +- deps/v8/src/heap/mark-compact-inl.h | 316 +- deps/v8/src/heap/mark-compact.cc | 581 +- deps/v8/src/heap/mark-compact.h | 263 +- deps/v8/src/heap/marking.h | 7 - deps/v8/src/heap/memory-reducer.cc | 4 +- deps/v8/src/heap/object-stats.cc | 27 +- deps/v8/src/heap/objects-visiting-inl.h | 246 +- deps/v8/src/heap/objects-visiting.cc | 36 +- deps/v8/src/heap/objects-visiting.h | 42 +- deps/v8/src/heap/remembered-set.h | 4 +- deps/v8/src/heap/scavenger-inl.h | 6 +- deps/v8/src/heap/scavenger.cc | 49 +- deps/v8/src/heap/scavenger.h | 84 +- deps/v8/src/heap/sequential-marking-deque.cc | 100 - deps/v8/src/heap/sequential-marking-deque.h | 156 - deps/v8/src/heap/setup-heap-internal.cc | 634 +++ deps/v8/src/heap/spaces-inl.h | 123 +- deps/v8/src/heap/spaces.cc | 471 +- deps/v8/src/heap/spaces.h | 214 +- deps/v8/src/heap/store-buffer.cc | 4 +- deps/v8/src/heap/store-buffer.h | 2 +- deps/v8/src/heap/worklist.h | 28 + deps/v8/src/ia32/assembler-ia32-inl.h | 91 +- deps/v8/src/ia32/assembler-ia32.cc | 72 +- deps/v8/src/ia32/assembler-ia32.h | 233 +- deps/v8/src/ia32/code-stubs-ia32.cc | 444 +- deps/v8/src/ia32/code-stubs-ia32.h | 127 +- deps/v8/src/ia32/codegen-ia32.cc | 124 +- deps/v8/src/ia32/codegen-ia32.h | 34 - deps/v8/src/ia32/deoptimizer-ia32.cc | 13 +- deps/v8/src/ia32/disasm-ia32.cc | 22 +- deps/v8/src/ia32/frame-constants-ia32.cc | 9 + .../v8/src/ia32/interface-descriptors-ia32.cc | 58 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 611 +- deps/v8/src/ia32/macro-assembler-ia32.h | 233 +- deps/v8/src/ic/access-compiler-data.h | 6 +- deps/v8/src/ic/access-compiler.cc | 30 +- deps/v8/src/ic/access-compiler.h | 31 +- deps/v8/src/ic/accessor-assembler.cc | 592 +- deps/v8/src/ic/accessor-assembler.h | 24 +- deps/v8/src/ic/arm/handler-compiler-arm.cc | 31 +- .../v8/src/ic/arm64/handler-compiler-arm64.cc | 41 +- deps/v8/src/ic/binary-op-assembler.cc | 138 +- deps/v8/src/ic/binary-op-assembler.h | 17 +- deps/v8/src/ic/handler-compiler.cc | 46 +- deps/v8/src/ic/handler-compiler.h | 17 +- deps/v8/src/ic/handler-configuration-inl.h | 38 +- deps/v8/src/ic/handler-configuration.cc | 466 +- deps/v8/src/ic/handler-configuration.h | 114 +- deps/v8/src/ic/ia32/handler-compiler-ia32.cc | 30 +- deps/v8/src/ic/ic-inl.h | 6 +- deps/v8/src/ic/ic.cc | 632 +-- deps/v8/src/ic/ic.h | 60 +- deps/v8/src/ic/keyed-store-generic.cc | 81 +- deps/v8/src/ic/keyed-store-generic.h | 6 +- deps/v8/src/ic/mips/handler-compiler-mips.cc | 31 +- .../src/ic/mips64/handler-compiler-mips64.cc | 31 +- deps/v8/src/ic/ppc/OWNERS | 3 +- deps/v8/src/ic/ppc/handler-compiler-ppc.cc | 31 +- deps/v8/src/ic/s390/OWNERS | 3 +- deps/v8/src/ic/s390/handler-compiler-s390.cc | 31 +- deps/v8/src/ic/stub-cache.cc | 42 +- deps/v8/src/ic/stub-cache.h | 30 +- deps/v8/src/ic/x64/handler-compiler-x64.cc | 29 +- deps/v8/src/icu_util.cc | 6 +- deps/v8/src/inspector/BUILD.gn | 1 - .../src/inspector/injected-script-source.js | 52 +- deps/v8/src/inspector/injected-script.cc | 41 +- deps/v8/src/inspector/injected-script.h | 9 - deps/v8/src/inspector/inspector.gypi | 1 - deps/v8/src/inspector/js_protocol.json | 67 +- deps/v8/src/inspector/script-breakpoint.h | 55 - deps/v8/src/inspector/search-util.cc | 2 +- deps/v8/src/inspector/string-util.cc | 18 +- deps/v8/src/inspector/string-util.h | 1 + .../v8/src/inspector/v8-console-agent-impl.cc | 2 +- deps/v8/src/inspector/v8-console-message.cc | 2 +- deps/v8/src/inspector/v8-console.cc | 13 +- .../src/inspector/v8-debugger-agent-impl.cc | 571 +- .../v8/src/inspector/v8-debugger-agent-impl.h | 21 +- deps/v8/src/inspector/v8-debugger-script.cc | 23 + deps/v8/src/inspector/v8-debugger-script.h | 4 +- deps/v8/src/inspector/v8-debugger.cc | 10 +- deps/v8/src/inspector/v8-debugger.h | 1 - .../src/inspector/v8-injected-script-host.cc | 2 +- .../src/inspector/v8-profiler-agent-impl.cc | 78 +- .../v8/src/inspector/v8-profiler-agent-impl.h | 6 + .../v8/src/inspector/v8-runtime-agent-impl.cc | 242 +- deps/v8/src/inspector/v8-runtime-agent-impl.h | 8 +- deps/v8/src/inspector/v8-stack-trace-impl.cc | 4 +- deps/v8/src/inspector/v8-value-utils.cc | 3 +- deps/v8/src/inspector/wasm-translation.cc | 42 +- deps/v8/src/interface-descriptors.cc | 42 +- deps/v8/src/interface-descriptors.h | 66 +- .../src/interpreter/block-coverage-builder.h | 4 +- .../interpreter/bytecode-array-accessor.cc | 13 +- .../src/interpreter/bytecode-array-accessor.h | 4 + .../src/interpreter/bytecode-array-builder.cc | 164 +- .../src/interpreter/bytecode-array-builder.h | 38 +- .../interpreter/bytecode-array-iterator.cc | 1 + .../bytecode-array-random-iterator.cc | 1 + .../src/interpreter/bytecode-array-writer.cc | 9 +- .../src/interpreter/bytecode-array-writer.h | 7 +- deps/v8/src/interpreter/bytecode-decoder.cc | 20 + deps/v8/src/interpreter/bytecode-flags.cc | 4 +- deps/v8/src/interpreter/bytecode-flags.h | 3 +- deps/v8/src/interpreter/bytecode-generator.cc | 603 +- deps/v8/src/interpreter/bytecode-generator.h | 46 +- deps/v8/src/interpreter/bytecode-label.h | 2 + deps/v8/src/interpreter/bytecode-operands.h | 3 +- .../bytecode-register-optimizer.cc | 4 +- deps/v8/src/interpreter/bytecodes.h | 49 +- .../src/interpreter/constant-array-builder.cc | 14 +- .../src/interpreter/constant-array-builder.h | 4 +- .../src/interpreter/interpreter-assembler.cc | 315 +- .../src/interpreter/interpreter-assembler.h | 28 +- .../src/interpreter/interpreter-generator.cc | 1270 ++--- .../interpreter-intrinsics-generator.cc | 43 +- .../src/interpreter/interpreter-intrinsics.h | 2 +- deps/v8/src/interpreter/interpreter.cc | 59 +- deps/v8/src/interpreter/interpreter.h | 8 +- deps/v8/src/isolate-inl.h | 32 +- deps/v8/src/isolate.cc | 874 +-- deps/v8/src/isolate.h | 120 +- deps/v8/src/js/array.js | 63 +- deps/v8/src/js/intl.js | 80 +- deps/v8/src/js/macros.py | 37 +- deps/v8/src/js/max-min.js | 30 - deps/v8/src/js/string.js | 262 - deps/v8/src/js/templates.js | 84 - deps/v8/src/js/typedarray.js | 90 +- deps/v8/src/js/v8natives.js | 19 +- deps/v8/src/json-parser.cc | 6 +- deps/v8/src/json-stringifier.cc | 29 +- deps/v8/src/keys.cc | 243 +- deps/v8/src/layout-descriptor-inl.h | 4 +- deps/v8/src/layout-descriptor.cc | 4 +- deps/v8/src/libplatform/default-platform.cc | 20 +- deps/v8/src/libplatform/default-platform.h | 1 + deps/v8/src/libplatform/task-queue.cc | 2 +- deps/v8/src/libplatform/task-queue.h | 2 +- .../src/libplatform/tracing/trace-buffer.cc | 4 +- .../src/libplatform/tracing/trace-config.cc | 2 +- .../src/libplatform/tracing/trace-object.cc | 4 +- .../src/libplatform/tracing/trace-writer.cc | 2 +- .../libplatform/tracing/tracing-controller.cc | 2 +- deps/v8/src/libsampler/sampler.cc | 4 +- deps/v8/src/list-inl.h | 251 - deps/v8/src/list.h | 217 - deps/v8/src/locked-queue-inl.h | 4 +- deps/v8/src/log-utils.cc | 316 +- deps/v8/src/log-utils.h | 83 +- deps/v8/src/log.cc | 771 +-- deps/v8/src/log.h | 40 +- deps/v8/src/lookup-cache-inl.h | 2 +- deps/v8/src/lookup-cache.cc | 2 +- deps/v8/src/lookup-cache.h | 4 +- deps/v8/src/lookup.cc | 11 +- deps/v8/src/machine-type.h | 95 +- deps/v8/src/macro-assembler.h | 27 +- deps/v8/src/managed.h | 11 +- deps/v8/src/map-updater.cc | 12 +- deps/v8/src/messages.cc | 35 +- deps/v8/src/messages.h | 12 +- deps/v8/src/mips/assembler-mips-inl.h | 59 +- deps/v8/src/mips/assembler-mips.cc | 181 +- deps/v8/src/mips/assembler-mips.h | 338 +- deps/v8/src/mips/code-stubs-mips.cc | 370 +- deps/v8/src/mips/code-stubs-mips.h | 92 +- deps/v8/src/mips/codegen-mips.cc | 108 +- deps/v8/src/mips/codegen-mips.h | 33 - deps/v8/src/mips/constants-mips.cc | 18 +- deps/v8/src/mips/constants-mips.h | 56 +- deps/v8/src/mips/deoptimizer-mips.cc | 14 +- deps/v8/src/mips/disasm-mips.cc | 13 +- deps/v8/src/mips/frame-constants-mips.cc | 9 + .../v8/src/mips/interface-descriptors-mips.cc | 55 +- deps/v8/src/mips/macro-assembler-mips.cc | 1013 ++-- deps/v8/src/mips/macro-assembler-mips.h | 246 +- deps/v8/src/mips/simulator-mips.cc | 1298 ++++- deps/v8/src/mips/simulator-mips.h | 8 + deps/v8/src/mips64/assembler-mips64-inl.h | 49 +- deps/v8/src/mips64/assembler-mips64.cc | 381 +- deps/v8/src/mips64/assembler-mips64.h | 333 +- deps/v8/src/mips64/code-stubs-mips64.cc | 371 +- deps/v8/src/mips64/code-stubs-mips64.h | 93 +- deps/v8/src/mips64/codegen-mips64.cc | 108 +- deps/v8/src/mips64/codegen-mips64.h | 33 - deps/v8/src/mips64/constants-mips64.cc | 18 +- deps/v8/src/mips64/constants-mips64.h | 60 +- deps/v8/src/mips64/deoptimizer-mips64.cc | 17 +- deps/v8/src/mips64/disasm-mips64.cc | 13 +- deps/v8/src/mips64/frame-constants-mips64.cc | 9 + .../mips64/interface-descriptors-mips64.cc | 55 +- deps/v8/src/mips64/macro-assembler-mips64.cc | 995 ++-- deps/v8/src/mips64/macro-assembler-mips64.h | 262 +- deps/v8/src/mips64/simulator-mips64.cc | 1442 ++++- deps/v8/src/mips64/simulator-mips64.h | 9 + deps/v8/src/objects-body-descriptors-inl.h | 44 +- deps/v8/src/objects-debug.cc | 171 +- deps/v8/src/objects-inl.h | 1746 ++---- deps/v8/src/objects-printer.cc | 114 +- deps/v8/src/objects.cc | 1511 +++-- deps/v8/src/objects.h | 1827 +----- deps/v8/src/objects/bigint-inl.h | 56 + deps/v8/src/objects/bigint.cc | 1610 ++++++ deps/v8/src/objects/bigint.h | 201 + deps/v8/src/objects/code-cache-inl.h | 28 - deps/v8/src/objects/code-cache.h | 110 - deps/v8/src/objects/code-inl.h | 723 +++ deps/v8/src/objects/code.h | 923 +++ deps/v8/src/objects/compilation-cache-inl.h | 2 +- deps/v8/src/objects/compilation-cache.h | 1 + deps/v8/src/objects/debug-objects.cc | 12 +- deps/v8/src/objects/debug-objects.h | 2 + deps/v8/src/objects/descriptor-array.h | 55 +- deps/v8/src/objects/dictionary.h | 14 +- deps/v8/src/objects/frame-array-inl.h | 1 + deps/v8/src/objects/hash-table.h | 4 +- deps/v8/src/objects/intl-objects.cc | 164 +- deps/v8/src/objects/js-array-inl.h | 243 + deps/v8/src/objects/js-array.h | 345 ++ deps/v8/src/objects/js-regexp-inl.h | 84 + deps/v8/src/objects/js-regexp.h | 164 + deps/v8/src/objects/map.h | 149 +- deps/v8/src/objects/module-inl.h | 1 + deps/v8/src/objects/module.cc | 26 +- deps/v8/src/objects/module.h | 8 +- deps/v8/src/objects/name-inl.h | 2 + deps/v8/src/objects/name.h | 5 +- deps/v8/src/objects/object-macros.h | 14 +- .../objects/property-descriptor-object-inl.h | 23 + .../src/objects/property-descriptor-object.h | 64 + deps/v8/src/objects/scope-info.cc | 18 +- deps/v8/src/objects/scope-info.h | 23 +- deps/v8/src/objects/script-inl.h | 5 +- deps/v8/src/objects/script.h | 11 +- .../v8/src/objects/shared-function-info-inl.h | 43 +- deps/v8/src/objects/shared-function-info.h | 31 +- deps/v8/src/objects/string-inl.h | 32 +- deps/v8/src/objects/string.h | 14 +- deps/v8/src/objects/template-objects.cc | 128 + deps/v8/src/objects/template-objects.h | 79 + deps/v8/src/parsing/OWNERS | 2 +- .../{ => parsing}/background-parsing-task.cc | 5 +- .../{ => parsing}/background-parsing-task.h | 7 +- deps/v8/src/parsing/func-name-inferrer.cc | 3 +- deps/v8/src/parsing/parse-info.cc | 26 +- deps/v8/src/parsing/parse-info.h | 29 +- deps/v8/src/parsing/parser-base.h | 312 +- deps/v8/src/parsing/parser.cc | 454 +- deps/v8/src/parsing/parser.h | 89 +- deps/v8/src/parsing/parsing.cc | 6 +- deps/v8/src/parsing/pattern-rewriter.cc | 10 +- deps/v8/src/parsing/preparsed-scope-data.cc | 404 +- deps/v8/src/parsing/preparsed-scope-data.h | 110 +- deps/v8/src/parsing/preparser.cc | 20 +- deps/v8/src/parsing/preparser.h | 113 +- deps/v8/src/parsing/rewriter.cc | 4 + .../src/parsing/scanner-character-streams.cc | 12 +- deps/v8/src/parsing/scanner.cc | 90 +- deps/v8/src/parsing/scanner.h | 32 +- deps/v8/src/parsing/token.h | 394 +- .../src/pending-compilation-error-handler.cc | 26 +- .../src/pending-compilation-error-handler.h | 16 +- deps/v8/src/perf-jit.cc | 11 +- deps/v8/src/ppc/OWNERS | 3 +- deps/v8/src/ppc/assembler-ppc-inl.h | 80 +- deps/v8/src/ppc/assembler-ppc.cc | 105 +- deps/v8/src/ppc/assembler-ppc.h | 295 +- deps/v8/src/ppc/code-stubs-ppc.cc | 304 +- deps/v8/src/ppc/code-stubs-ppc.h | 91 +- deps/v8/src/ppc/codegen-ppc.cc | 105 +- deps/v8/src/ppc/codegen-ppc.h | 28 - deps/v8/src/ppc/deoptimizer-ppc.cc | 9 +- deps/v8/src/ppc/disasm-ppc.cc | 6 +- deps/v8/src/ppc/frame-constants-ppc.cc | 9 + deps/v8/src/ppc/interface-descriptors-ppc.cc | 39 +- deps/v8/src/ppc/macro-assembler-ppc.cc | 794 +-- deps/v8/src/ppc/macro-assembler-ppc.h | 237 +- deps/v8/src/ppc/simulator-ppc.cc | 170 +- deps/v8/src/profiler/allocation-tracker.cc | 63 +- deps/v8/src/profiler/allocation-tracker.h | 16 +- deps/v8/src/profiler/circular-queue-inl.h | 4 +- deps/v8/src/profiler/circular-queue.h | 7 +- deps/v8/src/profiler/cpu-profiler-inl.h | 6 +- deps/v8/src/profiler/cpu-profiler.cc | 8 +- deps/v8/src/profiler/heap-profiler.cc | 39 +- deps/v8/src/profiler/heap-profiler.h | 6 +- .../profiler/heap-snapshot-generator-inl.h | 2 +- .../src/profiler/heap-snapshot-generator.cc | 335 +- .../v8/src/profiler/heap-snapshot-generator.h | 31 +- deps/v8/src/profiler/profile-generator.cc | 108 +- deps/v8/src/profiler/profile-generator.h | 20 +- deps/v8/src/profiler/profiler-listener.cc | 48 +- deps/v8/src/profiler/profiler-listener.h | 5 +- .../v8/src/profiler/sampling-heap-profiler.cc | 4 +- deps/v8/src/profiler/strings-storage.cc | 6 +- deps/v8/src/profiler/tick-sample.cc | 2 +- deps/v8/src/profiler/unbound-queue-inl.h | 8 +- deps/v8/src/property-descriptor.cc | 29 + deps/v8/src/property-descriptor.h | 3 + deps/v8/src/property-details.h | 6 +- deps/v8/src/prototype.h | 6 +- .../regexp/arm/regexp-macro-assembler-arm.cc | 30 +- .../regexp/arm/regexp-macro-assembler-arm.h | 2 +- .../arm64/regexp-macro-assembler-arm64.cc | 78 +- .../arm64/regexp-macro-assembler-arm64.h | 4 +- .../ia32/regexp-macro-assembler-ia32.cc | 30 +- .../regexp/ia32/regexp-macro-assembler-ia32.h | 2 +- deps/v8/src/regexp/interpreter-irregexp.cc | 8 +- deps/v8/src/regexp/jsregexp-inl.h | 6 +- deps/v8/src/regexp/jsregexp.cc | 224 +- deps/v8/src/regexp/jsregexp.h | 88 +- .../mips/regexp-macro-assembler-mips.cc | 32 +- .../regexp/mips/regexp-macro-assembler-mips.h | 2 +- .../mips64/regexp-macro-assembler-mips64.cc | 28 +- .../mips64/regexp-macro-assembler-mips64.h | 2 +- deps/v8/src/regexp/ppc/OWNERS | 3 +- .../regexp/ppc/regexp-macro-assembler-ppc.cc | 31 +- .../regexp/ppc/regexp-macro-assembler-ppc.h | 2 +- deps/v8/src/regexp/regexp-ast.cc | 34 +- deps/v8/src/regexp/regexp-ast.h | 4 +- .../regexp/regexp-macro-assembler-irregexp.cc | 66 +- .../regexp/regexp-macro-assembler-irregexp.h | 15 +- deps/v8/src/regexp/regexp-macro-assembler.cc | 15 +- deps/v8/src/regexp/regexp-macro-assembler.h | 8 +- deps/v8/src/regexp/regexp-parser.cc | 79 +- deps/v8/src/regexp/regexp-parser.h | 38 +- deps/v8/src/regexp/regexp-stack.cc | 8 +- deps/v8/src/regexp/regexp-stack.h | 6 +- deps/v8/src/regexp/regexp-utils.cc | 3 +- deps/v8/src/regexp/s390/OWNERS | 3 +- .../s390/regexp-macro-assembler-s390.cc | 31 +- .../regexp/s390/regexp-macro-assembler-s390.h | 2 +- .../regexp/x64/regexp-macro-assembler-x64.cc | 37 +- .../regexp/x64/regexp-macro-assembler-x64.h | 2 +- deps/v8/src/register-configuration.cc | 19 +- deps/v8/src/reglist.h | 25 +- deps/v8/src/runtime-profiler.cc | 106 +- deps/v8/src/runtime/runtime-array.cc | 86 +- deps/v8/src/runtime/runtime-bigint.cc | 154 + deps/v8/src/runtime/runtime-classes.cc | 43 +- deps/v8/src/runtime/runtime-collections.cc | 4 +- deps/v8/src/runtime/runtime-compiler.cc | 115 +- deps/v8/src/runtime/runtime-debug.cc | 99 +- deps/v8/src/runtime/runtime-forin.cc | 38 - deps/v8/src/runtime/runtime-function.cc | 18 +- deps/v8/src/runtime/runtime-generator.cc | 1 - deps/v8/src/runtime/runtime-internal.cc | 55 +- deps/v8/src/runtime/runtime-intl.cc | 138 +- deps/v8/src/runtime/runtime-literals.cc | 18 +- deps/v8/src/runtime/runtime-maths.cc | 1 - deps/v8/src/runtime/runtime-module.cc | 12 +- deps/v8/src/runtime/runtime-numbers.cc | 42 +- deps/v8/src/runtime/runtime-object.cc | 98 +- deps/v8/src/runtime/runtime-operators.cc | 12 +- deps/v8/src/runtime/runtime-promise.cc | 7 +- deps/v8/src/runtime/runtime-proxy.cc | 39 +- deps/v8/src/runtime/runtime-regexp.cc | 140 +- deps/v8/src/runtime/runtime-scopes.cc | 44 +- deps/v8/src/runtime/runtime-strings.cc | 64 +- deps/v8/src/runtime/runtime-test.cc | 98 +- deps/v8/src/runtime/runtime-typedarray.cc | 212 +- deps/v8/src/runtime/runtime-utils.h | 22 +- deps/v8/src/runtime/runtime-wasm.cc | 233 +- deps/v8/src/runtime/runtime.cc | 11 +- deps/v8/src/runtime/runtime.h | 117 +- deps/v8/src/s390/OWNERS | 3 +- deps/v8/src/s390/assembler-s390-inl.h | 103 +- deps/v8/src/s390/assembler-s390.cc | 64 +- deps/v8/src/s390/assembler-s390.h | 291 +- deps/v8/src/s390/code-stubs-s390.cc | 305 +- deps/v8/src/s390/code-stubs-s390.h | 219 +- deps/v8/src/s390/codegen-s390.cc | 110 +- deps/v8/src/s390/codegen-s390.h | 30 - deps/v8/src/s390/deoptimizer-s390.cc | 12 +- deps/v8/src/s390/disasm-s390.cc | 10 +- deps/v8/src/s390/frame-constants-s390.cc | 9 + .../v8/src/s390/interface-descriptors-s390.cc | 36 +- deps/v8/src/s390/macro-assembler-s390.cc | 861 ++- deps/v8/src/s390/macro-assembler-s390.h | 244 +- deps/v8/src/s390/simulator-s390.cc | 205 +- deps/v8/src/safepoint-table.cc | 14 +- deps/v8/src/safepoint-table.h | 8 +- deps/v8/src/setup-isolate-deserialize.cc | 13 +- deps/v8/src/setup-isolate-full.cc | 19 +- deps/v8/src/setup-isolate.h | 15 +- deps/v8/src/small-pointer-list.h | 176 - deps/v8/src/snapshot/OWNERS | 1 + .../builtin-deserializer-allocator.cc | 163 + .../snapshot/builtin-deserializer-allocator.h | 106 + deps/v8/src/snapshot/builtin-deserializer.cc | 119 + deps/v8/src/snapshot/builtin-deserializer.h | 73 + .../snapshot/builtin-serializer-allocator.cc | 67 + .../snapshot/builtin-serializer-allocator.h | 52 + deps/v8/src/snapshot/builtin-serializer.cc | 90 + deps/v8/src/snapshot/builtin-serializer.h | 48 + deps/v8/src/snapshot/code-serializer.cc | 70 +- deps/v8/src/snapshot/code-serializer.h | 5 +- .../default-deserializer-allocator.cc | 245 + .../snapshot/default-deserializer-allocator.h | 107 + .../snapshot/default-serializer-allocator.cc | 153 + .../snapshot/default-serializer-allocator.h | 74 + deps/v8/src/snapshot/deserializer.cc | 316 +- deps/v8/src/snapshot/deserializer.h | 76 +- deps/v8/src/snapshot/mksnapshot.cc | 31 +- deps/v8/src/snapshot/natives-common.cc | 2 +- deps/v8/src/snapshot/natives-external.cc | 14 +- deps/v8/src/snapshot/object-deserializer.cc | 6 +- deps/v8/src/snapshot/object-deserializer.h | 2 +- deps/v8/src/snapshot/partial-deserializer.cc | 11 +- deps/v8/src/snapshot/partial-deserializer.h | 2 +- deps/v8/src/snapshot/partial-serializer.cc | 31 +- deps/v8/src/snapshot/partial-serializer.h | 2 +- deps/v8/src/snapshot/serializer-common.cc | 2 - deps/v8/src/snapshot/serializer-common.h | 31 +- deps/v8/src/snapshot/serializer.cc | 476 +- deps/v8/src/snapshot/serializer.h | 144 +- deps/v8/src/snapshot/snapshot-common.cc | 156 +- deps/v8/src/snapshot/snapshot-empty.cc | 3 +- deps/v8/src/snapshot/snapshot-external.cc | 4 +- deps/v8/src/snapshot/snapshot-source-sink.cc | 2 +- deps/v8/src/snapshot/snapshot-source-sink.h | 3 +- deps/v8/src/snapshot/snapshot.h | 79 +- deps/v8/src/snapshot/startup-deserializer.cc | 24 +- deps/v8/src/snapshot/startup-deserializer.h | 9 +- deps/v8/src/snapshot/startup-serializer.cc | 54 +- deps/v8/src/snapshot/startup-serializer.h | 9 +- deps/v8/src/source-position-table.cc | 7 +- deps/v8/src/source-position-table.h | 5 +- deps/v8/src/source-position.cc | 8 +- deps/v8/src/source-position.h | 9 +- deps/v8/src/splay-tree-inl.h | 40 +- deps/v8/src/splay-tree.h | 13 +- deps/v8/src/string-builder.h | 16 +- deps/v8/src/string-case.cc | 2 +- deps/v8/src/string-hasher-inl.h | 4 +- deps/v8/src/string-search.h | 8 +- deps/v8/src/string-stream.cc | 10 +- deps/v8/src/strtod.cc | 22 +- deps/v8/src/tracing/trace-event.h | 4 +- deps/v8/src/transitions-inl.h | 30 +- deps/v8/src/transitions.cc | 111 +- deps/v8/src/transitions.h | 9 +- deps/v8/src/trap-handler/handler-inside.cc | 88 +- deps/v8/src/trap-handler/handler-outside.cc | 114 +- deps/v8/src/trap-handler/handler-shared.cc | 18 +- .../src/trap-handler/trap-handler-internal.h | 15 + deps/v8/src/trap-handler/trap-handler.h | 10 +- deps/v8/src/type-hints.cc | 14 + deps/v8/src/type-hints.h | 10 + deps/v8/src/unicode-cache-inl.h | 8 +- deps/v8/src/unicode-cache.h | 1 - deps/v8/src/unicode-decoder.cc | 4 +- deps/v8/src/unicode-decoder.h | 10 +- deps/v8/src/unicode.cc | 157 +- deps/v8/src/unicode.h | 14 +- deps/v8/src/uri.cc | 79 +- deps/v8/src/utils.cc | 27 +- deps/v8/src/utils.h | 113 +- deps/v8/src/v8.cc | 5 +- deps/v8/src/v8.gyp | 157 +- deps/v8/src/v8threads.cc | 47 +- deps/v8/src/v8threads.h | 2 +- deps/v8/src/value-serializer.cc | 67 +- deps/v8/src/value-serializer.h | 4 + deps/v8/src/vector.h | 31 +- deps/v8/src/version.cc | 17 +- deps/v8/src/visitors.cc | 6 + deps/v8/src/visitors.h | 41 + deps/v8/src/wasm/baseline/DEPS | 5 + .../baseline/arm/liftoff-assembler-arm-defs.h | 23 + .../wasm/baseline/arm/liftoff-assembler-arm.h | 61 + .../arm64/liftoff-assembler-arm64-defs.h | 23 + .../baseline/arm64/liftoff-assembler-arm64.h | 61 + .../ia32/liftoff-assembler-ia32-defs.h | 23 + .../baseline/ia32/liftoff-assembler-ia32.h | 130 + .../v8/src/wasm/baseline/liftoff-assembler.cc | 329 ++ deps/v8/src/wasm/baseline/liftoff-assembler.h | 318 ++ deps/v8/src/wasm/baseline/liftoff-compiler.cc | 523 ++ .../mips/liftoff-assembler-mips-defs.h | 23 + .../baseline/mips/liftoff-assembler-mips.h | 61 + .../mips64/liftoff-assembler-mips64-defs.h | 23 + .../mips64/liftoff-assembler-mips64.h | 61 + .../baseline/ppc/liftoff-assembler-ppc-defs.h | 23 + .../wasm/baseline/ppc/liftoff-assembler-ppc.h | 61 + .../s390/liftoff-assembler-s390-defs.h | 23 + .../baseline/s390/liftoff-assembler-s390.h | 61 + .../baseline/x64/liftoff-assembler-x64-defs.h | 23 + .../wasm/baseline/x64/liftoff-assembler-x64.h | 136 + deps/v8/src/wasm/compilation-manager.cc | 29 +- deps/v8/src/wasm/compilation-manager.h | 12 +- deps/v8/src/wasm/decoder.h | 103 +- deps/v8/src/wasm/function-body-decoder-impl.h | 1223 ++-- deps/v8/src/wasm/function-body-decoder.cc | 520 +- deps/v8/src/wasm/function-body-decoder.h | 15 +- deps/v8/src/wasm/local-decl-encoder.cc | 20 +- deps/v8/src/wasm/memory-tracing.cc | 49 + deps/v8/src/wasm/memory-tracing.h | 28 + deps/v8/src/wasm/module-compiler.cc | 1517 ++++- deps/v8/src/wasm/module-compiler.h | 429 +- deps/v8/src/wasm/module-decoder.cc | 181 +- deps/v8/src/wasm/module-decoder.h | 41 +- deps/v8/src/wasm/signature-map.cc | 5 +- deps/v8/src/wasm/signature-map.h | 11 +- deps/v8/src/wasm/streaming-decoder.cc | 234 +- deps/v8/src/wasm/streaming-decoder.h | 135 +- deps/v8/src/wasm/wasm-code-specialization.cc | 133 +- deps/v8/src/wasm/wasm-code-specialization.h | 15 +- deps/v8/src/wasm/wasm-debug.cc | 134 +- deps/v8/src/wasm/wasm-external-refs.cc | 5 + deps/v8/src/wasm/wasm-external-refs.h | 3 + deps/v8/src/wasm/wasm-heap.cc | 101 + deps/v8/src/wasm/wasm-heap.h | 66 + deps/v8/src/wasm/wasm-interpreter.cc | 498 +- deps/v8/src/wasm/wasm-interpreter.h | 9 +- deps/v8/src/wasm/wasm-js.cc | 149 +- deps/v8/src/wasm/wasm-js.h | 3 +- deps/v8/src/wasm/wasm-limits.h | 2 +- deps/v8/src/wasm/wasm-memory.cc | 134 + deps/v8/src/wasm/wasm-memory.h | 32 + deps/v8/src/wasm/wasm-module-builder.cc | 16 +- deps/v8/src/wasm/wasm-module-builder.h | 3 +- deps/v8/src/wasm/wasm-module.cc | 893 +-- deps/v8/src/wasm/wasm-module.h | 202 +- deps/v8/src/wasm/wasm-objects-inl.h | 180 + deps/v8/src/wasm/wasm-objects.cc | 473 +- deps/v8/src/wasm/wasm-objects.h | 279 +- deps/v8/src/wasm/wasm-opcodes.cc | 106 +- deps/v8/src/wasm/wasm-opcodes.h | 43 +- deps/v8/src/wasm/wasm-result.h | 9 +- deps/v8/src/wasm/wasm-text.cc | 76 +- deps/v8/src/wasm/wasm-value.h | 85 +- deps/v8/src/x64/assembler-x64-inl.h | 28 +- deps/v8/src/x64/assembler-x64.cc | 88 +- deps/v8/src/x64/assembler-x64.h | 316 +- deps/v8/src/x64/code-stubs-x64.cc | 413 +- deps/v8/src/x64/code-stubs-x64.h | 131 +- deps/v8/src/x64/codegen-x64.cc | 141 +- deps/v8/src/x64/codegen-x64.h | 99 - deps/v8/src/x64/deoptimizer-x64.cc | 17 +- deps/v8/src/x64/disasm-x64.cc | 17 +- deps/v8/src/x64/eh-frame-x64.cc | 6 +- deps/v8/src/x64/frame-constants-x64.cc | 9 + deps/v8/src/x64/interface-descriptors-x64.cc | 32 +- deps/v8/src/x64/macro-assembler-x64.cc | 1085 +--- deps/v8/src/x64/macro-assembler-x64.h | 421 +- deps/v8/src/zone/zone-handle-set.h | 9 + deps/v8/src/zone/zone-list-inl.h | 164 + deps/v8/src/zone/zone.cc | 2 +- deps/v8/src/zone/zone.h | 154 +- deps/v8/test/benchmarks/testcfg.py | 20 - deps/v8/test/cctest/BUILD.gn | 69 +- deps/v8/test/cctest/cctest.cc | 34 +- deps/v8/test/cctest/cctest.gyp | 9 +- deps/v8/test/cctest/cctest.h | 11 +- deps/v8/test/cctest/cctest.status | 14 + .../cctest/compiler/code-assembler-tester.h | 28 +- .../v8/test/cctest/compiler/codegen-tester.cc | 2 +- deps/v8/test/cctest/compiler/codegen-tester.h | 8 +- .../test/cctest/compiler/function-tester.cc | 17 +- .../cctest/compiler/graph-builder-tester.h | 12 +- .../cctest/compiler/test-code-assembler.cc | 27 +- .../cctest/compiler/test-code-generator.cc | 994 +++- .../cctest/compiler/test-graph-visualizer.cc | 8 +- .../test/cctest/compiler/test-instruction.cc | 8 +- .../cctest/compiler/test-js-constant-cache.cc | 9 +- .../cctest/compiler/test-js-typed-lowering.cc | 24 +- .../cctest/compiler/test-jump-threading.cc | 14 +- deps/v8/test/cctest/compiler/test-linkage.cc | 29 +- .../cctest/compiler/test-loop-analysis.cc | 6 +- .../compiler/test-machine-operator-reducer.cc | 4 +- .../cctest/compiler/test-multiple-return.cc | 2 +- deps/v8/test/cctest/compiler/test-node.cc | 16 +- .../test-run-bytecode-graph-builder.cc | 27 +- .../cctest/compiler/test-run-intrinsics.cc | 28 - .../cctest/compiler/test-run-jsobjects.cc | 7 - .../test/cctest/compiler/test-run-machops.cc | 52 +- .../cctest/compiler/test-run-native-calls.cc | 9 +- .../v8/test/cctest/compiler/test-run-stubs.cc | 122 +- .../cctest/compiler/test-run-variables.cc | 66 +- .../cctest/compiler/test-run-wasm-machops.cc | 72 +- deps/v8/test/cctest/compiler/value-helper.cc | 21 + deps/v8/test/cctest/compiler/value-helper.h | 516 +- .../cctest/expression-type-collector-macros.h | 10 +- deps/v8/test/cctest/ffi/OWNERS | 4 - deps/v8/test/cctest/ffi/test-ffi.cc | 222 - deps/v8/test/cctest/gay-fixed.cc | 2 +- deps/v8/test/cctest/gay-precision.cc | 2 +- deps/v8/test/cctest/gay-shortest.cc | 2 +- deps/v8/test/cctest/heap/heap-utils.cc | 5 +- deps/v8/test/cctest/heap/test-alloc.cc | 12 +- .../cctest/heap/test-array-buffer-tracker.cc | 1 + deps/v8/test/cctest/heap/test-compaction.cc | 8 +- .../cctest/heap/test-concurrent-marking.cc | 40 +- deps/v8/test/cctest/heap/test-heap.cc | 413 +- .../cctest/heap/test-invalidated-slots.cc | 2 + deps/v8/test/cctest/heap/test-lab.cc | 7 +- deps/v8/test/cctest/heap/test-mark-compact.cc | 34 +- .../test/cctest/heap/test-page-promotion.cc | 3 +- deps/v8/test/cctest/heap/test-spaces.cc | 21 +- .../bytecode-expectations-printer.cc | 13 +- .../bytecode-expectations-printer.h | 1 + .../ArrayLiterals.golden | 26 +- .../AssignmentsInBinaryExpression.golden | 14 +- .../AsyncGenerators.golden | 152 +- .../bytecode_expectations/BasicLoops.golden | 26 +- .../BreakableBlocks.golden | 12 +- .../CallAndSpread.golden | 48 +- .../bytecode_expectations/CallGlobal.golden | 8 +- .../CallLookupSlot.golden | 8 +- .../bytecode_expectations/CallNew.golden | 12 +- .../bytecode_expectations/CallRuntime.golden | 10 +- .../ClassAndSuperClass.golden | 10 +- .../ClassDeclarations.golden | 4 +- .../bytecode_expectations/CompareNil.golden | 2 +- .../CompoundExpressions.golden | 4 +- .../ContextVariables.golden | 8 +- .../CountOperators.golden | 54 +- .../CreateRestParameter.golden | 6 +- .../bytecode_expectations/Eval.golden | 4 +- .../bytecode_expectations/ForAwaitOf.golden | 322 +- .../bytecode_expectations/ForIn.golden | 64 +- .../bytecode_expectations/ForOf.golden | 34 +- .../bytecode_expectations/ForOfLoop.golden | 234 +- .../FunctionLiterals.golden | 8 +- .../bytecode_expectations/Generators.golden | 104 +- .../GlobalCountOperators.golden | 28 +- .../bytecode_expectations/IfConditions.golden | 4 +- .../JumpsRequiringConstantWideOperands.golden | 6 +- .../bytecode_expectations/LookupSlot.golden | 20 +- .../bytecode_expectations/Modules.golden | 128 +- .../bytecode_expectations/NewAndSpread.golden | 38 +- .../ObjectLiterals.golden | 38 +- .../bytecode_expectations/PropertyCall.golden | 30 +- .../PropertyStores.golden | 1046 ++-- .../RegExpLiterals.golden | 6 +- .../StandardForLoop.golden | 148 +- .../SuperCallAndSpread.golden | 27 +- .../bytecode_expectations/Switch.golden | 99 +- .../TopLevelObjectLiterals.golden | 4 +- .../UnaryOperators.golden | 16 +- .../WideRegisters.golden | 17 +- .../cctest/interpreter/interpreter-tester.cc | 2 + .../cctest/interpreter/interpreter-tester.h | 14 +- .../interpreter/source-position-matcher.cc | 2 +- .../interpreter/test-bytecode-generator.cc | 23 + .../test-interpreter-intrinsics.cc | 8 - .../cctest/interpreter/test-interpreter.cc | 268 +- .../interpreter/test-source-positions.cc | 1 + .../cctest/log-eq-of-logging-and-traversal.js | 22 +- deps/v8/test/cctest/parsing/test-preparser.cc | 344 +- .../cctest/parsing/test-scanner-streams.cc | 83 +- deps/v8/test/cctest/parsing/test-scanner.cc | 8 +- deps/v8/test/cctest/print-extension.cc | 2 +- deps/v8/test/cctest/scope-test-helper.h | 18 +- .../v8/test/cctest/setup-isolate-for-tests.cc | 16 +- deps/v8/test/cctest/setup-isolate-for-tests.h | 10 +- .../v8/test/cctest/test-accessor-assembler.cc | 10 +- deps/v8/test/cctest/test-accessors.cc | 10 +- deps/v8/test/cctest/test-allocation.cc | 6 +- deps/v8/test/cctest/test-api-accessors.cc | 2 +- deps/v8/test/cctest/test-api-interceptors.cc | 307 +- deps/v8/test/cctest/test-api.cc | 941 ++-- deps/v8/test/cctest/test-array-list.cc | 17 +- deps/v8/test/cctest/test-assembler-arm.cc | 325 +- deps/v8/test/cctest/test-assembler-arm64.cc | 298 +- deps/v8/test/cctest/test-assembler-ia32.cc | 98 +- deps/v8/test/cctest/test-assembler-mips.cc | 3215 +++++++++-- deps/v8/test/cctest/test-assembler-mips64.cc | 3268 +++++++++-- deps/v8/test/cctest/test-assembler-ppc.cc | 65 +- deps/v8/test/cctest/test-assembler-s390.cc | 60 +- deps/v8/test/cctest/test-assembler-x64.cc | 72 +- deps/v8/test/cctest/test-atomicops.cc | 8 +- deps/v8/test/cctest/test-bignum-dtoa.cc | 2 + deps/v8/test/cctest/test-bignum.cc | 2 + deps/v8/test/cctest/test-code-cache.cc | 83 - deps/v8/test/cctest/test-code-layout.cc | 11 +- .../test/cctest/test-code-stub-assembler.cc | 518 +- deps/v8/test/cctest/test-code-stubs-arm.cc | 53 +- deps/v8/test/cctest/test-code-stubs-arm64.cc | 46 +- deps/v8/test/cctest/test-code-stubs-ia32.cc | 31 +- deps/v8/test/cctest/test-code-stubs-mips.cc | 50 +- deps/v8/test/cctest/test-code-stubs-mips64.cc | 50 +- deps/v8/test/cctest/test-code-stubs-x64.cc | 39 +- deps/v8/test/cctest/test-code-stubs.cc | 7 +- deps/v8/test/cctest/test-code-stubs.h | 6 + deps/v8/test/cctest/test-compiler.cc | 104 +- deps/v8/test/cctest/test-conversions.cc | 9 +- deps/v8/test/cctest/test-cpu-profiler.cc | 109 +- deps/v8/test/cctest/test-date.cc | 4 +- deps/v8/test/cctest/test-debug.cc | 562 +- deps/v8/test/cctest/test-decls.cc | 42 +- deps/v8/test/cctest/test-disasm-arm.cc | 42 +- deps/v8/test/cctest/test-disasm-arm64.cc | 12 +- deps/v8/test/cctest/test-disasm-ia32.cc | 13 +- deps/v8/test/cctest/test-disasm-mips.cc | 6 +- deps/v8/test/cctest/test-disasm-mips64.cc | 6 +- deps/v8/test/cctest/test-disasm-ppc.cc | 7 +- deps/v8/test/cctest/test-disasm-s390.cc | 6 +- deps/v8/test/cctest/test-disasm-x64.cc | 6 +- deps/v8/test/cctest/test-diy-fp.cc | 14 +- deps/v8/test/cctest/test-double.cc | 2 +- deps/v8/test/cctest/test-dtoa.cc | 2 + deps/v8/test/cctest/test-elements-kind.cc | 2 + deps/v8/test/cctest/test-fast-dtoa.cc | 2 + deps/v8/test/cctest/test-feedback-vector.cc | 53 +- .../test/cctest/test-field-type-tracking.cc | 10 +- deps/v8/test/cctest/test-fuzz-arm64.cc | 6 +- deps/v8/test/cctest/test-hashmap.cc | 22 +- deps/v8/test/cctest/test-heap-profiler.cc | 108 +- deps/v8/test/cctest/test-identity-map.cc | 11 +- .../cctest/test-inobject-slack-tracking.cc | 69 +- deps/v8/test/cctest/test-javascript-arm64.cc | 41 +- .../v8/test/cctest/test-js-arm64-variables.cc | 29 +- deps/v8/test/cctest/test-list.cc | 171 - deps/v8/test/cctest/test-liveedit.cc | 18 +- deps/v8/test/cctest/test-lockers.cc | 270 +- deps/v8/test/cctest/test-log-stack-tracer.cc | 2 +- deps/v8/test/cctest/test-log.cc | 250 +- .../test/cctest/test-macro-assembler-arm.cc | 20 +- .../test/cctest/test-macro-assembler-mips.cc | 100 +- .../cctest/test-macro-assembler-mips64.cc | 126 +- .../test/cctest/test-macro-assembler-x64.cc | 687 +-- deps/v8/test/cctest/test-managed.cc | 4 +- deps/v8/test/cctest/test-mementos.cc | 6 - deps/v8/test/cctest/test-object.cc | 180 +- deps/v8/test/cctest/test-orderedhashtable.cc | 2 + deps/v8/test/cctest/test-parsing.cc | 3730 ++++++------- deps/v8/test/cctest/test-platform-linux.cc | 30 +- deps/v8/test/cctest/test-platform-win32.cc | 34 +- deps/v8/test/cctest/test-platform.cc | 4 +- deps/v8/test/cctest/test-profile-generator.cc | 38 +- .../cctest/test-random-number-generator.cc | 2 +- deps/v8/test/cctest/test-regexp.cc | 103 +- .../cctest/test-run-wasm-relocation-arm.cc | 86 +- .../cctest/test-run-wasm-relocation-arm64.cc | 88 +- .../cctest/test-run-wasm-relocation-ia32.cc | 95 +- .../cctest/test-run-wasm-relocation-x64.cc | 76 +- deps/v8/test/cctest/test-sampler-api.cc | 14 +- deps/v8/test/cctest/test-serialize.cc | 379 +- deps/v8/test/cctest/test-simulator-arm.cc | 235 +- deps/v8/test/cctest/test-simulator-arm64.cc | 63 +- deps/v8/test/cctest/test-strings.cc | 43 +- deps/v8/test/cctest/test-strtod.cc | 2 + deps/v8/test/cctest/test-symbols.cc | 9 +- .../v8/test/cctest/test-thread-termination.cc | 62 +- deps/v8/test/cctest/test-threads.cc | 4 +- deps/v8/test/cctest/test-transitions.cc | 2 - deps/v8/test/cctest/test-types.cc | 15 +- deps/v8/test/cctest/test-unboxed-doubles.cc | 23 +- deps/v8/test/cctest/test-usecounters.cc | 11 +- deps/v8/test/cctest/test-utils-arm64.cc | 6 +- deps/v8/test/cctest/test-utils-arm64.h | 14 +- deps/v8/test/cctest/test-version.cc | 23 - deps/v8/test/cctest/test-weakmaps.cc | 12 +- deps/v8/test/cctest/test-weaksets.cc | 10 +- deps/v8/test/cctest/testcfg.py | 6 +- deps/v8/test/cctest/wasm/test-c-wasm-entry.cc | 33 +- deps/v8/test/cctest/wasm/test-run-wasm-64.cc | 98 +- .../test/cctest/wasm/test-run-wasm-asmjs.cc | 112 +- .../test/cctest/wasm/test-run-wasm-atomics.cc | 240 +- .../cctest/wasm/test-run-wasm-interpreter.cc | 7 +- deps/v8/test/cctest/wasm/test-run-wasm-js.cc | 282 +- .../test/cctest/wasm/test-run-wasm-module.cc | 216 +- .../cctest/wasm/test-run-wasm-relocation.cc | 94 +- .../v8/test/cctest/wasm/test-run-wasm-simd.cc | 972 ++-- deps/v8/test/cctest/wasm/test-run-wasm.cc | 132 +- .../cctest/wasm/test-streaming-compilation.cc | 820 +++ .../test/cctest/wasm/test-wasm-breakpoints.cc | 37 +- .../wasm/test-wasm-interpreter-entry.cc | 58 +- deps/v8/test/cctest/wasm/test-wasm-stack.cc | 133 +- .../cctest/wasm/test-wasm-trap-position.cc | 26 +- deps/v8/test/cctest/wasm/wasm-run-utils.cc | 506 ++ deps/v8/test/cctest/wasm/wasm-run-utils.h | 631 +-- deps/v8/test/common/wasm/flag-utils.h | 6 +- deps/v8/test/common/wasm/test-signatures.h | 10 +- deps/v8/test/common/wasm/wasm-macro-gen.h | 68 +- .../v8/test/common/wasm/wasm-module-runner.cc | 83 +- deps/v8/test/common/wasm/wasm-module-runner.h | 22 +- .../debugger/debug/debug-break-microtask.js | 52 + .../debugger/debug/debug-compile-optimized.js | 15 +- .../debug-evaluate-no-side-effect-ops.js | 2 + .../debugger/debug/debug-liveedit-inline.js | 30 + .../debugger/debug/debug-step-microtask.js | 52 + .../debugger/debug/es8/promise-finally.js | 46 + .../debug/regress/regress-crbug-222893.js | 26 +- .../debug/regress/regress-crbug-517592.js | 2 +- deps/v8/test/debugger/debugger.status | 6 + deps/v8/test/fuzzer/README.md | 2 +- deps/v8/test/fuzzer/fuzzer-support.cc | 5 +- deps/v8/test/fuzzer/fuzzer-support.h | 2 +- deps/v8/test/fuzzer/fuzzer.cc | 4 +- deps/v8/test/fuzzer/fuzzer.gyp | 4 + deps/v8/test/fuzzer/parser.cc | 6 +- deps/v8/test/fuzzer/wasm-async.cc | 93 +- deps/v8/test/fuzzer/wasm-call.cc | 49 +- deps/v8/test/fuzzer/wasm-code.cc | 25 +- deps/v8/test/fuzzer/wasm-compile.cc | 36 +- deps/v8/test/fuzzer/wasm-fuzzer-common.cc | 72 +- deps/v8/test/fuzzer/wasm-fuzzer-common.h | 10 +- deps/v8/test/fuzzer/wasm.cc | 27 +- .../fuzzer/wasm_async/regression-761784.wasm | Bin 0 -> 103 bytes .../test/inspector/cpu-profiler/coverage.js | 2 +- .../debugger/breakpoints-expected.txt | 66 + .../v8/test/inspector/debugger/breakpoints.js | 117 + .../debugger/call-frame-url-expected.txt | 15 + .../test/inspector/debugger/call-frame-url.js | 20 + ...sync-call-stack-depth-changed-expected.txt | 5 + .../max-async-call-stack-depth-changed.js | 16 + ...eakpoint-for-anonymous-script-expected.txt | 11 + ...isional-breakpoint-for-anonymous-script.js | 69 + .../inspector/debugger/restore-breakpoint.js | 24 +- .../set-breakpoint-at-last-line-expected.txt | 16 + .../debugger/set-breakpoint-at-last-line.js | 28 + .../suspended-generator-scopes-expected.txt | 106 +- .../debugger/suspended-generator-scopes.js | 116 +- .../this-in-arrow-function-expected.txt | 107 + .../debugger/this-in-arrow-function.js | 54 + deps/v8/test/inspector/inspector-test.cc | 15 + deps/v8/test/inspector/inspector.isolate | 1 + deps/v8/test/inspector/isolate-data.cc | 11 +- deps/v8/test/inspector/isolate-data.h | 3 + deps/v8/test/inspector/protocol-test.js | 23 +- .../call-function-on-async-expected.txt | 39 + .../runtime/call-function-on-async.js | 38 +- .../runtime/command-line-api-expected.txt | 4 +- .../runtime/console-methods-expected.txt | 103 +- .../test/inspector/runtime/console-methods.js | 2 + .../console-time-end-format-expected.txt | 8 + .../runtime/console-time-end-format.js | 52 +- .../inspector/runtime/es6-module-expected.txt | 1 + .../runtime/function-scopes-expected.txt | 53 + .../test/inspector/runtime/function-scopes.js | 56 + .../runtime/internal-properties-expected.txt | 20 + ...me-global-lexical-scope-names-expected.txt | 64 + .../runtime-global-lexical-scope-names.js | 59 + .../test/inspector/runtime/runtime-restore.js | 2 +- ...gger-stepping-and-breakpoints-expected.txt | 16 +- deps/v8/test/inspector/task-runner.cc | 2 +- .../type-profile-disable-expected.txt | 9 + .../type-profiler/type-profile-disable.js | 47 + .../type-profiler/type-profile-expected.txt | 8 + .../type-profile-start-stop-expected.txt | 51 + .../type-profiler/type-profile-start-stop.js | 178 + .../type-profile-with-classes-expected.txt | 15 + .../type-profile-with-classes.js | 43 + ...pe-profile-with-to-string-tag-expected.txt | 16 + .../type-profile-with-to-string-tag.js | 46 + .../inspector/type-profiler/type-profile.js | 39 + deps/v8/test/intl/date-format/invalid-time.js | 20 + deps/v8/test/intl/general/invalid-locale.js | 39 + deps/v8/test/js-perf-test/Array/filter.js | 2 +- deps/v8/test/js-perf-test/Array/join.js | 2 +- deps/v8/test/js-perf-test/Array/map.js | 2 +- deps/v8/test/js-perf-test/Array/to-string.js | 2 +- .../test/js-perf-test/Collections/common.js | 23 +- deps/v8/test/js-perf-test/Collections/map.js | 44 +- deps/v8/test/js-perf-test/Collections/run.js | 1 + .../test/js-perf-test/Collections/weakmap.js | 27 + .../test/js-perf-test/ExpressionDepth/run.js | 33 +- deps/v8/test/js-perf-test/JSTests.json | 50 +- deps/v8/test/js-perf-test/Parsing/comments.js | 41 + deps/v8/test/js-perf-test/Parsing/run.js | 27 + deps/v8/test/js-perf-test/Proxies/proxies.js | 40 + deps/v8/test/js-perf-test/SixSpeed.json | 8 +- deps/v8/test/memory/Memory.json | 4 + deps/v8/test/message/console.js | 1 - deps/v8/test/message/console.out | 21 +- deps/v8/test/message/non-alphanum.out | 4 +- .../message/regress/regress-crbug-691194.out | 2 +- deps/v8/test/message/settimeout.js | 26 + deps/v8/test/message/settimeout.out | 13 + deps/v8/test/message/typedarray.out | 2 +- .../message/wasm-trace-memory-interpreted.js | 7 + .../message/wasm-trace-memory-interpreted.out | 9 + deps/v8/test/message/wasm-trace-memory.js | 37 + deps/v8/test/message/wasm-trace-memory.out | 9 + .../mjsunit/array-constructor-feedback.js | 7 +- deps/v8/test/mjsunit/array-lastindexof.js | 10 + deps/v8/test/mjsunit/array-reduce.js | 20 + deps/v8/test/mjsunit/array-sort.js | 4 + deps/v8/test/mjsunit/asm/math-max.js | 78 + deps/v8/test/mjsunit/asm/math-min.js | 78 + deps/v8/test/mjsunit/asm/noexpose-wasm.js | 37 + deps/v8/test/mjsunit/code-coverage-precise.js | 1 + deps/v8/test/mjsunit/compiler/array-push-1.js | 239 + deps/v8/test/mjsunit/compiler/array-push-2.js | 65 + deps/v8/test/mjsunit/compiler/array-push-3.js | 51 + .../test/mjsunit/compiler/array-subclass.js | 396 ++ .../compiler/constant-fold-cow-array.js | 35 + .../compiler/constant-fold-tostring.js | 26 + .../mjsunit/compiler/constructor-inlining.js | 5 +- .../compiler/dead-string-char-code-at.js | 81 - .../compiler/dead-string-char-code-at2.js | 81 - .../v8/test/mjsunit/compiler/deopt-closure.js | 47 + .../compiler/deopt-simple-try-catch.js | 28 + deps/v8/test/mjsunit/compiler/for-in-1.js | 20 + deps/v8/test/mjsunit/compiler/for-in-2.js | 20 + deps/v8/test/mjsunit/compiler/for-in-3.js | 20 + deps/v8/test/mjsunit/compiler/for-in-4.js | 20 + deps/v8/test/mjsunit/compiler/for-in-5.js | 19 + .../v8/test/mjsunit/compiler/function-bind.js | 36 + .../test/mjsunit/compiler/function-caller.js | 25 + deps/v8/test/mjsunit/compiler/instanceof.js | 18 + .../test/mjsunit/compiler/nary-binary-ops.js | 86 + .../mjsunit/compiler/object-constructor.js | 51 + deps/v8/test/mjsunit/compiler/object-is.js | 143 + .../v8/test/mjsunit/compiler/osr-arguments.js | 17 + .../mjsunit/compiler/polymorphic-symbols.js | 48 + deps/v8/test/mjsunit/compiler/reflect-get.js | 68 + deps/v8/test/mjsunit/compiler/reflect-has.js | 67 + .../test/mjsunit/compiler/regress-700883.js | 4 +- .../test/mjsunit/compiler/regress-758096.js | 54 + .../test/mjsunit/compiler/regress-761892.js | 15 + .../test/mjsunit/compiler/regress-762057.js | 20 + .../test/mjsunit/compiler/regress-772420.js | 28 + .../mjsunit/compiler/stress-deopt-count-1.js | 20 + .../mjsunit/compiler/stress-deopt-count-2.js | 48 + .../typedarray-prototype-tostringtag.js | 84 + deps/v8/test/mjsunit/console.js | 28 + deps/v8/test/mjsunit/es6/new-target.js | 9 + deps/v8/test/mjsunit/es6/proxies-get.js | 11 +- deps/v8/test/mjsunit/es6/proxies-set.js | 98 + deps/v8/test/mjsunit/es6/proxies.js | 13 + deps/v8/test/mjsunit/es6/regexp-sticky.js | 6 +- .../mjsunit/es6/regress/regress-777182.js | 9 + .../sloppy-no-duplicate-generators.js | 2 - deps/v8/test/mjsunit/es6/string-html.js | 3 +- deps/v8/test/mjsunit/es6/string-match.js | 5 +- deps/v8/test/mjsunit/es6/string-repeat.js | 5 + deps/v8/test/mjsunit/es6/string-search.js | 5 +- deps/v8/test/mjsunit/es6/templates.js | 19 + deps/v8/test/mjsunit/es6/typedarray.js | 36 + .../{harmony => es9}/object-rest-basic.js | 1 - .../{harmony => es9}/object-spread-basic.js | 2 - deps/v8/test/mjsunit/filter-element-kinds.js | 144 + deps/v8/test/mjsunit/function-bind.js | 52 + deps/v8/test/mjsunit/function-call.js | 91 +- .../mjsunit/harmony/array-sort-comparefn.js | 48 + deps/v8/test/mjsunit/harmony/bigint/add.js | 109 + deps/v8/test/mjsunit/harmony/bigint/and.js | 109 + deps/v8/test/mjsunit/harmony/bigint/basics.js | 518 ++ .../mjsunit/harmony/bigint/comparisons.js | 511 ++ deps/v8/test/mjsunit/harmony/bigint/dec.js | 89 + deps/v8/test/mjsunit/harmony/bigint/div.js | 109 + deps/v8/test/mjsunit/harmony/bigint/inc.js | 89 + deps/v8/test/mjsunit/harmony/bigint/json.js | 81 + deps/v8/test/mjsunit/harmony/bigint/mod.js | 109 + deps/v8/test/mjsunit/harmony/bigint/mul.js | 109 + deps/v8/test/mjsunit/harmony/bigint/neg.js | 89 + deps/v8/test/mjsunit/harmony/bigint/not.js | 89 + deps/v8/test/mjsunit/harmony/bigint/or.js | 109 + deps/v8/test/mjsunit/harmony/bigint/sar.js | 113 + deps/v8/test/mjsunit/harmony/bigint/shl.js | 109 + deps/v8/test/mjsunit/harmony/bigint/sub.js | 109 + deps/v8/test/mjsunit/harmony/bigint/xor.js | 109 + .../mjsunit/harmony/harmony-string-pad-end.js | 11 + .../harmony/harmony-string-pad-start.js | 11 + .../mjsunit/harmony/modules-import-large.js | 1120 ++++ .../mjsunit/harmony/modules-import-meta.js | 44 + .../modules-skip-export-import-meta.js} | 5 +- .../mjsunit/harmony/modules-skip-large1.js | 2204 ++++++++ .../mjsunit/harmony/modules-skip-large2.js | 1104 ++++ .../harmony/promise-prototype-finally.js | 81 + .../mjsunit/harmony/public-class-fields.js | 248 + .../mjsunit/harmony/regexp-named-captures.js | 37 +- .../mjsunit/harmony/regress/regress-771470.js | 8 + .../mjsunit/harmony/regress/regress-772649.js | 11 + .../sloppy-legacy-duplicate-generators.js | 60 - deps/v8/test/mjsunit/messages.js | 39 +- deps/v8/test/mjsunit/mjsunit.isolate | 1 + deps/v8/test/mjsunit/mjsunit.js | 14 +- deps/v8/test/mjsunit/mjsunit.status | 29 + deps/v8/test/mjsunit/optimized-filter.js | 440 ++ .../mjsunit/optimized-foreach-polymorph.js | 111 + deps/v8/test/mjsunit/optimized-map.js | 61 + deps/v8/test/mjsunit/regress/regress-2435.js | 25 + deps/v8/test/mjsunit/regress/regress-2618.js | 7 +- .../v8/test/mjsunit/regress/regress-678917.js | 5 +- .../v8/test/mjsunit/regress/regress-6838-1.js | 33 + .../v8/test/mjsunit/regress/regress-6838-2.js | 101 + .../v8/test/mjsunit/regress/regress-6838-3.js | 39 + deps/v8/test/mjsunit/regress/regress-6907.js | 21 + deps/v8/test/mjsunit/regress/regress-6941.js | 20 + deps/v8/test/mjsunit/regress/regress-6948.js | 20 + deps/v8/test/mjsunit/regress/regress-6970.js | 6 + deps/v8/test/mjsunit/regress/regress-6989.js | 85 + deps/v8/test/mjsunit/regress/regress-6991.js | 17 + .../v8/test/mjsunit/regress/regress-719380.js | 2 +- .../v8/test/mjsunit/regress/regress-752764.js | 5 +- .../v8/test/mjsunit/regress/regress-760268.js | 11 + .../v8/test/mjsunit/regress/regress-760790.js | 11 + .../v8/test/mjsunit/regress/regress-761639.js | 10 + .../v8/test/mjsunit/regress/regress-772190.js | 10 + .../v8/test/mjsunit/regress/regress-774475.js | 938 ++++ .../v8/test/mjsunit/regress/regress-774824.js | 17 + .../v8/test/mjsunit/regress/regress-775888.js | 21 + .../v8/test/mjsunit/regress/regress-776338.js | 44 + .../mjsunit/regress/regress-crbug-465564.js | 2 +- .../mjsunit/regress/regress-crbug-537444.js | 4 +- .../mjsunit/regress/regress-crbug-593697-2.js | 4 +- .../mjsunit/regress/regress-crbug-598998.js | 4 +- .../mjsunit/regress/regress-crbug-608278.js | 3 +- .../mjsunit/regress/regress-crbug-647217.js | 3 +- .../mjsunit/regress/regress-crbug-714696.js | 2 +- .../mjsunit/regress/regress-crbug-722871.js | 113 + .../mjsunit/regress/regress-crbug-747062.js | 16 + .../mjsunit/regress/regress-crbug-764219.js | 35 + .../mjsunit/regress/regress-crbug-766635.js | 32 + .../mjsunit/regress/regress-crbug-768080.js | 64 + .../mjsunit/regress/regress-crbug-768367.js | 14 + .../mjsunit/regress/regress-crbug-768875.js | 28 + .../mjsunit/regress/regress-crbug-769852.js | 14 + .../mjsunit/regress/regress-crbug-770543.js | 31 + .../mjsunit/regress/regress-crbug-770581.js | 22 + .../mjsunit/regress/regress-crbug-771971.js | 12 + .../mjsunit/regress/regress-crbug-772056.js | 17 + .../mjsunit/regress/regress-crbug-772610.js | 18 + .../mjsunit/regress/regress-crbug-772672.js | 11 + .../mjsunit/regress/regress-crbug-772689.js | 23 + .../mjsunit/regress/regress-crbug-772720.js | 15 + .../mjsunit/regress/regress-crbug-774459.js | 20 + .../mjsunit/regress/regress-crbug-774860.js | 15 + .../mjsunit/regress/regress-crbug-774994.js | 34 + .../mjsunit/regress/regress-crbug-776511.js | 35 + .../test/mjsunit/regress/regress-v8-6906.js | 15 + .../test/mjsunit/regress/regress-v8-6940.js | 9 + .../mjsunit/regress/string-compare-memcmp.js | 2 +- .../{regression-02256.js => regress-02256.js} | 0 ...regression-02256b.js => regress-02256b.js} | 0 .../{regression-02862.js => regress-02862.js} | 0 .../{regression-5531.js => regress-5531.js} | 0 .../{regression-5800.js => regress-5800.js} | 0 .../{regression-5884.js => regress-5884.js} | 0 .../{regression-6054.js => regress-6054.js} | 0 .../{regression-6164.js => regress-6164.js} | 0 ...regression-643595.js => regress-643595.js} | 0 ...regression-644682.js => regress-644682.js} | 0 ...regression-647649.js => regress-647649.js} | 0 ...regression-648079.js => regress-648079.js} | 1 - ...regression-651961.js => regress-651961.js} | 0 ...regression-654377.js => regress-654377.js} | 0 ...regression-663994.js => regress-663994.js} | 0 ...regression-666741.js => regress-666741.js} | 0 ...regression-667745.js => regress-667745.js} | 0 ...regression-670683.js => regress-670683.js} | 0 ...regression-674447.js => regress-674447.js} | 0 ...regression-680938.js => regress-680938.js} | 0 ...regression-684858.js => regress-684858.js} | 0 ...regression-688876.js => regress-688876.js} | 0 ...regression-689450.js => regress-689450.js} | 0 .../test/mjsunit/regress/wasm/regress-6931.js | 30 + .../mjsunit/regress/wasm/regress-694433.js | 14 + ...regression-698587.js => regress-698587.js} | 0 ...regression-699485.js => regress-699485.js} | 0 ...regression-702460.js => regress-702460.js} | 1 - ...regression-702839.js => regress-702839.js} | 0 ...regression-703568.js => regress-703568.js} | 0 ...regression-708714.js => regress-708714.js} | 0 ...regression-710844.js => regress-710844.js} | 0 ...regression-711203.js => regress-711203.js} | 0 ...ression-715216-a.js => regress-715216a.js} | 0 ...ression-715216-b.js => regress-715216b.js} | 0 ...regression-717056.js => regress-717056.js} | 0 ...regression-717194.js => regress-717194.js} | 0 ...regression-719175.js => regress-719175.js} | 0 ...regression-722445.js => regress-722445.js} | 0 ...regression-724846.js => regress-724846.js} | 0 ...regression-724851.js => regress-724851.js} | 0 ...regression-724972.js => regress-724972.js} | 0 ...regression-727219.js => regress-727219.js} | 0 ...regression-727222.js => regress-727222.js} | 0 ...regression-727560.js => regress-727560.js} | 0 ...regression-729991.js => regress-729991.js} | 0 ...regression-731351.js => regress-731351.js} | 0 ...regression-734108.js => regress-734108.js} | 0 ...regression-734246.js => regress-734246.js} | 0 ...regression-734345.js => regress-734345.js} | 0 ...regression-736584.js => regress-736584.js} | 0 ...regression-737069.js => regress-737069.js} | 0 ...regression-739768.js => regress-739768.js} | 0 ...regression-753496.js => regress-753496.js} | 0 ...regression-757217.js => regress-757217.js} | 0 .../mjsunit/regress/wasm/regress-763439.js | 22 + .../mjsunit/regress/wasm/regress-763697.js | 15 + .../mjsunit/regress/wasm/regress-766003.js | 17 + .../mjsunit/regress/wasm/regress-769846.js | 15 + .../mjsunit/regress/wasm/regress-771243.js | 39 + .../mjsunit/regress/wasm/regress-772332.js | 33 + .../mjsunit/regress/wasm/regress-775366.js | 29 + .../mjsunit/regress/wasm/regress-775710.js | 20 + .../mjsunit/regress/wasm/regress-776677.js | 30 + .../skipping-inner-functions-bailout.js | 6 + .../test/mjsunit/skipping-inner-functions.js | 70 + deps/v8/test/mjsunit/splice-proxy.js | 13 + deps/v8/test/mjsunit/string-charcodeat.js | 3 - .../third_party/regexp-pcre/regexp-pcre.js | 2 +- deps/v8/test/mjsunit/tools/csvparser.js | 27 +- deps/v8/test/mjsunit/tools/dumpcpp.js | 2 +- deps/v8/test/mjsunit/tools/profviz-test.log | 4966 ++++++++--------- deps/v8/test/mjsunit/tools/profviz.js | 2 +- .../tools/tickprocessor-test-func-info.log | 16 +- .../test/mjsunit/tools/tickprocessor-test.log | 22 +- deps/v8/test/mjsunit/tools/tickprocessor.js | 4 +- .../type-profile/collect-type-profile.js | 90 - deps/v8/test/mjsunit/value-of.js | 12 +- .../v8/test/mjsunit/wasm/asm-with-wasm-off.js | 6 +- deps/v8/test/mjsunit/wasm/atomics.js | 230 +- .../test/mjsunit/wasm/bounds-check-64bit.js | 33 + .../test/mjsunit/wasm/disable-trap-handler.js | 9 + deps/v8/test/mjsunit/wasm/disallow-codegen.js | 104 + deps/v8/test/mjsunit/wasm/exceptions.js | 334 +- deps/v8/test/mjsunit/wasm/expose-wasm.js | 7 + deps/v8/test/mjsunit/wasm/ffi-error.js | 58 +- deps/v8/test/mjsunit/wasm/globals.js | 116 + deps/v8/test/mjsunit/wasm/import-memory.js | 26 + deps/v8/test/mjsunit/wasm/interpreter.js | 23 + deps/v8/test/mjsunit/wasm/js-api.js | 84 +- .../test/mjsunit/wasm/memory-external-call.js | 338 ++ deps/v8/test/mjsunit/wasm/module-memory.js | 6 +- deps/v8/test/mjsunit/wasm/multi-value.js | 233 + deps/v8/test/mjsunit/wasm/shared-memory.js | 51 + deps/v8/test/mjsunit/wasm/stack.js | 29 +- .../v8/test/mjsunit/wasm/streaming-compile.js | 7 + .../mjsunit/wasm/streaming-error-position.js | 374 ++ .../mjsunit/wasm/streaming-trap-location.js | 7 + .../wasm/test-import-export-wrapper.js | 25 + deps/v8/test/mjsunit/wasm/trap-location.js | 6 +- .../mjsunit/wasm/unreachable-validation.js | 2 + deps/v8/test/mjsunit/wasm/wasm-constants.js | 34 +- .../test/mjsunit/wasm/wasm-module-builder.js | 29 +- deps/v8/test/mjsunit/wasm/worker-memory.js | 69 + deps/v8/test/mozilla/mozilla.status | 4 + deps/v8/test/promises-aplus/testcfg.py | 67 +- .../formatToParts/default-parameter.js | 30 + deps/v8/test/test262/test262.status | 124 +- deps/v8/test/test262/testcfg.py | 11 +- deps/v8/test/unittests/BUILD.gn | 49 +- .../unittests/api/remote-object-unittest.cc | 2 + .../unittests/asmjs/asm-scanner-unittest.cc | 4 +- .../unittests/asmjs/asm-types-unittest.cc | 4 +- deps/v8/test/unittests/base/bits-unittest.cc | 34 +- .../test/unittests/base/logging-unittest.cc | 150 + .../unittests/base/template-utils-unittest.cc | 79 + deps/v8/test/unittests/bigint-unittest.cc | 111 + .../unittests/code-stub-assembler-unittest.cc | 72 + .../unittests/code-stub-assembler-unittest.h | 35 + .../compiler-dispatcher-unittest.cc | 14 +- .../optimizing-compile-dispatcher-unittest.cc | 6 +- .../unoptimized-compile-job-unittest.cc | 15 +- .../instruction-selector-arm64-unittest.cc | 8 +- .../compiler/code-assembler-unittest.cc | 254 + .../compiler/code-assembler-unittest.h | 37 + .../common-operator-reducer-unittest.cc | 2 + .../compiler/common-operator-unittest.cc | 3 +- .../dead-code-elimination-unittest.cc | 2 + .../unittests/compiler/diamond-unittest.cc | 6 +- .../compiler/escape-analysis-unittest.cc | 523 -- .../compiler/graph-reducer-unittest.cc | 2 + .../test/unittests/compiler/graph-unittest.cc | 6 +- .../instruction-selector-ia32-unittest.cc | 2 + .../compiler/instruction-sequence-unittest.cc | 12 +- .../compiler/instruction-unittest.cc | 2 + .../compiler/int64-lowering-unittest.cc | 22 +- .../compiler/js-create-lowering-unittest.cc | 9 +- .../js-intrinsic-lowering-unittest.cc | 4 +- .../compiler/js-operator-unittest.cc | 3 +- .../compiler/js-typed-lowering-unittest.cc | 71 - .../compiler/machine-operator-unittest.cc | 16 +- .../instruction-selector-mips-unittest.cc | 2 + .../instruction-selector-mips64-unittest.cc | 2 + .../unittests/compiler/node-cache-unittest.cc | 2 + .../compiler/node-properties-unittest.cc | 2 + .../unittests/compiler/node-test-utils.cc | 313 +- .../test/unittests/compiler/node-test-utils.h | 79 + .../test/unittests/compiler/node-unittest.cc | 7 +- .../ppc/instruction-selector-ppc-unittest.cc | 2 + .../regalloc/move-optimizer-unittest.cc | 2 +- .../instruction-selector-s390-unittest.cc | 2 + .../unittests/compiler/schedule-unittest.cc | 6 +- .../simplified-operator-reducer-unittest.cc | 2 + .../compiler/simplified-operator-unittest.cc | 16 +- .../compiler/typed-optimization-unittest.cc | 95 +- .../test/unittests/compiler/typer-unittest.cc | 28 +- .../value-numbering-reducer-unittest.cc | 2 + .../unittests/detachable-vector-unittest.cc | 67 + .../unittests/eh-frame-iterator-unittest.cc | 8 +- .../unittests/eh-frame-writer-unittest.cc | 8 +- .../test/unittests/heap/barrier-unittest.cc | 145 + .../test/unittests/heap/marking-unittest.cc | 6 +- .../test/unittests/heap/worklist-unittest.cc | 26 + .../bytecode-array-builder-unittest.cc | 135 +- .../bytecode-array-iterator-unittest.cc | 243 +- ...bytecode-array-random-iterator-unittest.cc | 98 +- .../bytecode-array-writer-unittest.cc | 8 +- .../interpreter/bytecode-decoder-unittest.cc | 10 +- .../interpreter/bytecodes-unittest.cc | 106 +- .../constant-array-builder-unittest.cc | 14 +- .../interpreter-assembler-unittest.cc | 388 +- .../interpreter-assembler-unittest.h | 2 + .../libplatform/default-platform-unittest.cc | 6 + .../libplatform/task-queue-unittest.cc | 2 + .../libplatform/worker-thread-unittest.cc | 36 +- .../unittests/parser/ast-value-unittest.cc | 43 + .../source-position-table-unittest.cc | 12 +- deps/v8/test/unittests/test-utils.cc | 5 +- deps/v8/test/unittests/test-utils.h | 5 +- deps/v8/test/unittests/unicode-unittest.cc | 403 ++ deps/v8/test/unittests/unittests.gyp | 13 +- .../unittests/value-serializer-unittest.cc | 52 +- .../wasm/control-transfer-unittest.cc | 7 - .../test/unittests/wasm/decoder-unittest.cc | 115 +- .../wasm/function-body-decoder-unittest.cc | 368 +- .../unittests/wasm/leb-helper-unittest.cc | 28 +- .../wasm/loop-assignment-analysis-unittest.cc | 6 +- .../unittests/wasm/module-decoder-unittest.cc | 99 +- .../wasm/streaming-decoder-unittest.cc | 211 +- .../unittests/wasm/trap-handler-unittest.cc | 69 + .../test/unittests/wasm/wasm-heap-unittest.cc | 157 + .../unittests/wasm/wasm-macro-gen-unittest.cc | 3 + .../unittests/wasm/wasm-opcodes-unittest.cc | 1 + .../v8/test/wasm-spec-tests/tests.tar.gz.sha1 | 2 +- .../wasm-spec-tests/wasm-spec-tests.status | 1 - .../array-prototype-properties-expected.txt | 18 +- .../fast/js/array-prototype-properties.js | 2 +- ...s-continue-break-restrictions-expected.txt | 6 +- deps/v8/test/webkit/webkit.status | 4 + deps/v8/third_party/colorama/LICENSE | 28 + deps/v8/third_party/colorama/README.v8 | 14 + deps/v8/third_party/eu-strip/README.v8 | 24 + deps/v8/third_party/eu-strip/bin/eu-strip | Bin 0 -> 105120 bytes .../inspector_protocol/CodeGenerator.py | 13 + .../third_party/inspector_protocol/README.v8 | 2 +- .../lib/DispatcherBase_cpp.template | 16 +- .../lib/DispatcherBase_h.template | 4 +- .../lib/ErrorSupport_cpp.template | 10 + .../lib/ErrorSupport_h.template | 2 + .../lib/Values_cpp.template | 46 +- .../inspector_protocol/lib/Values_h.template | 3 + .../templates/TypeBuilder_cpp.template | 16 +- .../templates/TypeBuilder_h.template | 13 +- deps/v8/tools/BUILD.gn | 9 - deps/v8/tools/android-sync.sh | 1 + deps/v8/tools/arguments.js | 78 + deps/v8/tools/bigint-tester.py | 347 ++ deps/v8/tools/check-inline-includes.sh | 21 +- deps/v8/tools/csvparser.js | 101 +- deps/v8/tools/dev/gm.py | 10 +- deps/v8/tools/dump-cpp.py | 4 +- .../tools/foozzie/testdata/failure_output.txt | 4 +- .../foozzie/testdata/v8_build_config.json | 2 +- deps/v8/tools/foozzie/v8_foozzie.py | 10 +- deps/v8/tools/foozzie/v8_suppressions.py | 4 + deps/v8/tools/gcmole/download_gcmole_tools.py | 2 - deps/v8/tools/grokdump.py | 93 +- deps/v8/tools/ic-explorer.html | 1 + deps/v8/tools/ic-processor | 4 +- deps/v8/tools/ic-processor.js | 99 +- deps/v8/tools/js2c.py | 3 + deps/v8/tools/jsfunfuzz/download_jsfunfuzz.py | 2 - deps/v8/tools/linux-tick-processor | 4 +- deps/v8/tools/luci-go/linux64/isolate.sha1 | 1 - deps/v8/tools/luci-go/mac64/isolate.sha1 | 1 - deps/v8/tools/luci-go/win64/isolate.exe.sha1 | 1 - deps/v8/tools/mb/mb.py | 2 +- deps/v8/tools/memory/asan/blacklist_win.txt | 4 + deps/v8/tools/perf-to-html.py | 32 +- deps/v8/tools/plot-timer-events | 5 +- deps/v8/tools/presubmit.py | 11 +- deps/v8/tools/profviz/profviz.js | 1 + deps/v8/tools/release/check_clusterfuzz.py | 3 +- deps/v8/tools/run-deopt-fuzzer.py | 488 +- deps/v8/tools/run-tests.py | 967 +--- deps/v8/tools/run-valgrind.gyp | 26 - deps/v8/tools/run-valgrind.isolate | 29 - deps/v8/tools/run-valgrind.py | 102 - deps/v8/tools/testrunner/base_runner.py | 392 ++ deps/v8/tools/testrunner/deopt_fuzzer.py | 379 ++ deps/v8/tools/testrunner/local/commands.py | 20 + deps/v8/tools/testrunner/local/testsuite.py | 16 +- deps/v8/tools/testrunner/local/variants.py | 10 +- deps/v8/tools/testrunner/network/endpoint.py | 3 - deps/v8/tools/testrunner/standard_runner.py | 595 ++ deps/v8/tools/testrunner/testrunner.isolate | 8 +- .../testrunner/utils/dump_build_config.py | 4 +- .../testrunner/utils/dump_build_config_gyp.py | 47 + deps/v8/tools/tick-processor.html | 14 +- deps/v8/tools/tickprocessor.js | 242 +- deps/v8/tools/v8heapconst.py | 551 +- deps/v8/tools/wasm/update-wasm-spec-tests.sh | 2 +- deps/v8/tools/whitespace.txt | 3 +- deps/v8/tools/windows-tick-processor.bat | 2 +- 1788 files changed, 111428 insertions(+), 76801 deletions(-) create mode 100644 deps/v8/.git-blame-ignore-revs create mode 100644 deps/v8/.vpython create mode 100755 deps/v8/gypfiles/run-tests-legacy.py delete mode 100644 deps/v8/gypfiles/vs_toolchain.py delete mode 100644 deps/v8/src/arm/codegen-arm.h delete mode 100644 deps/v8/src/arm64/codegen-arm64.h create mode 100644 deps/v8/src/arm64/instructions-arm64-constants.cc create mode 100644 deps/v8/src/base/platform/OWNERS create mode 100644 deps/v8/src/base/tsan.h create mode 100644 deps/v8/src/builtins/builtins-bigint.cc delete mode 100644 deps/v8/src/builtins/builtins-forin-gen.cc delete mode 100644 deps/v8/src/builtins/builtins-forin-gen.h delete mode 100644 deps/v8/src/builtins/builtins-proxy-helpers-gen.cc delete mode 100644 deps/v8/src/builtins/builtins-proxy-helpers-gen.h create mode 100644 deps/v8/src/builtins/builtins-reflect-gen.cc create mode 100644 deps/v8/src/compiler/allocation-builder.h delete mode 100644 deps/v8/src/compiler/new-escape-analysis-reducer.cc delete mode 100644 deps/v8/src/compiler/new-escape-analysis-reducer.h delete mode 100644 deps/v8/src/compiler/new-escape-analysis.cc delete mode 100644 deps/v8/src/compiler/new-escape-analysis.h create mode 100644 deps/v8/src/debug/debug-type-profile.cc create mode 100644 deps/v8/src/debug/debug-type-profile.h create mode 100644 deps/v8/src/detachable-vector.h create mode 100644 deps/v8/src/factory-inl.h delete mode 100644 deps/v8/src/ffi/OWNERS delete mode 100644 deps/v8/src/ffi/ffi-compiler.cc delete mode 100644 deps/v8/src/ffi/ffi-compiler.h delete mode 100644 deps/v8/src/find-and-replace-pattern.h create mode 100644 deps/v8/src/heap/barrier.h delete mode 100644 deps/v8/src/heap/sequential-marking-deque.cc delete mode 100644 deps/v8/src/heap/sequential-marking-deque.h create mode 100644 deps/v8/src/heap/setup-heap-internal.cc delete mode 100644 deps/v8/src/ia32/codegen-ia32.h delete mode 100644 deps/v8/src/inspector/script-breakpoint.h delete mode 100644 deps/v8/src/js/max-min.js delete mode 100644 deps/v8/src/js/string.js delete mode 100644 deps/v8/src/js/templates.js delete mode 100644 deps/v8/src/list-inl.h delete mode 100644 deps/v8/src/list.h delete mode 100644 deps/v8/src/mips/codegen-mips.h delete mode 100644 deps/v8/src/mips64/codegen-mips64.h create mode 100644 deps/v8/src/objects/bigint-inl.h create mode 100644 deps/v8/src/objects/bigint.cc create mode 100644 deps/v8/src/objects/bigint.h delete mode 100644 deps/v8/src/objects/code-cache-inl.h delete mode 100644 deps/v8/src/objects/code-cache.h create mode 100644 deps/v8/src/objects/code-inl.h create mode 100644 deps/v8/src/objects/code.h create mode 100644 deps/v8/src/objects/js-array-inl.h create mode 100644 deps/v8/src/objects/js-array.h create mode 100644 deps/v8/src/objects/js-regexp-inl.h create mode 100644 deps/v8/src/objects/js-regexp.h create mode 100644 deps/v8/src/objects/property-descriptor-object-inl.h create mode 100644 deps/v8/src/objects/property-descriptor-object.h create mode 100644 deps/v8/src/objects/template-objects.cc create mode 100644 deps/v8/src/objects/template-objects.h rename deps/v8/src/{ => parsing}/background-parsing-task.cc (94%) rename deps/v8/src/{ => parsing}/background-parsing-task.h (93%) delete mode 100644 deps/v8/src/ppc/codegen-ppc.h create mode 100644 deps/v8/src/runtime/runtime-bigint.cc delete mode 100644 deps/v8/src/s390/codegen-s390.h delete mode 100644 deps/v8/src/small-pointer-list.h create mode 100644 deps/v8/src/snapshot/builtin-deserializer-allocator.cc create mode 100644 deps/v8/src/snapshot/builtin-deserializer-allocator.h create mode 100644 deps/v8/src/snapshot/builtin-deserializer.cc create mode 100644 deps/v8/src/snapshot/builtin-deserializer.h create mode 100644 deps/v8/src/snapshot/builtin-serializer-allocator.cc create mode 100644 deps/v8/src/snapshot/builtin-serializer-allocator.h create mode 100644 deps/v8/src/snapshot/builtin-serializer.cc create mode 100644 deps/v8/src/snapshot/builtin-serializer.h create mode 100644 deps/v8/src/snapshot/default-deserializer-allocator.cc create mode 100644 deps/v8/src/snapshot/default-deserializer-allocator.h create mode 100644 deps/v8/src/snapshot/default-serializer-allocator.cc create mode 100644 deps/v8/src/snapshot/default-serializer-allocator.h create mode 100644 deps/v8/src/wasm/baseline/DEPS create mode 100644 deps/v8/src/wasm/baseline/arm/liftoff-assembler-arm-defs.h create mode 100644 deps/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h create mode 100644 deps/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64-defs.h create mode 100644 deps/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h create mode 100644 deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-defs.h create mode 100644 deps/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h create mode 100644 deps/v8/src/wasm/baseline/liftoff-assembler.cc create mode 100644 deps/v8/src/wasm/baseline/liftoff-assembler.h create mode 100644 deps/v8/src/wasm/baseline/liftoff-compiler.cc create mode 100644 deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips-defs.h create mode 100644 deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h create mode 100644 deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64-defs.h create mode 100644 deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h create mode 100644 deps/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc-defs.h create mode 100644 deps/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h create mode 100644 deps/v8/src/wasm/baseline/s390/liftoff-assembler-s390-defs.h create mode 100644 deps/v8/src/wasm/baseline/s390/liftoff-assembler-s390.h create mode 100644 deps/v8/src/wasm/baseline/x64/liftoff-assembler-x64-defs.h create mode 100644 deps/v8/src/wasm/baseline/x64/liftoff-assembler-x64.h create mode 100644 deps/v8/src/wasm/memory-tracing.cc create mode 100644 deps/v8/src/wasm/memory-tracing.h create mode 100644 deps/v8/src/wasm/wasm-heap.cc create mode 100644 deps/v8/src/wasm/wasm-heap.h create mode 100644 deps/v8/src/wasm/wasm-memory.cc create mode 100644 deps/v8/src/wasm/wasm-memory.h create mode 100644 deps/v8/src/wasm/wasm-objects-inl.h delete mode 100644 deps/v8/src/x64/codegen-x64.h create mode 100644 deps/v8/src/zone/zone-list-inl.h create mode 100644 deps/v8/test/cctest/compiler/value-helper.cc delete mode 100644 deps/v8/test/cctest/ffi/OWNERS delete mode 100644 deps/v8/test/cctest/ffi/test-ffi.cc delete mode 100644 deps/v8/test/cctest/test-code-cache.cc delete mode 100644 deps/v8/test/cctest/test-list.cc create mode 100644 deps/v8/test/cctest/wasm/test-streaming-compilation.cc create mode 100644 deps/v8/test/cctest/wasm/wasm-run-utils.cc create mode 100644 deps/v8/test/debugger/debug/debug-break-microtask.js create mode 100644 deps/v8/test/debugger/debug/debug-liveedit-inline.js create mode 100644 deps/v8/test/debugger/debug/debug-step-microtask.js create mode 100644 deps/v8/test/debugger/debug/es8/promise-finally.js create mode 100644 deps/v8/test/fuzzer/wasm_async/regression-761784.wasm create mode 100644 deps/v8/test/inspector/debugger/breakpoints-expected.txt create mode 100644 deps/v8/test/inspector/debugger/breakpoints.js create mode 100644 deps/v8/test/inspector/debugger/call-frame-url-expected.txt create mode 100644 deps/v8/test/inspector/debugger/call-frame-url.js create mode 100644 deps/v8/test/inspector/debugger/max-async-call-stack-depth-changed-expected.txt create mode 100644 deps/v8/test/inspector/debugger/max-async-call-stack-depth-changed.js create mode 100644 deps/v8/test/inspector/debugger/provisional-breakpoint-for-anonymous-script-expected.txt create mode 100644 deps/v8/test/inspector/debugger/provisional-breakpoint-for-anonymous-script.js create mode 100644 deps/v8/test/inspector/debugger/set-breakpoint-at-last-line-expected.txt create mode 100644 deps/v8/test/inspector/debugger/set-breakpoint-at-last-line.js create mode 100644 deps/v8/test/inspector/debugger/this-in-arrow-function-expected.txt create mode 100644 deps/v8/test/inspector/debugger/this-in-arrow-function.js create mode 100644 deps/v8/test/inspector/runtime/function-scopes-expected.txt create mode 100644 deps/v8/test/inspector/runtime/function-scopes.js create mode 100644 deps/v8/test/inspector/runtime/runtime-global-lexical-scope-names-expected.txt create mode 100644 deps/v8/test/inspector/runtime/runtime-global-lexical-scope-names.js create mode 100644 deps/v8/test/inspector/type-profiler/type-profile-disable-expected.txt create mode 100644 deps/v8/test/inspector/type-profiler/type-profile-disable.js create mode 100644 deps/v8/test/inspector/type-profiler/type-profile-expected.txt create mode 100644 deps/v8/test/inspector/type-profiler/type-profile-start-stop-expected.txt create mode 100644 deps/v8/test/inspector/type-profiler/type-profile-start-stop.js create mode 100644 deps/v8/test/inspector/type-profiler/type-profile-with-classes-expected.txt create mode 100644 deps/v8/test/inspector/type-profiler/type-profile-with-classes.js create mode 100644 deps/v8/test/inspector/type-profiler/type-profile-with-to-string-tag-expected.txt create mode 100644 deps/v8/test/inspector/type-profiler/type-profile-with-to-string-tag.js create mode 100644 deps/v8/test/inspector/type-profiler/type-profile.js create mode 100644 deps/v8/test/intl/date-format/invalid-time.js create mode 100644 deps/v8/test/intl/general/invalid-locale.js create mode 100644 deps/v8/test/js-perf-test/Parsing/comments.js create mode 100644 deps/v8/test/js-perf-test/Parsing/run.js create mode 100644 deps/v8/test/message/settimeout.js create mode 100644 deps/v8/test/message/settimeout.out create mode 100644 deps/v8/test/message/wasm-trace-memory-interpreted.js create mode 100644 deps/v8/test/message/wasm-trace-memory-interpreted.out create mode 100644 deps/v8/test/message/wasm-trace-memory.js create mode 100644 deps/v8/test/message/wasm-trace-memory.out create mode 100644 deps/v8/test/mjsunit/array-lastindexof.js create mode 100644 deps/v8/test/mjsunit/asm/math-max.js create mode 100644 deps/v8/test/mjsunit/asm/math-min.js create mode 100644 deps/v8/test/mjsunit/asm/noexpose-wasm.js create mode 100644 deps/v8/test/mjsunit/compiler/array-push-1.js create mode 100644 deps/v8/test/mjsunit/compiler/array-push-2.js create mode 100644 deps/v8/test/mjsunit/compiler/array-push-3.js create mode 100644 deps/v8/test/mjsunit/compiler/array-subclass.js create mode 100644 deps/v8/test/mjsunit/compiler/constant-fold-cow-array.js create mode 100644 deps/v8/test/mjsunit/compiler/constant-fold-tostring.js delete mode 100644 deps/v8/test/mjsunit/compiler/dead-string-char-code-at.js delete mode 100644 deps/v8/test/mjsunit/compiler/dead-string-char-code-at2.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-closure.js create mode 100644 deps/v8/test/mjsunit/compiler/deopt-simple-try-catch.js create mode 100644 deps/v8/test/mjsunit/compiler/for-in-1.js create mode 100644 deps/v8/test/mjsunit/compiler/for-in-2.js create mode 100644 deps/v8/test/mjsunit/compiler/for-in-3.js create mode 100644 deps/v8/test/mjsunit/compiler/for-in-4.js create mode 100644 deps/v8/test/mjsunit/compiler/for-in-5.js create mode 100644 deps/v8/test/mjsunit/compiler/function-caller.js create mode 100644 deps/v8/test/mjsunit/compiler/nary-binary-ops.js create mode 100644 deps/v8/test/mjsunit/compiler/object-constructor.js create mode 100644 deps/v8/test/mjsunit/compiler/object-is.js create mode 100644 deps/v8/test/mjsunit/compiler/osr-arguments.js create mode 100644 deps/v8/test/mjsunit/compiler/polymorphic-symbols.js create mode 100644 deps/v8/test/mjsunit/compiler/reflect-get.js create mode 100644 deps/v8/test/mjsunit/compiler/reflect-has.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-758096.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-761892.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-762057.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-772420.js create mode 100644 deps/v8/test/mjsunit/compiler/stress-deopt-count-1.js create mode 100644 deps/v8/test/mjsunit/compiler/stress-deopt-count-2.js create mode 100644 deps/v8/test/mjsunit/compiler/typedarray-prototype-tostringtag.js create mode 100644 deps/v8/test/mjsunit/console.js create mode 100644 deps/v8/test/mjsunit/es6/regress/regress-777182.js rename deps/v8/test/mjsunit/{harmony => es6}/sloppy-no-duplicate-generators.js (93%) rename deps/v8/test/mjsunit/{harmony => es9}/object-rest-basic.js (98%) rename deps/v8/test/mjsunit/{harmony => es9}/object-spread-basic.js (98%) create mode 100644 deps/v8/test/mjsunit/filter-element-kinds.js create mode 100644 deps/v8/test/mjsunit/harmony/array-sort-comparefn.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/add.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/and.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/basics.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/comparisons.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/dec.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/div.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/inc.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/json.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/mod.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/mul.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/neg.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/not.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/or.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/sar.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/shl.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/sub.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/xor.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-large.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-meta.js rename deps/v8/test/mjsunit/{regress/wasm/regression-694433.js => harmony/modules-skip-export-import-meta.js} (62%) create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-large1.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-large2.js create mode 100644 deps/v8/test/mjsunit/harmony/public-class-fields.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-771470.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-772649.js delete mode 100644 deps/v8/test/mjsunit/harmony/sloppy-legacy-duplicate-generators.js create mode 100644 deps/v8/test/mjsunit/optimized-filter.js create mode 100644 deps/v8/test/mjsunit/optimized-foreach-polymorph.js create mode 100644 deps/v8/test/mjsunit/regress/regress-2435.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6838-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6838-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6838-3.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6907.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6941.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6948.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6970.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6989.js create mode 100644 deps/v8/test/mjsunit/regress/regress-6991.js create mode 100644 deps/v8/test/mjsunit/regress/regress-760268.js create mode 100644 deps/v8/test/mjsunit/regress/regress-760790.js create mode 100644 deps/v8/test/mjsunit/regress/regress-761639.js create mode 100644 deps/v8/test/mjsunit/regress/regress-772190.js create mode 100644 deps/v8/test/mjsunit/regress/regress-774475.js create mode 100644 deps/v8/test/mjsunit/regress/regress-774824.js create mode 100644 deps/v8/test/mjsunit/regress/regress-775888.js create mode 100644 deps/v8/test/mjsunit/regress/regress-776338.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-722871.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-764219.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-766635.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-768080.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-768367.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-768875.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-769852.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-770543.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-770581.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-771971.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-772056.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-772610.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-772672.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-772689.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-772720.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-774459.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-774860.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-774994.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-776511.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-6906.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-6940.js rename deps/v8/test/mjsunit/regress/wasm/{regression-02256.js => regress-02256.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-02256b.js => regress-02256b.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-02862.js => regress-02862.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-5531.js => regress-5531.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-5800.js => regress-5800.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-5884.js => regress-5884.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-6054.js => regress-6054.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-6164.js => regress-6164.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-643595.js => regress-643595.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-644682.js => regress-644682.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-647649.js => regress-647649.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-648079.js => regress-648079.js} (99%) rename deps/v8/test/mjsunit/regress/wasm/{regression-651961.js => regress-651961.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-654377.js => regress-654377.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-663994.js => regress-663994.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-666741.js => regress-666741.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-667745.js => regress-667745.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-670683.js => regress-670683.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-674447.js => regress-674447.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-680938.js => regress-680938.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-684858.js => regress-684858.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-688876.js => regress-688876.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-689450.js => regress-689450.js} (100%) create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-6931.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-694433.js rename deps/v8/test/mjsunit/regress/wasm/{regression-698587.js => regress-698587.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-699485.js => regress-699485.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-702460.js => regress-702460.js} (98%) rename deps/v8/test/mjsunit/regress/wasm/{regression-702839.js => regress-702839.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-703568.js => regress-703568.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-708714.js => regress-708714.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-710844.js => regress-710844.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-711203.js => regress-711203.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-715216-a.js => regress-715216a.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-715216-b.js => regress-715216b.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-717056.js => regress-717056.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-717194.js => regress-717194.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-719175.js => regress-719175.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-722445.js => regress-722445.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-724846.js => regress-724846.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-724851.js => regress-724851.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-724972.js => regress-724972.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-727219.js => regress-727219.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-727222.js => regress-727222.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-727560.js => regress-727560.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-729991.js => regress-729991.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-731351.js => regress-731351.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-734108.js => regress-734108.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-734246.js => regress-734246.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-734345.js => regress-734345.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-736584.js => regress-736584.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-737069.js => regress-737069.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-739768.js => regress-739768.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-753496.js => regress-753496.js} (100%) rename deps/v8/test/mjsunit/regress/wasm/{regression-757217.js => regress-757217.js} (100%) create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-763439.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-763697.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-766003.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-769846.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-771243.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-772332.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-775366.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-775710.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-776677.js create mode 100644 deps/v8/test/mjsunit/splice-proxy.js delete mode 100644 deps/v8/test/mjsunit/type-profile/collect-type-profile.js create mode 100644 deps/v8/test/mjsunit/wasm/bounds-check-64bit.js create mode 100644 deps/v8/test/mjsunit/wasm/disable-trap-handler.js create mode 100644 deps/v8/test/mjsunit/wasm/disallow-codegen.js create mode 100644 deps/v8/test/mjsunit/wasm/expose-wasm.js create mode 100644 deps/v8/test/mjsunit/wasm/memory-external-call.js create mode 100644 deps/v8/test/mjsunit/wasm/multi-value.js create mode 100644 deps/v8/test/mjsunit/wasm/streaming-compile.js create mode 100644 deps/v8/test/mjsunit/wasm/streaming-error-position.js create mode 100644 deps/v8/test/mjsunit/wasm/streaming-trap-location.js create mode 100644 deps/v8/test/mjsunit/wasm/worker-memory.js create mode 100644 deps/v8/test/test262/local-tests/test/intl402/NumberFormat/prototype/formatToParts/default-parameter.js create mode 100644 deps/v8/test/unittests/bigint-unittest.cc create mode 100644 deps/v8/test/unittests/code-stub-assembler-unittest.cc create mode 100644 deps/v8/test/unittests/code-stub-assembler-unittest.h create mode 100644 deps/v8/test/unittests/compiler/code-assembler-unittest.cc create mode 100644 deps/v8/test/unittests/compiler/code-assembler-unittest.h delete mode 100644 deps/v8/test/unittests/compiler/escape-analysis-unittest.cc create mode 100644 deps/v8/test/unittests/detachable-vector-unittest.cc create mode 100644 deps/v8/test/unittests/heap/barrier-unittest.cc create mode 100644 deps/v8/test/unittests/parser/ast-value-unittest.cc create mode 100644 deps/v8/test/unittests/wasm/trap-handler-unittest.cc create mode 100644 deps/v8/test/unittests/wasm/wasm-heap-unittest.cc create mode 100644 deps/v8/third_party/colorama/LICENSE create mode 100644 deps/v8/third_party/colorama/README.v8 create mode 100644 deps/v8/third_party/eu-strip/README.v8 create mode 100755 deps/v8/third_party/eu-strip/bin/eu-strip create mode 100644 deps/v8/tools/arguments.js create mode 100755 deps/v8/tools/bigint-tester.py delete mode 100644 deps/v8/tools/luci-go/linux64/isolate.sha1 delete mode 100644 deps/v8/tools/luci-go/mac64/isolate.sha1 delete mode 100644 deps/v8/tools/luci-go/win64/isolate.exe.sha1 create mode 100644 deps/v8/tools/memory/asan/blacklist_win.txt delete mode 100644 deps/v8/tools/run-valgrind.gyp delete mode 100644 deps/v8/tools/run-valgrind.isolate delete mode 100755 deps/v8/tools/run-valgrind.py create mode 100644 deps/v8/tools/testrunner/base_runner.py create mode 100755 deps/v8/tools/testrunner/deopt_fuzzer.py create mode 100755 deps/v8/tools/testrunner/standard_runner.py create mode 100644 deps/v8/tools/testrunner/utils/dump_build_config_gyp.py diff --git a/deps/v8/.git-blame-ignore-revs b/deps/v8/.git-blame-ignore-revs new file mode 100644 index 00000000000..58d0039ab91 --- /dev/null +++ b/deps/v8/.git-blame-ignore-revs @@ -0,0 +1,22 @@ +# git hyper-blame master ignore list. +# +# This file contains a list of git hashes of revisions to be ignored by git +# hyper-blame (in depot_tools). These revisions are considered "unimportant" in +# that they are unlikely to be what you are interested in when blaming. +# +# Instructions: +# - Only large (generally automated) reformatting or renaming CLs should be +# added to this list. Do not put things here just because you feel they are +# trivial or unimportant. If in doubt, do not put it on this list. +# - Precede each revision with a comment containing the first line of its log. +# For bulk work over many commits, place all commits in a block with a single +# comment at the top describing the work done in those commits. +# - Only put full 40-character hashes on this list (not short hashes or any +# other revision reference). +# - Append to the bottom of the file (revisions should be in chronological order +# from oldest to newest). +# - Because you must use a hash, you need to append to this list in a follow-up +# CL to the actual reformatting CL that you are trying to ignore. + +# Update of quotations in DEPS file. +e50b49a0e38b34e2b28e026f4d1c7e0da0c7bb1a diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index cf459308893..85ff179226f 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -68,16 +68,17 @@ !/testing/gtest/include/gtest/gtest_prod.h /third_party/* !/third_party/binutils +!/third_party/eu-strip !/third_party/inspector_protocol +!/third_party/colorama +/third_party/colorama/src /tools/clang /tools/gcmole/gcmole-tools /tools/gcmole/gcmole-tools.tar.gz /tools/gyp /tools/jsfunfuzz/jsfunfuzz /tools/jsfunfuzz/jsfunfuzz.tar.gz -/tools/luci-go/linux64/isolate -/tools/luci-go/mac64/isolate -/tools/luci-go/win64/isolate.exe +/tools/luci-go /tools/oom_dump/oom_dump /tools/oom_dump/oom_dump.o /tools/swarming_client @@ -104,5 +105,6 @@ turbo*.cfg turbo*.dot turbo*.json v8.ignition_dispatches_table.json +/Default/ !/third_party/jinja2 !/third_party/markupsafe diff --git a/deps/v8/.vpython b/deps/v8/.vpython new file mode 100644 index 00000000000..9ea0da7145b --- /dev/null +++ b/deps/v8/.vpython @@ -0,0 +1,32 @@ +# This is a vpython "spec" file. +# +# It describes patterns for python wheel dependencies of the python scripts in +# the chromium repo, particularly for dependencies that have compiled components +# (since pure-python dependencies can be easily vendored into third_party). +# +# When vpython is invoked, it finds this file and builds a python VirtualEnv, +# containing all of the dependencies described in this file, fetching them from +# CIPD (the "Chrome Infrastructure Package Deployer" service). Unlike `pip`, +# this never requires the end-user machine to have a working python extension +# compilation environment. All of these packages are built using: +# https://chromium.googlesource.com/infra/infra/+/master/infra/tools/dockerbuild/ +# +# All python scripts in the repo share this same spec, to avoid dependency +# fragmentation. +# +# If you have depot_tools installed in your $PATH, you can invoke python scripts +# in this repo by running them as you normally would run them, except +# substituting `vpython` instead of `python` on the command line, e.g.: +# vpython path/to/script.py some --arguments +# +# Read more about `vpython` and how to modify this file here: +# https://chromium.googlesource.com/infra/infra/+/master/doc/users/vpython.md + +python_version: "2.7" + +# Needed by third_party/catapult/devil/devil, which is imported by +# build/android/test_runner.py when running performance tests. +wheel: < + name: "infra/python/wheels/psutil/${vpython_platform}" + version: "version:5.2.2" +> diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index c54cad02b2d..89b67f2fa68 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -1,4 +1,4 @@ -# Below is a list of people and organizations that have contributed +# Below is a list of people and organizations that have contributed # to the V8 project. Names should be added to the list like so: # # Name/Organization @@ -30,6 +30,8 @@ Yandex LLC <*@yandex-team.ru> StrongLoop, Inc. <*@strongloop.com> Facebook, Inc. <*@fb.com> Facebook, Inc. <*@oculus.com> +Vewd Software AS <*@vewd.com> +Groupon <*@groupon.com> Aaron Bieber Abdulla Kamar @@ -74,6 +76,7 @@ Ioseb Dzmanashvili Isiah Meadows Jaime Bernardo Jan de Mooij +Jan Krems Jay Freeman James Pike Jianghua Yang @@ -85,6 +88,7 @@ JunHo Seo Kang-Hao (Kenny) Lu Karl Skomski Kevin Gibbons +Kris Selden Loo Rong Jie Luis Reis Luke Zarko @@ -132,7 +136,9 @@ Vlad Burlik Vladimir Krivosheev Vladimir Shutoff Wiktor Garbacz +Yong Wang Yu Yin Zac Hansen Zhongping Wang -柳荣一 \ No newline at end of file +柳荣一 + diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 17759e1fbd2..3a9f93ffb52 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -56,7 +56,7 @@ declare_args() { v8_enable_vtunejit = false # Sets -dENABLE_HANDLE_ZAPPING. - v8_enable_handle_zapping = is_debug + v8_enable_handle_zapping = true # Enable slow dchecks. v8_enable_slow_dchecks = false @@ -84,10 +84,10 @@ declare_args() { v8_enable_trace_ignition = false # Sets -dV8_CONCURRENT_MARKING - v8_enable_concurrent_marking = false + v8_enable_concurrent_marking = true # Sets -dV8_CSA_WRITE_BARRIER - v8_enable_csa_write_barrier = false + v8_enable_csa_write_barrier = true # Build the snapshot with unwinding information for perf. # Sets -dV8_USE_SNAPSHOT_WITH_UNWINDING_INFO. @@ -110,6 +110,9 @@ declare_args() { # Similar to the ARM hard float ABI but on MIPS. v8_use_mips_abi_hardfloat = true + # Controls the threshold for on-heap/off-heap Typed Arrays. + v8_typed_array_max_size_in_heap = 64 + # List of extra files to snapshot. They will be snapshotted in order so # if files export symbols used by later files, they should go first. # @@ -205,8 +208,12 @@ config("libsampler_config") { # This config should only be applied to code using V8 and not any V8 code # itself. config("external_config") { + defines = [] if (is_component_build) { - defines = [ "USING_V8_SHARED" ] + defines += [ "USING_V8_SHARED" ] + } + if (v8_enable_v8_checks) { + defines += [ "V8_ENABLE_CHECKS" ] # Used in "include/v8.h". } include_dirs = [ "include", @@ -237,6 +244,8 @@ config("features") { defines += [ "V8_PROMISE_INTERNAL_FIELD_COUNT=${v8_promise_internal_field_count}" ] } + defines += + [ "V8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=${v8_typed_array_max_size_in_heap}" ] if (v8_enable_future) { defines += [ "V8_ENABLE_FUTURE" ] } @@ -557,14 +566,11 @@ action("js2c") { "src/js/macros.py", "src/messages.h", "src/js/prologue.js", - "src/js/max-min.js", "src/js/v8natives.js", "src/js/array.js", - "src/js/string.js", "src/js/typedarray.js", "src/js/weak-collection.js", "src/js/messages.js", - "src/js/templates.js", "src/js/spread.js", "src/js/proxy.js", "src/debug/mirrors.js", @@ -739,6 +745,10 @@ action("postmortem-metadata") { sources = [ "src/objects.h", "src/objects-inl.h", + "src/objects/js-array-inl.h", + "src/objects/js-array.h", + "src/objects/js-regexp-inl.h", + "src/objects/js-regexp.h", "src/objects/map.h", "src/objects/map-inl.h", "src/objects/script.h", @@ -827,7 +837,6 @@ action("v8_dump_build_config") { is_gcov_coverage = v8_code_coverage && !is_clang args = [ rebase_path("$root_out_dir/v8_build_config.json", root_build_dir), - "current_cpu=\"$current_cpu\"", "dcheck_always_on=$dcheck_always_on", "is_asan=$is_asan", "is_cfi=$is_cfi", @@ -838,8 +847,8 @@ action("v8_dump_build_config") { "is_tsan=$is_tsan", "is_ubsan_vptr=$is_ubsan_vptr", "target_cpu=\"$target_cpu\"", - "v8_current_cpu=\"$v8_current_cpu\"", "v8_enable_i18n_support=$v8_enable_i18n_support", + "v8_enable_verify_predictable=$v8_enable_verify_predictable", "v8_target_cpu=\"$v8_target_cpu\"", "v8_use_snapshot=$v8_use_snapshot", ] @@ -861,7 +870,7 @@ source_set("v8_maybe_snapshot") { } else { # Ignore v8_use_external_startup_data setting if no snapshot is used. public_deps = [ - ":v8_builtins_setup", + ":v8_init", ":v8_nosnapshot", ] } @@ -961,7 +970,7 @@ if (v8_use_external_startup_data) { } } -v8_source_set("v8_builtins_generators") { +v8_source_set("v8_initializers") { visibility = [ ":*", "test/cctest:*", @@ -992,8 +1001,6 @@ v8_source_set("v8_builtins_generators") { "src/builtins/builtins-conversion-gen.cc", "src/builtins/builtins-date-gen.cc", "src/builtins/builtins-debug-gen.cc", - "src/builtins/builtins-forin-gen.cc", - "src/builtins/builtins-forin-gen.h", "src/builtins/builtins-function-gen.cc", "src/builtins/builtins-generator-gen.cc", "src/builtins/builtins-global-gen.cc", @@ -1011,8 +1018,7 @@ v8_source_set("v8_builtins_generators") { "src/builtins/builtins-promise-gen.h", "src/builtins/builtins-proxy-gen.cc", "src/builtins/builtins-proxy-gen.h", - "src/builtins/builtins-proxy-helpers-gen.cc", - "src/builtins/builtins-proxy-helpers-gen.h", + "src/builtins/builtins-reflect-gen.cc", "src/builtins/builtins-regexp-gen.cc", "src/builtins/builtins-regexp-gen.h", "src/builtins/builtins-sharedarraybuffer-gen.cc", @@ -1023,6 +1029,7 @@ v8_source_set("v8_builtins_generators") { "src/builtins/builtins-utils-gen.h", "src/builtins/builtins-wasm-gen.cc", "src/builtins/setup-builtins-internal.cc", + "src/heap/setup-heap-internal.cc", "src/ic/accessor-assembler.cc", "src/ic/accessor-assembler.h", "src/ic/binary-op-assembler.cc", @@ -1044,6 +1051,10 @@ v8_source_set("v8_builtins_generators") { # TODO(mostynb@opera.com): don't exclude these http://crbug.com/752428 "src/builtins/builtins-async-iterator-gen.cc", "src/builtins/builtins-async-generator-gen.cc", + + # This source file takes an unusually large amount of time to + # compile. Build it separately to avoid bottlenecks. + "src/builtins/builtins-regexp-gen.cc", ] } @@ -1096,11 +1107,11 @@ v8_source_set("v8_builtins_generators") { configs = [ ":internal_config" ] } -v8_source_set("v8_builtins_setup") { +v8_source_set("v8_init") { visibility = [ ":*" ] # Only targets in this file can depend on this. deps = [ - ":v8_builtins_generators", + ":v8_initializers", ] sources = [ @@ -1213,8 +1224,6 @@ v8_source_set("v8_base") { "src/ast/scopes.h", "src/ast/variables.cc", "src/ast/variables.h", - "src/background-parsing-task.cc", - "src/background-parsing-task.h", "src/bailout-reason.cc", "src/bailout-reason.h", "src/basic-block-profiler.cc", @@ -1231,6 +1240,7 @@ v8_source_set("v8_base") { "src/builtins/builtins-api.cc", "src/builtins/builtins-array.cc", "src/builtins/builtins-arraybuffer.cc", + "src/builtins/builtins-bigint.cc", "src/builtins/builtins-boolean.cc", "src/builtins/builtins-call.cc", "src/builtins/builtins-callsite.cc", @@ -1308,6 +1318,7 @@ v8_source_set("v8_base") { "src/compiler/access-info.h", "src/compiler/all-nodes.cc", "src/compiler/all-nodes.h", + "src/compiler/allocation-builder.h", "src/compiler/basic-block-instrumentor.cc", "src/compiler/basic-block-instrumentor.h", "src/compiler/branch-elimination.cc", @@ -1425,10 +1436,6 @@ v8_source_set("v8_base") { "src/compiler/memory-optimizer.h", "src/compiler/move-optimizer.cc", "src/compiler/move-optimizer.h", - "src/compiler/new-escape-analysis-reducer.cc", - "src/compiler/new-escape-analysis-reducer.h", - "src/compiler/new-escape-analysis.cc", - "src/compiler/new-escape-analysis.h", "src/compiler/node-aux-data.h", "src/compiler/node-cache.cc", "src/compiler/node-cache.h", @@ -1530,6 +1537,8 @@ v8_source_set("v8_base") { "src/debug/debug-scopes.h", "src/debug/debug-stack-trace-iterator.cc", "src/debug/debug-stack-trace-iterator.h", + "src/debug/debug-type-profile.cc", + "src/debug/debug-type-profile.h", "src/debug/debug.cc", "src/debug/debug.h", "src/debug/interface-types.h", @@ -1539,6 +1548,7 @@ v8_source_set("v8_base") { "src/deoptimize-reason.h", "src/deoptimizer.cc", "src/deoptimizer.h", + "src/detachable-vector.h", "src/disasm.h", "src/disassembler.cc", "src/disassembler.h", @@ -1569,6 +1579,7 @@ v8_source_set("v8_base") { "src/extensions/trigger-failure-extension.h", "src/external-reference-table.cc", "src/external-reference-table.h", + "src/factory-inl.h", "src/factory.cc", "src/factory.h", "src/fast-dtoa.cc", @@ -1576,13 +1587,10 @@ v8_source_set("v8_base") { "src/feedback-vector-inl.h", "src/feedback-vector.cc", "src/feedback-vector.h", - "src/ffi/ffi-compiler.cc", - "src/ffi/ffi-compiler.h", "src/field-index-inl.h", "src/field-index.h", "src/field-type.cc", "src/field-type.h", - "src/find-and-replace-pattern.h", "src/fixed-dtoa.cc", "src/fixed-dtoa.h", "src/flag-definitions.h", @@ -1606,6 +1614,7 @@ v8_source_set("v8_base") { "src/heap/array-buffer-tracker-inl.h", "src/heap/array-buffer-tracker.cc", "src/heap/array-buffer-tracker.h", + "src/heap/barrier.h", "src/heap/code-stats.cc", "src/heap/code-stats.h", "src/heap/concurrent-marking.cc", @@ -1647,8 +1656,6 @@ v8_source_set("v8_base") { "src/heap/scavenger-inl.h", "src/heap/scavenger.cc", "src/heap/scavenger.h", - "src/heap/sequential-marking-deque.cc", - "src/heap/sequential-marking-deque.h", "src/heap/slot-set.h", "src/heap/spaces-inl.h", "src/heap/spaces.cc", @@ -1739,8 +1746,6 @@ v8_source_set("v8_base") { "src/layout-descriptor-inl.h", "src/layout-descriptor.cc", "src/layout-descriptor.h", - "src/list-inl.h", - "src/list.h", "src/locked-queue-inl.h", "src/locked-queue.h", "src/log-inl.h", @@ -1772,8 +1777,11 @@ v8_source_set("v8_base") { "src/objects.h", "src/objects/arguments-inl.h", "src/objects/arguments.h", - "src/objects/code-cache-inl.h", - "src/objects/code-cache.h", + "src/objects/bigint-inl.h", + "src/objects/bigint.cc", + "src/objects/bigint.h", + "src/objects/code-inl.h", + "src/objects/code.h", "src/objects/compilation-cache-inl.h", "src/objects/compilation-cache.h", "src/objects/debug-objects-inl.h", @@ -1787,6 +1795,10 @@ v8_source_set("v8_base") { "src/objects/hash-table.h", "src/objects/intl-objects.cc", "src/objects/intl-objects.h", + "src/objects/js-array-inl.h", + "src/objects/js-array.h", + "src/objects/js-regexp-inl.h", + "src/objects/js-regexp.h", "src/objects/literal-objects.cc", "src/objects/literal-objects.h", "src/objects/map-inl.h", @@ -1798,6 +1810,8 @@ v8_source_set("v8_base") { "src/objects/name.h", "src/objects/object-macros-undef.h", "src/objects/object-macros.h", + "src/objects/property-descriptor-object-inl.h", + "src/objects/property-descriptor-object.h", "src/objects/regexp-match-info.h", "src/objects/scope-info.cc", "src/objects/scope-info.h", @@ -1808,8 +1822,12 @@ v8_source_set("v8_base") { "src/objects/string-inl.h", "src/objects/string-table.h", "src/objects/string.h", + "src/objects/template-objects.cc", + "src/objects/template-objects.h", "src/ostreams.cc", "src/ostreams.h", + "src/parsing/background-parsing-task.cc", + "src/parsing/background-parsing-task.h", "src/parsing/duplicate-finder.h", "src/parsing/expression-classifier.h", "src/parsing/expression-scope-reparenter.cc", @@ -1904,6 +1922,7 @@ v8_source_set("v8_base") { "src/runtime-profiler.h", "src/runtime/runtime-array.cc", "src/runtime/runtime-atomics.cc", + "src/runtime/runtime-bigint.cc", "src/runtime/runtime-classes.cc", "src/runtime/runtime-collections.cc", "src/runtime/runtime-compiler.cc", @@ -1941,9 +1960,20 @@ v8_source_set("v8_base") { "src/setup-isolate.h", "src/signature.h", "src/simulator.h", - "src/small-pointer-list.h", + "src/snapshot/builtin-deserializer-allocator.cc", + "src/snapshot/builtin-deserializer-allocator.h", + "src/snapshot/builtin-deserializer.cc", + "src/snapshot/builtin-deserializer.h", + "src/snapshot/builtin-serializer-allocator.cc", + "src/snapshot/builtin-serializer-allocator.h", + "src/snapshot/builtin-serializer.cc", + "src/snapshot/builtin-serializer.h", "src/snapshot/code-serializer.cc", "src/snapshot/code-serializer.h", + "src/snapshot/default-deserializer-allocator.cc", + "src/snapshot/default-deserializer-allocator.h", + "src/snapshot/default-serializer-allocator.cc", + "src/snapshot/default-serializer-allocator.h", "src/snapshot/deserializer.cc", "src/snapshot/deserializer.h", "src/snapshot/natives-common.cc", @@ -2026,6 +2056,9 @@ v8_source_set("v8_base") { "src/visitors.h", "src/vm-state-inl.h", "src/vm-state.h", + "src/wasm/baseline/liftoff-assembler.cc", + "src/wasm/baseline/liftoff-assembler.h", + "src/wasm/baseline/liftoff-compiler.cc", "src/wasm/compilation-manager.cc", "src/wasm/compilation-manager.h", "src/wasm/decoder.h", @@ -2035,6 +2068,8 @@ v8_source_set("v8_base") { "src/wasm/leb-helper.h", "src/wasm/local-decl-encoder.cc", "src/wasm/local-decl-encoder.h", + "src/wasm/memory-tracing.cc", + "src/wasm/memory-tracing.h", "src/wasm/module-compiler.cc", "src/wasm/module-compiler.h", "src/wasm/module-decoder.cc", @@ -2050,15 +2085,20 @@ v8_source_set("v8_base") { "src/wasm/wasm-debug.cc", "src/wasm/wasm-external-refs.cc", "src/wasm/wasm-external-refs.h", + "src/wasm/wasm-heap.cc", + "src/wasm/wasm-heap.h", "src/wasm/wasm-interpreter.cc", "src/wasm/wasm-interpreter.h", "src/wasm/wasm-js.cc", "src/wasm/wasm-js.h", "src/wasm/wasm-limits.h", + "src/wasm/wasm-memory.cc", + "src/wasm/wasm-memory.h", "src/wasm/wasm-module-builder.cc", "src/wasm/wasm-module-builder.h", "src/wasm/wasm-module.cc", "src/wasm/wasm-module.h", + "src/wasm/wasm-objects-inl.h", "src/wasm/wasm-objects.cc", "src/wasm/wasm-objects.h", "src/wasm/wasm-opcodes.cc", @@ -2075,6 +2115,7 @@ v8_source_set("v8_base") { "src/zone/zone-chunk-list.h", "src/zone/zone-containers.h", "src/zone/zone-handle-set.h", + "src/zone/zone-list-inl.h", "src/zone/zone-segment.cc", "src/zone/zone-segment.h", "src/zone/zone.cc", @@ -2085,8 +2126,15 @@ v8_source_set("v8_base") { jumbo_excluded_sources = [ # TODO(mostynb@opera.com): don't exclude these http://crbug.com/752428 "src/profiler/heap-snapshot-generator.cc", # Macro clash in mman-linux.h - "src/compiler/escape-analysis.cc", # Symbol clashes with new-escape-analysis.cc - "src/compiler/escape-analysis-reducer.cc", # Symbol clashes with new-escape-analysis-reducer.cc + + # These source files take an unusually large amount of time to + # compile. Build them separately to avoid bottlenecks. + "src/api.cc", + "src/code-stub-assembler.cc", + "src/elements.cc", + "src/heap/heap.cc", + "src/objects.cc", + "src/parsing/parser.cc", ] } @@ -2103,7 +2151,6 @@ v8_source_set("v8_base") { "src/ia32/code-stubs-ia32.cc", "src/ia32/code-stubs-ia32.h", "src/ia32/codegen-ia32.cc", - "src/ia32/codegen-ia32.h", "src/ia32/cpu-ia32.cc", "src/ia32/deoptimizer-ia32.cc", "src/ia32/disasm-ia32.cc", @@ -2119,6 +2166,8 @@ v8_source_set("v8_base") { "src/ic/ia32/handler-compiler-ia32.cc", "src/regexp/ia32/regexp-macro-assembler-ia32.cc", "src/regexp/ia32/regexp-macro-assembler-ia32.h", + "src/wasm/baseline/ia32/liftoff-assembler-ia32-defs.h", + "src/wasm/baseline/ia32/liftoff-assembler-ia32.h", ] } else if (v8_current_cpu == "x64") { sources += [ ### gcmole(arch:x64) ### @@ -2134,13 +2183,14 @@ v8_source_set("v8_base") { "src/regexp/x64/regexp-macro-assembler-x64.cc", "src/regexp/x64/regexp-macro-assembler-x64.h", "src/third_party/valgrind/valgrind.h", + "src/wasm/baseline/x64/liftoff-assembler-x64-defs.h", + "src/wasm/baseline/x64/liftoff-assembler-x64.h", "src/x64/assembler-x64-inl.h", "src/x64/assembler-x64.cc", "src/x64/assembler-x64.h", "src/x64/code-stubs-x64.cc", "src/x64/code-stubs-x64.h", "src/x64/codegen-x64.cc", - "src/x64/codegen-x64.h", "src/x64/cpu-x64.cc", "src/x64/deoptimizer-x64.cc", "src/x64/disasm-x64.cc", @@ -2165,7 +2215,6 @@ v8_source_set("v8_base") { "src/arm/code-stubs-arm.cc", "src/arm/code-stubs-arm.h", "src/arm/codegen-arm.cc", - "src/arm/codegen-arm.h", "src/arm/constants-arm.cc", "src/arm/constants-arm.h", "src/arm/cpu-arm.cc", @@ -2191,6 +2240,8 @@ v8_source_set("v8_base") { "src/ic/arm/handler-compiler-arm.cc", "src/regexp/arm/regexp-macro-assembler-arm.cc", "src/regexp/arm/regexp-macro-assembler-arm.h", + "src/wasm/baseline/arm/liftoff-assembler-arm-defs.h", + "src/wasm/baseline/arm/liftoff-assembler-arm.h", ] } else if (v8_current_cpu == "arm64") { sources += [ ### gcmole(arch:arm64) ### @@ -2200,7 +2251,6 @@ v8_source_set("v8_base") { "src/arm64/code-stubs-arm64.cc", "src/arm64/code-stubs-arm64.h", "src/arm64/codegen-arm64.cc", - "src/arm64/codegen-arm64.h", "src/arm64/constants-arm64.h", "src/arm64/cpu-arm64.cc", "src/arm64/decoder-arm64-inl.h", @@ -2212,6 +2262,7 @@ v8_source_set("v8_base") { "src/arm64/eh-frame-arm64.cc", "src/arm64/frame-constants-arm64.cc", "src/arm64/frame-constants-arm64.h", + "src/arm64/instructions-arm64-constants.cc", "src/arm64/instructions-arm64.cc", "src/arm64/instructions-arm64.h", "src/arm64/instrument-arm64.cc", @@ -2237,7 +2288,16 @@ v8_source_set("v8_base") { "src/ic/arm64/handler-compiler-arm64.cc", "src/regexp/arm64/regexp-macro-assembler-arm64.cc", "src/regexp/arm64/regexp-macro-assembler-arm64.h", - ] + "src/wasm/baseline/arm64/liftoff-assembler-arm64-defs.h", + "src/wasm/baseline/arm64/liftoff-assembler-arm64.h", + ] + if (use_jumbo_build) { + jumbo_excluded_sources += [ + # TODO(mostynb@opera.com): fix this code so it doesn't need + # to be excluded, see the comments inside. + "src/arm64/instructions-arm64-constants.cc", + ] + } } else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") { sources += [ ### gcmole(arch:mipsel) ### "src/compiler/mips/code-generator-mips.cc", @@ -2253,7 +2313,6 @@ v8_source_set("v8_base") { "src/mips/code-stubs-mips.cc", "src/mips/code-stubs-mips.h", "src/mips/codegen-mips.cc", - "src/mips/codegen-mips.h", "src/mips/constants-mips.cc", "src/mips/constants-mips.h", "src/mips/cpu-mips.cc", @@ -2268,6 +2327,8 @@ v8_source_set("v8_base") { "src/mips/simulator-mips.h", "src/regexp/mips/regexp-macro-assembler-mips.cc", "src/regexp/mips/regexp-macro-assembler-mips.h", + "src/wasm/baseline/mips/liftoff-assembler-mips-defs.h", + "src/wasm/baseline/mips/liftoff-assembler-mips.h", ] } else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { sources += [ ### gcmole(arch:mips64el) ### @@ -2284,7 +2345,6 @@ v8_source_set("v8_base") { "src/mips64/code-stubs-mips64.cc", "src/mips64/code-stubs-mips64.h", "src/mips64/codegen-mips64.cc", - "src/mips64/codegen-mips64.h", "src/mips64/constants-mips64.cc", "src/mips64/constants-mips64.h", "src/mips64/cpu-mips64.cc", @@ -2299,6 +2359,8 @@ v8_source_set("v8_base") { "src/mips64/simulator-mips64.h", "src/regexp/mips64/regexp-macro-assembler-mips64.cc", "src/regexp/mips64/regexp-macro-assembler-mips64.h", + "src/wasm/baseline/mips64/liftoff-assembler-mips64-defs.h", + "src/wasm/baseline/mips64/liftoff-assembler-mips64.h", ] } else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") { sources += [ ### gcmole(arch:ppc) ### @@ -2315,7 +2377,6 @@ v8_source_set("v8_base") { "src/ppc/code-stubs-ppc.cc", "src/ppc/code-stubs-ppc.h", "src/ppc/codegen-ppc.cc", - "src/ppc/codegen-ppc.h", "src/ppc/constants-ppc.cc", "src/ppc/constants-ppc.h", "src/ppc/cpu-ppc.cc", @@ -2330,6 +2391,8 @@ v8_source_set("v8_base") { "src/ppc/simulator-ppc.h", "src/regexp/ppc/regexp-macro-assembler-ppc.cc", "src/regexp/ppc/regexp-macro-assembler-ppc.h", + "src/wasm/baseline/ppc/liftoff-assembler-ppc-defs.h", + "src/wasm/baseline/ppc/liftoff-assembler-ppc.h", ] } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { sources += [ ### gcmole(arch:s390) ### @@ -2348,7 +2411,6 @@ v8_source_set("v8_base") { "src/s390/code-stubs-s390.cc", "src/s390/code-stubs-s390.h", "src/s390/codegen-s390.cc", - "src/s390/codegen-s390.h", "src/s390/constants-s390.cc", "src/s390/constants-s390.h", "src/s390/cpu-s390.cc", @@ -2361,6 +2423,8 @@ v8_source_set("v8_base") { "src/s390/macro-assembler-s390.h", "src/s390/simulator-s390.cc", "src/s390/simulator-s390.h", + "src/wasm/baseline/s390/liftoff-assembler-s390-defs.h", + "src/wasm/baseline/s390/liftoff-assembler-s390.h", ] } @@ -2458,6 +2522,7 @@ v8_component("v8_libbase") { "src/base/sys-info.h", "src/base/template-utils.h", "src/base/timezone-cache.h", + "src/base/tsan.h", "src/base/utils/random-number-generator.cc", "src/base/utils/random-number-generator.h", ] @@ -2640,7 +2705,7 @@ if (current_toolchain == v8_snapshot_toolchain) { deps = [ ":v8_base", - ":v8_builtins_setup", + ":v8_init", ":v8_libbase", ":v8_libplatform", ":v8_nosnapshot", @@ -2753,7 +2818,7 @@ if (is_component_build) { ] if (v8_use_snapshot) { - public_deps += [ ":v8_builtins_generators" ] + public_deps += [ ":v8_initializers" ] } configs = [ ":internal_config" ] @@ -2779,7 +2844,7 @@ if (is_component_build) { ] if (v8_use_snapshot) { - public_deps += [ ":v8_builtins_generators" ] + public_deps += [ ":v8_initializers" ] } public_configs = [ ":external_config" ] diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index ffd5fb388df..3d6f1db2275 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,2288 @@ +2017-10-25: Version 6.4.132 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.131 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.130 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.129 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.128 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.127 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.126 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.125 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.124 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.123 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.122 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.121 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.120 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.119 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.118 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.117 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.116 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.115 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.114 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.113 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.112 + + Performance and stability improvements on all platforms. + + +2017-10-25: Version 6.4.111 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.110 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.109 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.108 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.107 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.106 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.105 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.104 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.103 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.102 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.101 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.100 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.99 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.98 + + Performance and stability improvements on all platforms. + + +2017-10-24: Version 6.4.97 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.96 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.95 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.94 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.93 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.92 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.91 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.90 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.89 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.88 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.87 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.86 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.85 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.84 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.83 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.82 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.81 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.80 + + Performance and stability improvements on all platforms. + + +2017-10-23: Version 6.4.79 + + Performance and stability improvements on all platforms. + + +2017-10-22: Version 6.4.78 + + Performance and stability improvements on all platforms. + + +2017-10-21: Version 6.4.77 + + Performance and stability improvements on all platforms. + + +2017-10-21: Version 6.4.76 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.75 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.74 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.73 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.72 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.71 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.70 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.69 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.68 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.67 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.66 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.65 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.64 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.63 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.62 + + Performance and stability improvements on all platforms. + + +2017-10-20: Version 6.4.61 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.60 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.59 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.58 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.57 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.56 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.55 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.54 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.53 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.52 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.51 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.50 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.49 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.48 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.47 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.46 + + Performance and stability improvements on all platforms. + + +2017-10-19: Version 6.4.45 + + Performance and stability improvements on all platforms. + + +2017-10-18: Version 6.4.44 + + Performance and stability improvements on all platforms. + + +2017-10-18: Version 6.4.43 + + Performance and stability improvements on all platforms. + + +2017-10-18: Version 6.4.42 + + Performance and stability improvements on all platforms. + + +2017-10-18: Version 6.4.41 + + Performance and stability improvements on all platforms. + + +2017-10-18: Version 6.4.40 + + Performance and stability improvements on all platforms. + + +2017-10-18: Version 6.4.39 + + Performance and stability improvements on all platforms. + + +2017-10-18: Version 6.4.38 + + Performance and stability improvements on all platforms. + + +2017-10-18: Version 6.4.37 + + Performance and stability improvements on all platforms. + + +2017-10-18: Version 6.4.36 + + Performance and stability improvements on all platforms. + + +2017-10-18: Version 6.4.35 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.34 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.33 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.32 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.31 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.30 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.29 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.28 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.27 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.26 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.25 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.24 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.23 + + Performance and stability improvements on all platforms. + + +2017-10-17: Version 6.4.22 + + Performance and stability improvements on all platforms. + + +2017-10-16: Version 6.4.21 + + Performance and stability improvements on all platforms. + + +2017-10-16: Version 6.4.20 + + Performance and stability improvements on all platforms. + + +2017-10-16: Version 6.4.19 + + Performance and stability improvements on all platforms. + + +2017-10-16: Version 6.4.18 + + Performance and stability improvements on all platforms. + + +2017-10-16: Version 6.4.17 + + Performance and stability improvements on all platforms. + + +2017-10-16: Version 6.4.16 + + Performance and stability improvements on all platforms. + + +2017-10-16: Version 6.4.15 + + Performance and stability improvements on all platforms. + + +2017-10-16: Version 6.4.14 + + Performance and stability improvements on all platforms. + + +2017-10-16: Version 6.4.13 + + Performance and stability improvements on all platforms. + + +2017-10-16: Version 6.4.12 + + Performance and stability improvements on all platforms. + + +2017-10-16: Version 6.4.11 + + Performance and stability improvements on all platforms. + + +2017-10-15: Version 6.4.10 + + Performance and stability improvements on all platforms. + + +2017-10-15: Version 6.4.9 + + Performance and stability improvements on all platforms. + + +2017-10-14: Version 6.4.8 + + Performance and stability improvements on all platforms. + + +2017-10-14: Version 6.4.7 + + Performance and stability improvements on all platforms. + + +2017-10-13: Version 6.4.6 + + Performance and stability improvements on all platforms. + + +2017-10-13: Version 6.4.5 + + Performance and stability improvements on all platforms. + + +2017-10-13: Version 6.4.4 + + Performance and stability improvements on all platforms. + + +2017-10-13: Version 6.4.3 + + Performance and stability improvements on all platforms. + + +2017-10-13: Version 6.4.2 + + Performance and stability improvements on all platforms. + + +2017-10-13: Version 6.4.1 + + Performance and stability improvements on all platforms. + + +2017-10-12: Version 6.3.298 + + Performance and stability improvements on all platforms. + + +2017-10-12: Version 6.3.297 + + Performance and stability improvements on all platforms. + + +2017-10-11: Version 6.3.296 + + Performance and stability improvements on all platforms. + + +2017-10-11: Version 6.3.295 + + Performance and stability improvements on all platforms. + + +2017-10-11: Version 6.3.294 + + Performance and stability improvements on all platforms. + + +2017-10-11: Version 6.3.293 + + Performance and stability improvements on all platforms. + + +2017-10-10: Version 6.3.292 + + Performance and stability improvements on all platforms. + + +2017-10-10: Version 6.3.291 + + Performance and stability improvements on all platforms. + + +2017-10-10: Version 6.3.290 + + Performance and stability improvements on all platforms. + + +2017-10-10: Version 6.3.289 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.288 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.287 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.286 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.285 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.284 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.283 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.282 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.281 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.280 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.279 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.278 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.277 + + Performance and stability improvements on all platforms. + + +2017-10-09: Version 6.3.276 + + Performance and stability improvements on all platforms. + + +2017-10-08: Version 6.3.275 + + Performance and stability improvements on all platforms. + + +2017-10-07: Version 6.3.274 + + Performance and stability improvements on all platforms. + + +2017-10-06: Version 6.3.273 + + Performance and stability improvements on all platforms. + + +2017-10-06: Version 6.3.272 + + Performance and stability improvements on all platforms. + + +2017-10-06: Version 6.3.271 + + Performance and stability improvements on all platforms. + + +2017-10-06: Version 6.3.270 + + Performance and stability improvements on all platforms. + + +2017-10-06: Version 6.3.269 + + Performance and stability improvements on all platforms. + + +2017-10-06: Version 6.3.268 + + Performance and stability improvements on all platforms. + + +2017-10-06: Version 6.3.267 + + Performance and stability improvements on all platforms. + + +2017-10-05: Version 6.3.266 + + Performance and stability improvements on all platforms. + + +2017-10-05: Version 6.3.265 + + Performance and stability improvements on all platforms. + + +2017-10-05: Version 6.3.264 + + Performance and stability improvements on all platforms. + + +2017-10-05: Version 6.3.263 + + Performance and stability improvements on all platforms. + + +2017-10-05: Version 6.3.262 + + Performance and stability improvements on all platforms. + + +2017-10-05: Version 6.3.261 + + Performance and stability improvements on all platforms. + + +2017-10-05: Version 6.3.260 + + Performance and stability improvements on all platforms. + + +2017-10-05: Version 6.3.259 + + Performance and stability improvements on all platforms. + + +2017-10-05: Version 6.3.258 + + Performance and stability improvements on all platforms. + + +2017-10-04: Version 6.3.257 + + Performance and stability improvements on all platforms. + + +2017-10-04: Version 6.3.256 + + Performance and stability improvements on all platforms. + + +2017-10-04: Version 6.3.255 + + Performance and stability improvements on all platforms. + + +2017-10-04: Version 6.3.254 + + Performance and stability improvements on all platforms. + + +2017-10-04: Version 6.3.253 + + Performance and stability improvements on all platforms. + + +2017-10-03: Version 6.3.252 + + Performance and stability improvements on all platforms. + + +2017-10-03: Version 6.3.251 + + Performance and stability improvements on all platforms. + + +2017-10-03: Version 6.3.250 + + Performance and stability improvements on all platforms. + + +2017-10-02: Version 6.3.249 + + Performance and stability improvements on all platforms. + + +2017-10-02: Version 6.3.248 + + Performance and stability improvements on all platforms. + + +2017-10-02: Version 6.3.247 + + Performance and stability improvements on all platforms. + + +2017-10-02: Version 6.3.246 + + Performance and stability improvements on all platforms. + + +2017-10-02: Version 6.3.245 + + Performance and stability improvements on all platforms. + + +2017-10-02: Version 6.3.244 + + Performance and stability improvements on all platforms. + + +2017-10-02: Version 6.3.243 + + Performance and stability improvements on all platforms. + + +2017-10-02: Version 6.3.242 + + Performance and stability improvements on all platforms. + + +2017-10-02: Version 6.3.241 + + Performance and stability improvements on all platforms. + + +2017-10-01: Version 6.3.240 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.239 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.238 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.237 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.236 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.235 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.234 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.233 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.232 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.231 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.230 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.229 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.228 + + Performance and stability improvements on all platforms. + + +2017-09-29: Version 6.3.227 + + Performance and stability improvements on all platforms. + + +2017-09-28: Version 6.3.226 + + Performance and stability improvements on all platforms. + + +2017-09-28: Version 6.3.225 + + Performance and stability improvements on all platforms. + + +2017-09-28: Version 6.3.224 + + Performance and stability improvements on all platforms. + + +2017-09-28: Version 6.3.223 + + Performance and stability improvements on all platforms. + + +2017-09-28: Version 6.3.222 + + Performance and stability improvements on all platforms. + + +2017-09-27: Version 6.3.221 + + Performance and stability improvements on all platforms. + + +2017-09-27: Version 6.3.220 + + Performance and stability improvements on all platforms. + + +2017-09-27: Version 6.3.219 + + Performance and stability improvements on all platforms. + + +2017-09-27: Version 6.3.218 + + Performance and stability improvements on all platforms. + + +2017-09-27: Version 6.3.217 + + Performance and stability improvements on all platforms. + + +2017-09-26: Version 6.3.216 + + Performance and stability improvements on all platforms. + + +2017-09-26: Version 6.3.215 + + Performance and stability improvements on all platforms. + + +2017-09-26: Version 6.3.214 + + Performance and stability improvements on all platforms. + + +2017-09-26: Version 6.3.213 + + Performance and stability improvements on all platforms. + + +2017-09-25: Version 6.3.212 + + Performance and stability improvements on all platforms. + + +2017-09-25: Version 6.3.211 + + Performance and stability improvements on all platforms. + + +2017-09-25: Version 6.3.210 + + Performance and stability improvements on all platforms. + + +2017-09-25: Version 6.3.209 + + Performance and stability improvements on all platforms. + + +2017-09-25: Version 6.3.208 + + Performance and stability improvements on all platforms. + + +2017-09-25: Version 6.3.207 + + Performance and stability improvements on all platforms. + + +2017-09-25: Version 6.3.206 + + Performance and stability improvements on all platforms. + + +2017-09-25: Version 6.3.205 + + Performance and stability improvements on all platforms. + + +2017-09-25: Version 6.3.204 + + Performance and stability improvements on all platforms. + + +2017-09-25: Version 6.3.203 + + Performance and stability improvements on all platforms. + + +2017-09-25: Version 6.3.202 + + Performance and stability improvements on all platforms. + + +2017-09-25: Version 6.3.201 + + Performance and stability improvements on all platforms. + + +2017-09-24: Version 6.3.200 + + Performance and stability improvements on all platforms. + + +2017-09-24: Version 6.3.199 + + Performance and stability improvements on all platforms. + + +2017-09-22: Version 6.3.198 + + Performance and stability improvements on all platforms. + + +2017-09-22: Version 6.3.197 + + Performance and stability improvements on all platforms. + + +2017-09-21: Version 6.3.196 + + Performance and stability improvements on all platforms. + + +2017-09-21: Version 6.3.195 + + Performance and stability improvements on all platforms. + + +2017-09-21: Version 6.3.194 + + Performance and stability improvements on all platforms. + + +2017-09-21: Version 6.3.193 + + Performance and stability improvements on all platforms. + + +2017-09-21: Version 6.3.192 + + Performance and stability improvements on all platforms. + + +2017-09-21: Version 6.3.191 + + Performance and stability improvements on all platforms. + + +2017-09-21: Version 6.3.190 + + Performance and stability improvements on all platforms. + + +2017-09-21: Version 6.3.189 + + Performance and stability improvements on all platforms. + + +2017-09-21: Version 6.3.188 + + Performance and stability improvements on all platforms. + + +2017-09-21: Version 6.3.187 + + Performance and stability improvements on all platforms. + + +2017-09-21: Version 6.3.186 + + Performance and stability improvements on all platforms. + + +2017-09-21: Version 6.3.185 + + Performance and stability improvements on all platforms. + + +2017-09-20: Version 6.3.184 + + Performance and stability improvements on all platforms. + + +2017-09-20: Version 6.3.183 + + Performance and stability improvements on all platforms. + + +2017-09-20: Version 6.3.182 + + Performance and stability improvements on all platforms. + + +2017-09-19: Version 6.3.181 + + Performance and stability improvements on all platforms. + + +2017-09-19: Version 6.3.180 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.179 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.178 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.177 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.176 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.175 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.174 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.173 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.172 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.171 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.170 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.169 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.168 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.167 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.166 + + Performance and stability improvements on all platforms. + + +2017-09-18: Version 6.3.165 + + Performance and stability improvements on all platforms. + + +2017-09-17: Version 6.3.164 + + Performance and stability improvements on all platforms. + + +2017-09-16: Version 6.3.163 + + Performance and stability improvements on all platforms. + + +2017-09-15: Version 6.3.162 + + Performance and stability improvements on all platforms. + + +2017-09-15: Version 6.3.161 + + Performance and stability improvements on all platforms. + + +2017-09-15: Version 6.3.160 + + Performance and stability improvements on all platforms. + + +2017-09-15: Version 6.3.159 + + Performance and stability improvements on all platforms. + + +2017-09-15: Version 6.3.158 + + Performance and stability improvements on all platforms. + + +2017-09-15: Version 6.3.157 + + Performance and stability improvements on all platforms. + + +2017-09-15: Version 6.3.156 + + Performance and stability improvements on all platforms. + + +2017-09-15: Version 6.3.155 + + Performance and stability improvements on all platforms. + + +2017-09-15: Version 6.3.154 + + Performance and stability improvements on all platforms. + + +2017-09-15: Version 6.3.153 + + Performance and stability improvements on all platforms. + + +2017-09-15: Version 6.3.152 + + Performance and stability improvements on all platforms. + + +2017-09-15: Version 6.3.151 + + Performance and stability improvements on all platforms. + + +2017-09-14: Version 6.3.150 + + Performance and stability improvements on all platforms. + + +2017-09-14: Version 6.3.149 + + Performance and stability improvements on all platforms. + + +2017-09-14: Version 6.3.148 + + Performance and stability improvements on all platforms. + + +2017-09-14: Version 6.3.147 + + Performance and stability improvements on all platforms. + + +2017-09-14: Version 6.3.146 + + Performance and stability improvements on all platforms. + + +2017-09-14: Version 6.3.145 + + Performance and stability improvements on all platforms. + + +2017-09-14: Version 6.3.144 + + Performance and stability improvements on all platforms. + + +2017-09-14: Version 6.3.143 + + Performance and stability improvements on all platforms. + + +2017-09-14: Version 6.3.142 + + Performance and stability improvements on all platforms. + + +2017-09-14: Version 6.3.141 + + Performance and stability improvements on all platforms. + + +2017-09-14: Version 6.3.140 + + Performance and stability improvements on all platforms. + + +2017-09-14: Version 6.3.139 + + Performance and stability improvements on all platforms. + + +2017-09-13: Version 6.3.138 + + Performance and stability improvements on all platforms. + + +2017-09-13: Version 6.3.137 + + Performance and stability improvements on all platforms. + + +2017-09-13: Version 6.3.136 + + Performance and stability improvements on all platforms. + + +2017-09-13: Version 6.3.135 + + Performance and stability improvements on all platforms. + + +2017-09-13: Version 6.3.134 + + Performance and stability improvements on all platforms. + + +2017-09-13: Version 6.3.133 + + Performance and stability improvements on all platforms. + + +2017-09-13: Version 6.3.132 + + Performance and stability improvements on all platforms. + + +2017-09-13: Version 6.3.131 + + Performance and stability improvements on all platforms. + + +2017-09-13: Version 6.3.130 + + Performance and stability improvements on all platforms. + + +2017-09-13: Version 6.3.129 + + Performance and stability improvements on all platforms. + + +2017-09-13: Version 6.3.128 + + Performance and stability improvements on all platforms. + + +2017-09-13: Version 6.3.127 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.126 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.125 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.124 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.123 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.122 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.121 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.120 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.119 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.118 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.117 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.116 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.115 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.114 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.113 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.112 + + Performance and stability improvements on all platforms. + + +2017-09-12: Version 6.3.111 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.110 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.109 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.108 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.107 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.106 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.105 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.104 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.103 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.102 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.101 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.100 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.99 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.98 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.97 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.96 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.95 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.94 + + Performance and stability improvements on all platforms. + + +2017-09-11: Version 6.3.93 + + Performance and stability improvements on all platforms. + + +2017-09-10: Version 6.3.92 + + Performance and stability improvements on all platforms. + + +2017-09-09: Version 6.3.91 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.90 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.89 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.88 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.87 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.86 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.85 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.84 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.83 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.82 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.81 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.80 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.79 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.78 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.77 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.76 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.75 + + Performance and stability improvements on all platforms. + + +2017-09-08: Version 6.3.74 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.73 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.72 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.71 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.70 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.69 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.68 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.67 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.66 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.65 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.64 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.63 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.62 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.61 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.60 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.59 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.58 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.57 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.56 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.55 + + Performance and stability improvements on all platforms. + + +2017-09-07: Version 6.3.54 + + Performance and stability improvements on all platforms. + + +2017-09-06: Version 6.3.53 + + Performance and stability improvements on all platforms. + + +2017-09-06: Version 6.3.52 + + Performance and stability improvements on all platforms. + + +2017-09-06: Version 6.3.51 + + Performance and stability improvements on all platforms. + + +2017-09-06: Version 6.3.50 + + Performance and stability improvements on all platforms. + + +2017-09-06: Version 6.3.49 + + Performance and stability improvements on all platforms. + + +2017-09-06: Version 6.3.48 + + Performance and stability improvements on all platforms. + + +2017-09-06: Version 6.3.47 + + Performance and stability improvements on all platforms. + + +2017-09-06: Version 6.3.46 + + Performance and stability improvements on all platforms. + + +2017-09-06: Version 6.3.45 + + Performance and stability improvements on all platforms. + + +2017-09-06: Version 6.3.44 + + Performance and stability improvements on all platforms. + + +2017-09-06: Version 6.3.43 + + Performance and stability improvements on all platforms. + + +2017-09-06: Version 6.3.42 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.41 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.40 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.39 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.38 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.37 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.36 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.35 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.34 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.33 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.32 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.31 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.30 + + Performance and stability improvements on all platforms. + + +2017-09-05: Version 6.3.29 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.28 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.27 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.26 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.25 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.24 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.23 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.22 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.21 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.20 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.19 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.18 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.17 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.16 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.15 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.14 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.13 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.12 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.11 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.10 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.9 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.8 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.7 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.6 + + Performance and stability improvements on all platforms. + + +2017-09-04: Version 6.3.5 + + Performance and stability improvements on all platforms. + + +2017-09-03: Version 6.3.4 + + Performance and stability improvements on all platforms. + + +2017-09-03: Version 6.3.3 + + Performance and stability improvements on all platforms. + + +2017-09-01: Version 6.3.2 + + Performance and stability improvements on all platforms. + + +2017-09-01: Version 6.3.1 + + Performance and stability improvements on all platforms. + + +2017-08-31: Version 6.2.441 + + Performance and stability improvements on all platforms. + + +2017-08-31: Version 6.2.440 + + Performance and stability improvements on all platforms. + + +2017-08-31: Version 6.2.439 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.438 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.437 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.436 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.435 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.434 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.433 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.432 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.431 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.430 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.429 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.428 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.427 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.426 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.425 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.424 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.423 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.422 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.421 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.420 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.419 + + Performance and stability improvements on all platforms. + + +2017-08-30: Version 6.2.418 + + Performance and stability improvements on all platforms. + + +2017-08-29: Version 6.2.417 + + Performance and stability improvements on all platforms. + + +2017-08-29: Version 6.2.416 + + Performance and stability improvements on all platforms. + + +2017-08-29: Version 6.2.415 + + Performance and stability improvements on all platforms. + + 2017-08-29: Version 6.2.414 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index ee8526106aa..dac7ccac2cc 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -3,72 +3,78 @@ # all paths in here must match this assumption. vars = { - "chromium_url": "https://chromium.googlesource.com", + 'checkout_instrumented_libraries': False, + 'chromium_url': 'https://chromium.googlesource.com', } deps = { - "v8/build": - Var("chromium_url") + "/chromium/src/build.git" + "@" + "48a2b7b39debc7c77c868c9ddb0a360af1ebc367", - "v8/tools/gyp": - Var("chromium_url") + "/external/gyp.git" + "@" + "d61a9397e668fa9843c4aa7da9e79460fe590bfb", - "v8/third_party/icu": - Var("chromium_url") + "/chromium/deps/icu.git" + "@" + "08cb956852a5ccdba7f9c941728bb833529ba3c6", - "v8/third_party/instrumented_libraries": - Var("chromium_url") + "/chromium/src/third_party/instrumented_libraries.git" + "@" + "644afd349826cb68204226a16c38bde13abe9c3c", - "v8/buildtools": - Var("chromium_url") + "/chromium/buildtools.git" + "@" + "5af0a3a8b89827a8634132080a39ab4b63dee489", - "v8/base/trace_event/common": - Var("chromium_url") + "/chromium/src/base/trace_event/common.git" + "@" + "65d1d42a5df6c0a563a6fdfa58a135679185e5d9", - "v8/third_party/jinja2": - Var("chromium_url") + "/chromium/src/third_party/jinja2.git" + "@" + "d34383206fa42d52faa10bb9931d6d538f3a57e0", - "v8/third_party/markupsafe": - Var("chromium_url") + "/chromium/src/third_party/markupsafe.git" + "@" + "8f45f5cfa0009d2a70589bcda0349b8cb2b72783", - "v8/tools/swarming_client": - Var('chromium_url') + '/external/swarming.client.git' + '@' + "42721e128da760b345ab60d7cf34e300269112d7", - "v8/testing/gtest": - Var("chromium_url") + "/external/github.com/google/googletest.git" + "@" + "6f8a66431cb592dad629028a50b3dd418a408c87", - "v8/testing/gmock": - Var("chromium_url") + "/external/googlemock.git" + "@" + "0421b6f358139f02e102c9c332ce19a33faf75be", - "v8/test/benchmarks/data": - Var("chromium_url") + "/v8/deps/third_party/benchmarks.git" + "@" + "05d7188267b4560491ff9155c5ee13e207ecd65f", - "v8/test/mozilla/data": - Var("chromium_url") + "/v8/deps/third_party/mozilla-tests.git" + "@" + "f6c578a10ea707b1a8ab0b88943fe5115ce2b9be", - "v8/test/test262/data": - Var("chromium_url") + "/external/github.com/tc39/test262.git" + "@" + "1b911a8f8abf4cb63882cfbe72dcd4c82bb8ad91", - "v8/test/test262/harness": - Var("chromium_url") + "/external/github.com/test262-utils/test262-harness-py.git" + "@" + "0f2acdd882c84cff43b9d60df7574a1901e2cdcd", - "v8/tools/clang": - Var("chromium_url") + "/chromium/src/tools/clang.git" + "@" + "40f69660bf3cd407e72b8ae240fdd6c513dddbfe", - "v8/test/wasm-js": - Var("chromium_url") + "/external/github.com/WebAssembly/spec.git" + "@" + "17b4a4d98c80b1ec736649d5a73496a0e6d12d4c", -} - -deps_os = { - "android": { - "v8/third_party/android_tools": - Var("chromium_url") + "/android_tools.git" + "@" + "e9d4018e149d50172ed462a7c21137aa915940ec", - "v8/third_party/catapult": - Var('chromium_url') + "/external/github.com/catapult-project/catapult.git" + "@" + "7149cbfdfd26a5dd8e5d96cbb1da9356e2813a5d", + 'v8/build': + Var('chromium_url') + '/chromium/src/build.git' + '@' + '2647b49d4852b789d7061ffe8155ff989f3c26be', + 'v8/tools/gyp': + Var('chromium_url') + '/external/gyp.git' + '@' + 'd61a9397e668fa9843c4aa7da9e79460fe590bfb', + 'v8/third_party/icu': + Var('chromium_url') + '/chromium/deps/icu.git' + '@' + '21d33b1a09a77f033478ea4ffffb61e6970f83bd', + 'v8/third_party/instrumented_libraries': + Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + 'e07d437dc8b65ca96ebd3b7d4aa303cd2ec0ec45', + 'v8/buildtools': + Var('chromium_url') + '/chromium/buildtools.git' + '@' + 'e043d81e9185a2445fa3ec3fc34a4f69b58d4969', + 'v8/base/trace_event/common': + Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + '0e9a47d74970bee1bbfc063c47215406f8918699', + 'v8/third_party/android_tools': { + 'url': Var('chromium_url') + '/android_tools.git' + '@' + '110e5f6c0dcb6f7d586ac0c00f10bc7d1d410088', + 'condition': 'checkout_android', + }, + 'v8/third_party/catapult': { + 'url': Var('chromium_url') + '/catapult.git' + '@' + 'e2235db8b724540e50d02b66340980575543908a', + 'condition': 'checkout_android', }, + 'v8/third_party/colorama/src': { + 'url': Var('chromium_url') + '/external/colorama.git' + '@' + '799604a1041e9b3bc5d2789ecbd7e8db2e18e6b8', + 'condition': 'checkout_android', + }, + 'v8/third_party/jinja2': + Var('chromium_url') + '/chromium/src/third_party/jinja2.git' + '@' + 'd34383206fa42d52faa10bb9931d6d538f3a57e0', + 'v8/third_party/markupsafe': + Var('chromium_url') + '/chromium/src/third_party/markupsafe.git' + '@' + '8f45f5cfa0009d2a70589bcda0349b8cb2b72783', + 'v8/tools/swarming_client': + Var('chromium_url') + '/infra/luci/client-py.git' + '@' + '5e8001d9a710121ce7a68efd0804430a34b4f9e4', + 'v8/testing/gtest': + Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '6f8a66431cb592dad629028a50b3dd418a408c87', + 'v8/testing/gmock': + Var('chromium_url') + '/external/googlemock.git' + '@' + '0421b6f358139f02e102c9c332ce19a33faf75be', + 'v8/test/benchmarks/data': + Var('chromium_url') + '/v8/deps/third_party/benchmarks.git' + '@' + '05d7188267b4560491ff9155c5ee13e207ecd65f', + 'v8/test/mozilla/data': + Var('chromium_url') + '/v8/deps/third_party/mozilla-tests.git' + '@' + 'f6c578a10ea707b1a8ab0b88943fe5115ce2b9be', + 'v8/test/test262/data': + Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + '5d4c667b271a9b39d0de73aef5ffe6879c6f8811', + 'v8/test/test262/harness': + Var('chromium_url') + '/external/github.com/test262-utils/test262-harness-py.git' + '@' + '0f2acdd882c84cff43b9d60df7574a1901e2cdcd', + 'v8/tools/clang': + Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + 'fb9e0ad950cdd966145a35153b3bc00377860577', + 'v8/tools/luci-go': + Var('chromium_url') + '/chromium/src/tools/luci-go.git' + '@' + '45a8a51fda92e123619a69e7644d9c64a320b0c1', + 'v8/test/wasm-js': + Var('chromium_url') + '/external/github.com/WebAssembly/spec.git' + '@' + '9efed9e4df5a226d57fd86afd88e13c6e46daced', } recursedeps = [ - "v8/buildtools", - "v8/third_party/android_tools", + 'v8/buildtools', + 'v8/third_party/android_tools', ] include_rules = [ # Everybody can use some things. - "+include", - "+unicode", - "+third_party/fdlibm", + '+include', + '+unicode', + '+third_party/fdlibm', ] # checkdeps.py shouldn't check for includes in these directories: skip_child_includes = [ - "build", - "gypfiles", - "third_party", + 'build', + 'gypfiles', + 'third_party', ] hooks = [ @@ -85,41 +91,45 @@ hooks = [ }, # Pull clang-format binaries using checked-in hashes. { - "name": "clang_format_win", - "pattern": ".", - "action": [ "download_from_google_storage", - "--no_resume", - "--platform=win32", - "--no_auth", - "--bucket", "chromium-clang-format", - "-s", "v8/buildtools/win/clang-format.exe.sha1", + 'name': 'clang_format_win', + 'pattern': '.', + 'condition': 'host_os == "win"', + 'action': [ 'download_from_google_storage', + '--no_resume', + '--platform=win32', + '--no_auth', + '--bucket', 'chromium-clang-format', + '-s', 'v8/buildtools/win/clang-format.exe.sha1', ], }, { - "name": "clang_format_mac", - "pattern": ".", - "action": [ "download_from_google_storage", - "--no_resume", - "--platform=darwin", - "--no_auth", - "--bucket", "chromium-clang-format", - "-s", "v8/buildtools/mac/clang-format.sha1", + 'name': 'clang_format_mac', + 'pattern': '.', + 'condition': 'host_os == "mac"', + 'action': [ 'download_from_google_storage', + '--no_resume', + '--platform=darwin', + '--no_auth', + '--bucket', 'chromium-clang-format', + '-s', 'v8/buildtools/mac/clang-format.sha1', ], }, { - "name": "clang_format_linux", - "pattern": ".", - "action": [ "download_from_google_storage", - "--no_resume", - "--platform=linux*", - "--no_auth", - "--bucket", "chromium-clang-format", - "-s", "v8/buildtools/linux64/clang-format.sha1", + 'name': 'clang_format_linux', + 'pattern': '.', + 'condition': 'host_os == "linux"', + 'action': [ 'download_from_google_storage', + '--no_resume', + '--platform=linux*', + '--no_auth', + '--bucket', 'chromium-clang-format', + '-s', 'v8/buildtools/linux64/clang-format.sha1', ], }, { 'name': 'gcmole', 'pattern': '.', + # TODO(machenbach): Insert condition and remove GYP_DEFINES dependency. 'action': [ 'python', 'v8/tools/gcmole/download_gcmole_tools.py', @@ -128,6 +138,7 @@ hooks = [ { 'name': 'jsfunfuzz', 'pattern': '.', + # TODO(machenbach): Insert condition and remove GYP_DEFINES dependency. 'action': [ 'python', 'v8/tools/jsfunfuzz/download_jsfunfuzz.py', @@ -137,6 +148,7 @@ hooks = [ { 'name': 'luci-go_win', 'pattern': '.', + 'condition': 'host_os == "win"', 'action': [ 'download_from_google_storage', '--no_resume', '--platform=win32', @@ -148,6 +160,7 @@ hooks = [ { 'name': 'luci-go_mac', 'pattern': '.', + 'condition': 'host_os == "mac"', 'action': [ 'download_from_google_storage', '--no_resume', '--platform=darwin', @@ -159,6 +172,7 @@ hooks = [ { 'name': 'luci-go_linux', 'pattern': '.', + 'condition': 'host_os == "linux"', 'action': [ 'download_from_google_storage', '--no_resume', '--platform=linux*', @@ -169,58 +183,61 @@ hooks = [ }, # Pull GN using checked-in hashes. { - "name": "gn_win", - "pattern": ".", - "action": [ "download_from_google_storage", - "--no_resume", - "--platform=win32", - "--no_auth", - "--bucket", "chromium-gn", - "-s", "v8/buildtools/win/gn.exe.sha1", + 'name': 'gn_win', + 'pattern': '.', + 'condition': 'host_os == "win"', + 'action': [ 'download_from_google_storage', + '--no_resume', + '--platform=win32', + '--no_auth', + '--bucket', 'chromium-gn', + '-s', 'v8/buildtools/win/gn.exe.sha1', ], }, { - "name": "gn_mac", - "pattern": ".", - "action": [ "download_from_google_storage", - "--no_resume", - "--platform=darwin", - "--no_auth", - "--bucket", "chromium-gn", - "-s", "v8/buildtools/mac/gn.sha1", + 'name': 'gn_mac', + 'pattern': '.', + 'condition': 'host_os == "mac"', + 'action': [ 'download_from_google_storage', + '--no_resume', + '--platform=darwin', + '--no_auth', + '--bucket', 'chromium-gn', + '-s', 'v8/buildtools/mac/gn.sha1', ], }, { - "name": "gn_linux", - "pattern": ".", - "action": [ "download_from_google_storage", - "--no_resume", - "--platform=linux*", - "--no_auth", - "--bucket", "chromium-gn", - "-s", "v8/buildtools/linux64/gn.sha1", + 'name': 'gn_linux', + 'pattern': '.', + 'condition': 'host_os == "linux"', + 'action': [ 'download_from_google_storage', + '--no_resume', + '--platform=linux*', + '--no_auth', + '--bucket', 'chromium-gn', + '-s', 'v8/buildtools/linux64/gn.sha1', ], }, { - "name": "wasm_spec_tests", - "pattern": ".", - "action": [ "download_from_google_storage", - "--no_resume", - "--no_auth", - "-u", - "--bucket", "v8-wasm-spec-tests", - "-s", "v8/test/wasm-spec-tests/tests.tar.gz.sha1", + 'name': 'wasm_spec_tests', + 'pattern': '.', + 'action': [ 'download_from_google_storage', + '--no_resume', + '--no_auth', + '-u', + '--bucket', 'v8-wasm-spec-tests', + '-s', 'v8/test/wasm-spec-tests/tests.tar.gz.sha1', ], }, { - "name": "closure_compiler", - "pattern": ".", - "action": [ "download_from_google_storage", - "--no_resume", - "--no_auth", - "-u", - "--bucket", "chromium-v8-closure-compiler", - "-s", "v8/src/inspector/build/closure-compiler.tar.gz.sha1", + 'name': 'closure_compiler', + 'pattern': '.', + 'action': [ 'download_from_google_storage', + '--no_resume', + '--no_auth', + '-u', + '--bucket', 'chromium-v8-closure-compiler', + '-s', 'v8/src/inspector/build/closure-compiler.tar.gz.sha1', ], }, { @@ -236,19 +253,32 @@ hooks = [ ], }, { - # Pull sanitizer-instrumented third-party libraries if requested via - # GYP_DEFINES. - 'name': 'instrumented_libraries', - 'pattern': '\\.sha1', - 'action': [ - 'python', - 'v8/third_party/instrumented_libraries/scripts/download_binaries.py', - ], + 'name': 'msan_chained_origins', + 'pattern': '.', + 'condition': 'checkout_instrumented_libraries', + 'action': [ 'download_from_google_storage', + '--no_resume', + '--no_auth', + '--bucket', 'chromium-instrumented-libraries', + '-s', 'v8/third_party/instrumented_libraries/binaries/msan-chained-origins-trusty.tgz.sha1', + ], + }, + { + 'name': 'msan_no_origins', + 'pattern': '.', + 'condition': 'checkout_instrumented_libraries', + 'action': [ 'download_from_google_storage', + '--no_resume', + '--no_auth', + '--bucket', 'chromium-instrumented-libraries', + '-s', 'v8/third_party/instrumented_libraries/binaries/msan-no-origins-trusty.tgz.sha1', + ], }, { # Update the Windows toolchain if necessary. 'name': 'win_toolchain', 'pattern': '.', + 'condition': 'checkout_win', 'action': ['python', 'v8/build/vs_toolchain.py', 'update'], }, # Pull binutils for linux, enabled debug fission for faster linking / @@ -257,21 +287,42 @@ hooks = [ { 'name': 'binutils', 'pattern': 'v8/third_party/binutils', + 'condition': 'host_os == "linux"', 'action': [ 'python', 'v8/third_party/binutils/download.py', ], }, { - # Pull clang if needed or requested via GYP_DEFINES. # Note: On Win, this should run after win_toolchain, as it may use it. 'name': 'clang', 'pattern': '.', - 'action': ['python', 'v8/tools/clang/scripts/update.py', '--if-needed'], + 'action': ['python', 'v8/tools/clang/scripts/update.py'], + }, + { + 'name': 'fuchsia_sdk', + 'pattern': '.', + 'condition': 'checkout_fuchsia', + 'action': [ + 'python', + 'v8/build/fuchsia/update_sdk.py', + '226f6dd0cad1d6be63a353ce2649423470729ae9', + ], }, { # A change to a .gyp, .gypi, or to GYP itself should run the generator. - "pattern": ".", - "action": ["python", "v8/gypfiles/gyp_v8", "--running-as-hook"], + 'name': 'regyp_if_needed', + 'pattern': '.', + 'action': ['python', 'v8/gypfiles/gyp_v8', '--running-as-hook'], + }, + # Download and initialize "vpython" VirtualEnv environment packages. + { + 'name': 'vpython_common', + 'pattern': '.', + 'condition': 'checkout_android', + 'action': [ 'vpython', + '-vpython-spec', 'v8/.vpython', + '-vpython-tool', 'install', + ], }, ] diff --git a/deps/v8/Makefile b/deps/v8/Makefile index eb146ac2447..167ebf8c082 100644 --- a/deps/v8/Makefile +++ b/deps/v8/Makefile @@ -338,32 +338,32 @@ $(ANDROID_BUILDS): $(GYPFILES) $(ENVFILE) Makefile.android # Test targets. check: all - @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ + @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ --arch=$(shell echo $(DEFAULT_ARCHES) | sed -e 's/ /,/g') \ $(TESTFLAGS) $(addsuffix .check,$(MODES)): $$(basename $$@) - @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ + @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ --mode=$(basename $@) $(TESTFLAGS) $(addsuffix .check,$(ARCHES)): $$(basename $$@) - @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ + @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ --arch=$(basename $@) $(TESTFLAGS) $(CHECKS): $$(basename $$@) - @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ + @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ --arch-and-mode=$(basename $@) $(TESTFLAGS) $(addsuffix .quickcheck,$(MODES)): $$(basename $$@) - @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ + @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ --mode=$(basename $@) $(TESTFLAGS) --quickcheck $(addsuffix .quickcheck,$(ARCHES)): $$(basename $$@) - @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ + @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ --arch=$(basename $@) $(TESTFLAGS) --quickcheck $(QUICKCHECKS): $$(basename $$@) - @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ + @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ --arch-and-mode=$(basename $@) $(TESTFLAGS) --quickcheck $(addsuffix .sync, $(ANDROID_BUILDS)): $$(basename $$@) @@ -371,7 +371,7 @@ $(addsuffix .sync, $(ANDROID_BUILDS)): $$(basename $$@) $(shell pwd) $(ANDROID_V8) $(addsuffix .check, $(ANDROID_BUILDS)): $$(basename $$@).sync - @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ + @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ --arch-and-mode=$(basename $@) \ --timeout=600 \ --command-prefix="tools/android-run.py" $(TESTFLAGS) @@ -380,7 +380,7 @@ $(addsuffix .check, $(ANDROID_ARCHES)): \ $(addprefix $$(basename $$@).,$(MODES)).check native.check: native - @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR)/native \ + @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR)/native \ --arch-and-mode=. $(TESTFLAGS) SUPERFASTTESTMODES = ia32.release @@ -391,18 +391,18 @@ COMMA = , EMPTY = SPACE = $(EMPTY) $(EMPTY) quickcheck: $(subst $(COMMA),$(SPACE),$(FASTCOMPILEMODES)) - tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ + gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ --arch-and-mode=$(SUPERFASTTESTMODES) $(TESTFLAGS) --quickcheck \ --download-data mozilla webkit - tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ + gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ --arch-and-mode=$(FASTTESTMODES) $(TESTFLAGS) --quickcheck qc: quickcheck turbocheck: $(subst $(COMMA),$(SPACE),$(FASTCOMPILEMODES)) - tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ + gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ --arch-and-mode=$(SUPERFASTTESTMODES) $(TESTFLAGS) \ --quickcheck --variants=turbofan --download-data mozilla webkit - tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ + gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \ --arch-and-mode=$(FASTTESTMODES) $(TESTFLAGS) \ --quickcheck --variants=turbofan tc: turbocheck diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index 2d79ae682ce..1ef291f6fa6 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -153,16 +153,17 @@ def _CheckUnwantedDependencies(input_api, output_api): return results +# TODO(mstarzinger): Similar checking should be made available as part of +# tools/presubmit.py (note that tools/check-inline-includes.sh exists). def _CheckNoInlineHeaderIncludesInNormalHeaders(input_api, output_api): """Attempts to prevent inclusion of inline headers into normal header files. This tries to establish a layering where inline headers can be included by other inline headers or compilation units only.""" file_inclusion_pattern = r'(?!.+-inl\.h).+\.h' include_directive_pattern = input_api.re.compile(r'#include ".+-inl.h"') - include_warning = ( - 'You might be including an inline header (e.g. foo-inl.h) within a\n' - 'normal header (e.g. bar.h) file. Can you avoid introducing the\n' - '#include? The commit queue will not block on this warning.') + include_error = ( + 'You are including an inline header (e.g. foo-inl.h) within a normal\n' + 'header (e.g. bar.h) file. This violates layering of dependencies.') def FilterFile(affected_file): black_list = (_EXCLUDED_PATHS + @@ -181,7 +182,7 @@ def FilterFile(affected_file): '%s:%d\n %s' % (local_path, line_number, line.strip())) if problems: - return [output_api.PresubmitPromptOrNotify(include_warning, problems)] + return [output_api.PresubmitError(include_error, problems)] else: return [] @@ -279,6 +280,7 @@ def _CommonChecks(input_api, output_api): _CheckNoInlineHeaderIncludesInNormalHeaders(input_api, output_api)) results.extend(_CheckMissingFiles(input_api, output_api)) results.extend(_CheckJSONFiles(input_api, output_api)) + results.extend(_CheckMacroUndefs(input_api, output_api)) return results @@ -337,6 +339,66 @@ def FilterFile(affected_file): return [output_api.PresubmitError(r) for r in results] +def _CheckMacroUndefs(input_api, output_api): + """ + Checks that each #define in a .cc file is eventually followed by an #undef. + + TODO(clemensh): This check should eventually be enabled for all cc files via + tools/presubmit.py (https://crbug.com/v8/6811). + """ + def FilterFile(affected_file): + # Skip header files, as they often define type lists which are used in + # other files. + white_list = (r'.+\.cc',r'.+\.cpp',r'.+\.c') + return input_api.FilterSourceFile(affected_file, white_list=white_list) + + def TouchesMacros(f): + for line in f.GenerateScmDiff().splitlines(): + if not line.startswith('+') and not line.startswith('-'): + continue + if define_pattern.match(line[1:]) or undef_pattern.match(line[1:]): + return True + return False + + define_pattern = input_api.re.compile(r'#define (\w+)') + undef_pattern = input_api.re.compile(r'#undef (\w+)') + errors = [] + for f in input_api.AffectedFiles( + file_filter=FilterFile, include_deletes=False): + if not TouchesMacros(f): + continue + + defined_macros = dict() + with open(f.LocalPath()) as fh: + line_nr = 0 + for line in fh: + line_nr += 1 + + define_match = define_pattern.match(line) + if define_match: + name = define_match.group(1) + defined_macros[name] = line_nr + + undef_match = undef_pattern.match(line) + if undef_match: + name = undef_match.group(1) + if not name in defined_macros: + errors.append('{}:{}: Macro named \'{}\' was not defined before.' + .format(f.LocalPath(), line_nr, name)) + else: + del defined_macros[name] + for name, line_nr in sorted(defined_macros.items(), key=lambda e: e[1]): + errors.append('{}:{}: Macro missing #undef: {}' + .format(f.LocalPath(), line_nr, name)) + + if errors: + return [output_api.PresubmitPromptOrNotify( + 'Detected mismatches in #define / #undef in the file(s) where you ' + 'modified preprocessor macros.', + errors)] + return [] + + def CheckChangeOnUpload(input_api, output_api): results = [] results.extend(_CommonChecks(input_api, output_api)) diff --git a/deps/v8/base/trace_event/common/trace_event_common.h b/deps/v8/base/trace_event/common/trace_event_common.h index bdc450d5682..51869ee9525 100644 --- a/deps/v8/base/trace_event/common/trace_event_common.h +++ b/deps/v8/base/trace_event/common/trace_event_common.h @@ -189,6 +189,8 @@ // trace points would carry a significant performance cost of acquiring a lock // and resolving the category. +// Check that nobody includes this file directly. Clients are supposed to +// include the surrounding "trace_event.h" of their project instead. #if defined(TRACE_EVENT0) #error "Another copy of this file has already been included." #endif @@ -783,13 +785,22 @@ INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ TRACE_EVENT_PHASE_NESTABLE_ASYNC_BEGIN, category_group, name, id, \ TRACE_EVENT_API_CURRENT_THREAD_ID, timestamp, TRACE_EVENT_FLAG_NONE) - #define TRACE_EVENT_NESTABLE_ASYNC_END_WITH_TIMESTAMP0(category_group, name, \ id, timestamp) \ INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ TRACE_EVENT_PHASE_NESTABLE_ASYNC_END, category_group, name, id, \ TRACE_EVENT_API_CURRENT_THREAD_ID, timestamp, TRACE_EVENT_FLAG_NONE) - +#define TRACE_EVENT_NESTABLE_ASYNC_END_WITH_TIMESTAMP1( \ + category_group, name, id, timestamp, arg1_name, arg1_val) \ + INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ + TRACE_EVENT_PHASE_NESTABLE_ASYNC_END, category_group, name, id, \ + TRACE_EVENT_API_CURRENT_THREAD_ID, timestamp, TRACE_EVENT_FLAG_NONE, \ + arg1_name, arg1_val) +#define TRACE_EVENT_NESTABLE_ASYNC_INSTANT_WITH_TIMESTAMP0( \ + category_group, name, id, timestamp) \ + INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ + TRACE_EVENT_PHASE_NESTABLE_ASYNC_INSTANT, category_group, name, id, \ + TRACE_EVENT_API_CURRENT_THREAD_ID, timestamp, TRACE_EVENT_FLAG_NONE) #define TRACE_EVENT_COPY_NESTABLE_ASYNC_BEGIN_WITH_TIMESTAMP0( \ category_group, name, id, timestamp) \ INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ diff --git a/deps/v8/gni/isolate.gni b/deps/v8/gni/isolate.gni index 82dc8cf3fbc..6ad25c27749 100644 --- a/deps/v8/gni/isolate.gni +++ b/deps/v8/gni/isolate.gni @@ -106,6 +106,11 @@ template("v8_isolate_run") { } else { use_external_startup_data = "0" } + if (is_ubsan_vptr) { + ubsan_vptr = "1" + } else { + ubsan_vptr = "0" + } if (v8_use_snapshot) { use_snapshot = "true" } else { @@ -156,8 +161,6 @@ template("v8_isolate_run") { "--config-variable", "icu_use_data_file_flag=$icu_use_data_file_flag", "--config-variable", - "is_gn=1", - "--config-variable", "msan=$msan", "--config-variable", "tsan=$tsan", @@ -170,6 +173,8 @@ template("v8_isolate_run") { "--config-variable", "target_arch=$target_arch", "--config-variable", + "ubsan_vptr=$ubsan_vptr", + "--config-variable", "v8_use_external_startup_data=$use_external_startup_data", "--config-variable", "v8_use_snapshot=$use_snapshot", @@ -178,7 +183,7 @@ template("v8_isolate_run") { if (is_win) { args += [ "--config-variable", - "msvs_version=2015", + "msvs_version=2017", ] } else { args += [ diff --git a/deps/v8/gypfiles/all.gyp b/deps/v8/gypfiles/all.gyp index bc9d9650eb5..30c98d1a709 100644 --- a/deps/v8/gypfiles/all.gyp +++ b/deps/v8/gypfiles/all.gyp @@ -46,7 +46,6 @@ '../tools/gcmole/run_gcmole.gyp:*', '../tools/jsfunfuzz/jsfunfuzz.gyp:*', '../tools/run-deopt-fuzzer.gyp:*', - '../tools/run-valgrind.gyp:*', ], }], ] diff --git a/deps/v8/gypfiles/features.gypi b/deps/v8/gypfiles/features.gypi index 6b0b293db69..964e81f46cc 100644 --- a/deps/v8/gypfiles/features.gypi +++ b/deps/v8/gypfiles/features.gypi @@ -85,7 +85,10 @@ 'v8_check_microtasks_scopes_consistency%': 'false', # Enable concurrent marking. - 'v8_enable_concurrent_marking%': 0, + 'v8_enable_concurrent_marking%': 1, + + # Controls the threshold for on-heap/off-heap Typed Arrays. + 'v8_typed_array_max_size_in_heap%': 64, }, 'target_defaults': { 'conditions': [ @@ -155,7 +158,7 @@ }, # Debug 'Release': { 'variables': { - 'v8_enable_handle_zapping%': 0, + 'v8_enable_handle_zapping%': 1, }, 'conditions': [ ['v8_enable_handle_zapping==1', { @@ -166,6 +169,7 @@ }, # configurations 'defines': [ 'V8_GYP_BUILD', + 'V8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=<(v8_typed_array_max_size_in_heap)', ], # defines }, # target_defaults } diff --git a/deps/v8/gypfiles/gyp_environment.py b/deps/v8/gypfiles/gyp_environment.py index 76ae841ffb6..fe6b51f28ab 100644 --- a/deps/v8/gypfiles/gyp_environment.py +++ b/deps/v8/gypfiles/gyp_environment.py @@ -10,7 +10,6 @@ import os import sys -import vs_toolchain SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) V8_ROOT = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir)) @@ -56,5 +55,3 @@ def set_environment(): if not os.environ.get('GYP_GENERATORS'): # Default to ninja on all platforms. os.environ['GYP_GENERATORS'] = 'ninja' - - vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs() diff --git a/deps/v8/gypfiles/gyp_v8 b/deps/v8/gypfiles/gyp_v8 index b8b5f742b1e..e419b5e89e7 100755 --- a/deps/v8/gypfiles/gyp_v8 +++ b/deps/v8/gypfiles/gyp_v8 @@ -38,7 +38,6 @@ import platform import shlex import subprocess import sys -import vs_toolchain script_dir = os.path.dirname(os.path.realpath(__file__)) v8_root = os.path.abspath(os.path.join(script_dir, os.pardir)) @@ -101,16 +100,7 @@ def additional_include_files(args=[]): def run_gyp(args): - rc = gyp.main(args) - - vs2013_runtime_dll_dirs = vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs() - if vs2013_runtime_dll_dirs: - x64_runtime, x86_runtime = vs2013_runtime_dll_dirs - vs_toolchain.CopyVsRuntimeDlls( - os.path.join(v8_root, GetOutputDirectory()), - (x86_runtime, x64_runtime)) - - if rc != 0: + if gyp.main(args) != 0: print 'Error running GYP' sys.exit(rc) diff --git a/deps/v8/gypfiles/isolate.gypi b/deps/v8/gypfiles/isolate.gypi index 11b05705307..3e85b530e25 100644 --- a/deps/v8/gypfiles/isolate.gypi +++ b/deps/v8/gypfiles/isolate.gypi @@ -74,13 +74,13 @@ '--config-variable', 'gcmole=<(gcmole)', '--config-variable', 'has_valgrind=<(has_valgrind)', '--config-variable', 'icu_use_data_file_flag=<(icu_use_data_file_flag)', - '--config-variable', 'is_gn=0', '--config-variable', 'msan=<(msan)', '--config-variable', 'tsan=<(tsan)', '--config-variable', 'coverage=<(coverage)', '--config-variable', 'sanitizer_coverage=<(sanitizer_coverage)', '--config-variable', 'component=<(component)', '--config-variable', 'target_arch=<(target_arch)', + '--config-variable', 'ubsan_vptr=0', '--config-variable', 'v8_use_external_startup_data=<(v8_use_external_startup_data)', '--config-variable', 'v8_use_snapshot=<(v8_use_snapshot)', ], diff --git a/deps/v8/gypfiles/run-tests-legacy.py b/deps/v8/gypfiles/run-tests-legacy.py new file mode 100755 index 00000000000..f1ea478c62d --- /dev/null +++ b/deps/v8/gypfiles/run-tests-legacy.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python +# Copyright 2017 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +""" +Legacy test-runner wrapper supporting a product of multiple architectures and +modes. +""" + +import argparse +import itertools +from os.path import abspath, dirname, join +import subprocess +import sys + +BASE_DIR = dirname(dirname(abspath(__file__))) +RUN_TESTS = join(BASE_DIR, 'tools', 'run-tests.py') + +def main(): + parser = argparse.ArgumentParser(description='Legacy test-runner wrapper') + parser.add_argument( + '--arch', help='Comma-separated architectures to run tests on') + parser.add_argument( + '--mode', help='Comma-separated modes to run tests on') + parser.add_argument( + '--arch-and-mode', + help='Architecture and mode in the format \'arch.mode\'', + ) + + args, remaining_args = parser.parse_known_args(sys.argv) + if (args.arch or args.mode) and args.arch_and_mode: + parser.error('The flags --arch-and-mode and --arch/--mode are exclusive.') + arch = (args.arch or 'ia32,x64,arm').split(',') + mode = (args.mode or 'release,debug').split(',') + if args.arch_and_mode: + arch_and_mode = map( + lambda am: am.split('.'), + args.arch_and_mode.split(',')) + arch = map(lambda am: am[0], arch_and_mode) + mode = map(lambda am: am[1], arch_and_mode) + + ret_code = 0 + for a, m in itertools.product(arch, mode): + ret_code |= subprocess.check_call( + [RUN_TESTS] + remaining_args[1:] + ['--arch', a, '--mode', m]) + return ret_code + +if __name__ == '__main__': + sys.exit(main()) diff --git a/deps/v8/gypfiles/toolchain.gypi b/deps/v8/gypfiles/toolchain.gypi index 5733d2d54ca..80844cecc67 100644 --- a/deps/v8/gypfiles/toolchain.gypi +++ b/deps/v8/gypfiles/toolchain.gypi @@ -32,6 +32,7 @@ 'msvs_use_common_release': 0, 'clang%': 0, 'asan%': 0, + 'cfi_vptr%': 0, 'lsan%': 0, 'msan%': 0, 'tsan%': 0, diff --git a/deps/v8/gypfiles/vs_toolchain.py b/deps/v8/gypfiles/vs_toolchain.py deleted file mode 100644 index d7676c8da0c..00000000000 --- a/deps/v8/gypfiles/vs_toolchain.py +++ /dev/null @@ -1,371 +0,0 @@ -#!/usr/bin/env python -# Copyright 2015 the V8 project authors. All rights reserved. -# Copyright 2014 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import glob -import json -import os -import pipes -import shutil -import subprocess -import sys - - -script_dir = os.path.dirname(os.path.realpath(__file__)) -chrome_src = os.path.abspath(os.path.join(script_dir, os.pardir)) -SRC_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -sys.path.insert(1, os.path.join(chrome_src, 'tools')) -sys.path.insert(0, os.path.join(chrome_src, 'tools', 'gyp', 'pylib')) -json_data_file = os.path.join(script_dir, 'win_toolchain.json') - - -import gyp - - -# Use MSVS2013 as the default toolchain. -CURRENT_DEFAULT_TOOLCHAIN_VERSION = '2013' - - -def SetEnvironmentAndGetRuntimeDllDirs(): - """Sets up os.environ to use the depot_tools VS toolchain with gyp, and - returns the location of the VS runtime DLLs so they can be copied into - the output directory after gyp generation. - """ - vs_runtime_dll_dirs = None - depot_tools_win_toolchain = \ - bool(int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN', '1'))) - # When running on a non-Windows host, only do this if the SDK has explicitly - # been downloaded before (in which case json_data_file will exist). - if ((sys.platform in ('win32', 'cygwin') or os.path.exists(json_data_file)) - and depot_tools_win_toolchain): - if ShouldUpdateToolchain(): - Update() - with open(json_data_file, 'r') as tempf: - toolchain_data = json.load(tempf) - - toolchain = toolchain_data['path'] - version = toolchain_data['version'] - win_sdk = toolchain_data.get('win_sdk') - if not win_sdk: - win_sdk = toolchain_data['win8sdk'] - wdk = toolchain_data['wdk'] - # TODO(scottmg): The order unfortunately matters in these. They should be - # split into separate keys for x86 and x64. (See CopyVsRuntimeDlls call - # below). http://crbug.com/345992 - vs_runtime_dll_dirs = toolchain_data['runtime_dirs'] - - os.environ['GYP_MSVS_OVERRIDE_PATH'] = toolchain - os.environ['GYP_MSVS_VERSION'] = version - # We need to make sure windows_sdk_path is set to the automated - # toolchain values in GYP_DEFINES, but don't want to override any - # otheroptions.express - # values there. - gyp_defines_dict = gyp.NameValueListToDict(gyp.ShlexEnv('GYP_DEFINES')) - gyp_defines_dict['windows_sdk_path'] = win_sdk - os.environ['GYP_DEFINES'] = ' '.join('%s=%s' % (k, pipes.quote(str(v))) - for k, v in gyp_defines_dict.iteritems()) - os.environ['WINDOWSSDKDIR'] = win_sdk - os.environ['WDK_DIR'] = wdk - # Include the VS runtime in the PATH in case it's not machine-installed. - runtime_path = os.path.pathsep.join(vs_runtime_dll_dirs) - os.environ['PATH'] = runtime_path + os.path.pathsep + os.environ['PATH'] - elif sys.platform == 'win32' and not depot_tools_win_toolchain: - if not 'GYP_MSVS_OVERRIDE_PATH' in os.environ: - os.environ['GYP_MSVS_OVERRIDE_PATH'] = DetectVisualStudioPath() - if not 'GYP_MSVS_VERSION' in os.environ: - os.environ['GYP_MSVS_VERSION'] = GetVisualStudioVersion() - - return vs_runtime_dll_dirs - - -def _RegistryGetValueUsingWinReg(key, value): - """Use the _winreg module to obtain the value of a registry key. - - Args: - key: The registry key. - value: The particular registry value to read. - Return: - contents of the registry key's value, or None on failure. Throws - ImportError if _winreg is unavailable. - """ - import _winreg - try: - root, subkey = key.split('\\', 1) - assert root == 'HKLM' # Only need HKLM for now. - with _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, subkey) as hkey: - return _winreg.QueryValueEx(hkey, value)[0] - except WindowsError: - return None - - -def _RegistryGetValue(key, value): - try: - return _RegistryGetValueUsingWinReg(key, value) - except ImportError: - raise Exception('The python library _winreg not found.') - - -def GetVisualStudioVersion(): - """Return GYP_MSVS_VERSION of Visual Studio. - """ - return os.environ.get('GYP_MSVS_VERSION', CURRENT_DEFAULT_TOOLCHAIN_VERSION) - - -def DetectVisualStudioPath(): - """Return path to the GYP_MSVS_VERSION of Visual Studio. - """ - - # Note that this code is used from - # build/toolchain/win/setup_toolchain.py as well. - version_as_year = GetVisualStudioVersion() - year_to_version = { - '2013': '12.0', - '2015': '14.0', - } - if version_as_year not in year_to_version: - raise Exception(('Visual Studio version %s (from GYP_MSVS_VERSION)' - ' not supported. Supported versions are: %s') % ( - version_as_year, ', '.join(year_to_version.keys()))) - version = year_to_version[version_as_year] - keys = [r'HKLM\Software\Microsoft\VisualStudio\%s' % version, - r'HKLM\Software\Wow6432Node\Microsoft\VisualStudio\%s' % version] - for key in keys: - path = _RegistryGetValue(key, 'InstallDir') - if not path: - continue - path = os.path.normpath(os.path.join(path, '..', '..')) - return path - - raise Exception(('Visual Studio Version %s (from GYP_MSVS_VERSION)' - ' not found.') % (version_as_year)) - - -def _VersionNumber(): - """Gets the standard version number ('120', '140', etc.) based on - GYP_MSVS_VERSION.""" - vs_version = GetVisualStudioVersion() - if vs_version == '2013': - return '120' - elif vs_version == '2015': - return '140' - else: - raise ValueError('Unexpected GYP_MSVS_VERSION') - - -def _CopyRuntimeImpl(target, source, verbose=True): - """Copy |source| to |target| if it doesn't already exist or if it - needs to be updated. - """ - if (os.path.isdir(os.path.dirname(target)) and - (not os.path.isfile(target) or - os.stat(target).st_mtime != os.stat(source).st_mtime)): - if verbose: - print 'Copying %s to %s...' % (source, target) - if os.path.exists(target): - os.unlink(target) - shutil.copy2(source, target) - - -def _CopyRuntime2013(target_dir, source_dir, dll_pattern): - """Copy both the msvcr and msvcp runtime DLLs, only if the target doesn't - exist, but the target directory does exist.""" - for file_part in ('p', 'r'): - dll = dll_pattern % file_part - target = os.path.join(target_dir, dll) - source = os.path.join(source_dir, dll) - _CopyRuntimeImpl(target, source) - - -def _CopyRuntime2015(target_dir, source_dir, dll_pattern, suffix): - """Copy both the msvcp and vccorlib runtime DLLs, only if the target doesn't - exist, but the target directory does exist.""" - for file_part in ('msvcp', 'vccorlib', 'vcruntime'): - dll = dll_pattern % file_part - target = os.path.join(target_dir, dll) - source = os.path.join(source_dir, dll) - _CopyRuntimeImpl(target, source) - ucrt_src_dir = os.path.join(source_dir, 'api-ms-win-*.dll') - print 'Copying %s to %s...' % (ucrt_src_dir, target_dir) - for ucrt_src_file in glob.glob(ucrt_src_dir): - file_part = os.path.basename(ucrt_src_file) - ucrt_dst_file = os.path.join(target_dir, file_part) - _CopyRuntimeImpl(ucrt_dst_file, ucrt_src_file, False) - _CopyRuntimeImpl(os.path.join(target_dir, 'ucrtbase' + suffix), - os.path.join(source_dir, 'ucrtbase' + suffix)) - - -def _CopyRuntime(target_dir, source_dir, target_cpu, debug): - """Copy the VS runtime DLLs, only if the target doesn't exist, but the target - directory does exist. Handles VS 2013 and VS 2015.""" - suffix = "d.dll" if debug else ".dll" - if GetVisualStudioVersion() == '2015': - _CopyRuntime2015(target_dir, source_dir, '%s140' + suffix, suffix) - else: - _CopyRuntime2013(target_dir, source_dir, 'msvc%s120' + suffix) - - # Copy the PGO runtime library to the release directories. - if not debug and os.environ.get('GYP_MSVS_OVERRIDE_PATH'): - pgo_x86_runtime_dir = os.path.join(os.environ.get('GYP_MSVS_OVERRIDE_PATH'), - 'VC', 'bin') - pgo_x64_runtime_dir = os.path.join(pgo_x86_runtime_dir, 'amd64') - pgo_runtime_dll = 'pgort' + _VersionNumber() + '.dll' - if target_cpu == "x86": - source_x86 = os.path.join(pgo_x86_runtime_dir, pgo_runtime_dll) - if os.path.exists(source_x86): - _CopyRuntimeImpl(os.path.join(target_dir, pgo_runtime_dll), source_x86) - elif target_cpu == "x64": - source_x64 = os.path.join(pgo_x64_runtime_dir, pgo_runtime_dll) - if os.path.exists(source_x64): - _CopyRuntimeImpl(os.path.join(target_dir, pgo_runtime_dll), - source_x64) - else: - raise NotImplementedError("Unexpected target_cpu value:" + target_cpu) - - -def CopyVsRuntimeDlls(output_dir, runtime_dirs): - """Copies the VS runtime DLLs from the given |runtime_dirs| to the output - directory so that even if not system-installed, built binaries are likely to - be able to run. - - This needs to be run after gyp has been run so that the expected target - output directories are already created. - - This is used for the GYP build and gclient runhooks. - """ - x86, x64 = runtime_dirs - out_debug = os.path.join(output_dir, 'Debug') - out_release = os.path.join(output_dir, 'Release') - out_debug_x64 = os.path.join(output_dir, 'Debug_x64') - out_release_x64 = os.path.join(output_dir, 'Release_x64') - - _CopyRuntime(out_debug, x86, "x86", debug=True) - _CopyRuntime(out_release, x86, "x86", debug=False) - _CopyRuntime(out_debug_x64, x64, "x64", debug=True) - _CopyRuntime(out_release_x64, x64, "x64", debug=False) - - -def CopyDlls(target_dir, configuration, target_cpu): - """Copy the VS runtime DLLs into the requested directory as needed. - - configuration is one of 'Debug' or 'Release'. - target_cpu is one of 'x86' or 'x64'. - - The debug configuration gets both the debug and release DLLs; the - release config only the latter. - - This is used for the GN build. - """ - vs_runtime_dll_dirs = SetEnvironmentAndGetRuntimeDllDirs() - if not vs_runtime_dll_dirs: - return - - x64_runtime, x86_runtime = vs_runtime_dll_dirs - runtime_dir = x64_runtime if target_cpu == 'x64' else x86_runtime - _CopyRuntime(target_dir, runtime_dir, target_cpu, debug=False) - if configuration == 'Debug': - _CopyRuntime(target_dir, runtime_dir, target_cpu, debug=True) - - -def _GetDesiredVsToolchainHashes(): - """Load a list of SHA1s corresponding to the toolchains that we want installed - to build with.""" - if GetVisualStudioVersion() == '2015': - # Update 2. - return ['95ddda401ec5678f15eeed01d2bee08fcbc5ee97'] - else: - return ['03a4e939cd325d6bc5216af41b92d02dda1366a6'] - - -def ShouldUpdateToolchain(): - """Check if the toolchain should be upgraded.""" - if not os.path.exists(json_data_file): - return True - with open(json_data_file, 'r') as tempf: - toolchain_data = json.load(tempf) - version = toolchain_data['version'] - env_version = GetVisualStudioVersion() - # If there's a mismatch between the version set in the environment and the one - # in the json file then the toolchain should be updated. - return version != env_version - - -def Update(force=False): - """Requests an update of the toolchain to the specific hashes we have at - this revision. The update outputs a .json of the various configuration - information required to pass to gyp which we use in |GetToolchainDir()|. - """ - if force != False and force != '--force': - print >>sys.stderr, 'Unknown parameter "%s"' % force - return 1 - if force == '--force' or os.path.exists(json_data_file): - force = True - - depot_tools_win_toolchain = \ - bool(int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN', '1'))) - if ((sys.platform in ('win32', 'cygwin') or force) and - depot_tools_win_toolchain): - import find_depot_tools - depot_tools_path = find_depot_tools.add_depot_tools_to_path() - # Necessary so that get_toolchain_if_necessary.py will put the VS toolkit - # in the correct directory. - os.environ['GYP_MSVS_VERSION'] = GetVisualStudioVersion() - get_toolchain_args = [ - sys.executable, - os.path.join(depot_tools_path, - 'win_toolchain', - 'get_toolchain_if_necessary.py'), - '--output-json', json_data_file, - ] + _GetDesiredVsToolchainHashes() - if force: - get_toolchain_args.append('--force') - subprocess.check_call(get_toolchain_args) - - return 0 - - -def NormalizePath(path): - while path.endswith("\\"): - path = path[:-1] - return path - - -def GetToolchainDir(): - """Gets location information about the current toolchain (must have been - previously updated by 'update'). This is used for the GN build.""" - runtime_dll_dirs = SetEnvironmentAndGetRuntimeDllDirs() - - # If WINDOWSSDKDIR is not set, search the default SDK path and set it. - if not 'WINDOWSSDKDIR' in os.environ: - default_sdk_path = 'C:\\Program Files (x86)\\Windows Kits\\10' - if os.path.isdir(default_sdk_path): - os.environ['WINDOWSSDKDIR'] = default_sdk_path - - print '''vs_path = "%s" -sdk_path = "%s" -vs_version = "%s" -wdk_dir = "%s" -runtime_dirs = "%s" -''' % ( - NormalizePath(os.environ['GYP_MSVS_OVERRIDE_PATH']), - NormalizePath(os.environ['WINDOWSSDKDIR']), - GetVisualStudioVersion(), - NormalizePath(os.environ.get('WDK_DIR', '')), - os.path.pathsep.join(runtime_dll_dirs or ['None'])) - - -def main(): - commands = { - 'update': Update, - 'get_toolchain_dir': GetToolchainDir, - 'copy_dlls': CopyDlls, - } - if len(sys.argv) < 2 or sys.argv[1] not in commands: - print >>sys.stderr, 'Expected one of: %s' % ', '.join(commands) - return 1 - return commands[sys.argv[1]](*sys.argv[2:]) - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/deps/v8/gypfiles/win/msvs_dependencies.isolate b/deps/v8/gypfiles/win/msvs_dependencies.isolate index 79ae11a1ae9..28591266591 100644 --- a/deps/v8/gypfiles/win/msvs_dependencies.isolate +++ b/deps/v8/gypfiles/win/msvs_dependencies.isolate @@ -25,8 +25,8 @@ ], }, }], - # VS2015 runtimes - ['OS=="win" and msvs_version==2015 and component=="shared_library" and (CONFIGURATION_NAME=="Debug" or CONFIGURATION_NAME=="Debug_x64")', { + # VS2015/2017 runtimes + ['OS=="win" and (msvs_version==2015 or msvs_version==2017) and component=="shared_library" and (CONFIGURATION_NAME=="Debug" or CONFIGURATION_NAME=="Debug_x64")', { 'variables': { 'files': [ '<(PRODUCT_DIR)/msvcp140d.dll', @@ -36,7 +36,7 @@ ], }, }], - ['OS=="win" and msvs_version==2015 and component=="shared_library" and (CONFIGURATION_NAME=="Release" or CONFIGURATION_NAME=="Release_x64")', { + ['OS=="win" and (msvs_version==2015 or msvs_version==2017) and component=="shared_library" and (CONFIGURATION_NAME=="Release" or CONFIGURATION_NAME=="Release_x64")', { 'variables': { 'files': [ '<(PRODUCT_DIR)/msvcp140.dll', @@ -46,7 +46,7 @@ ], }, }], - ['OS=="win" and msvs_version==2015 and component=="shared_library"', { + ['OS=="win" and (msvs_version==2015 or msvs_version==2017) and component=="shared_library"', { # Windows 10 Universal C Runtime binaries. 'variables': { 'files': [ diff --git a/deps/v8/include/v8-inspector.h b/deps/v8/include/v8-inspector.h index 43bf3b4f60b..d0bb9b47fe4 100644 --- a/deps/v8/include/v8-inspector.h +++ b/deps/v8/include/v8-inspector.h @@ -211,6 +211,8 @@ class V8_EXPORT V8InspectorClient { // TODO(dgozman): this was added to support service worker shadow page. We // should not connect at all. virtual bool canExecuteScripts(int contextGroupId) { return true; } + + virtual void maxAsyncCallStackDepthChanged(int depth) {} }; class V8_EXPORT V8Inspector { diff --git a/deps/v8/include/v8-platform.h b/deps/v8/include/v8-platform.h index ed2acc3a74e..74630b6f19d 100644 --- a/deps/v8/include/v8-platform.h +++ b/deps/v8/include/v8-platform.h @@ -209,10 +209,7 @@ class Platform { * Current wall-clock time in milliseconds since epoch. * This function is expected to return at least millisecond-precision values. */ - virtual double CurrentClockTimeMillis() { - // TODO(dats): Make pure virtual after V8 roll in Chromium. - return 0.0; - } + virtual double CurrentClockTimeMillis() = 0; typedef void (*StackTracePrinter)(); diff --git a/deps/v8/include/v8-util.h b/deps/v8/include/v8-util.h index a04a5e84f80..15ea225dc12 100644 --- a/deps/v8/include/v8-util.h +++ b/deps/v8/include/v8-util.h @@ -393,9 +393,14 @@ class PersistentValueMap : public PersistentValueMapBase { */ Global SetUnique(const K& key, Global* persistent) { if (Traits::kCallbackType != kNotWeak) { + WeakCallbackType callback_type = + Traits::kCallbackType == kWeakWithInternalFields + ? WeakCallbackType::kInternalFields + : WeakCallbackType::kParameter; Local value(Local::New(this->isolate(), *persistent)); persistent->template SetWeak( - Traits::WeakCallbackParameter(this, key, value), WeakCallback); + Traits::WeakCallbackParameter(this, key, value), WeakCallback, + callback_type); } PersistentContainerValue old_value = Traits::Set(this->impl(), key, this->ClearAndLeak(persistent)); diff --git a/deps/v8/include/v8-version-string.h b/deps/v8/include/v8-version-string.h index eab0934804e..fb84144d544 100644 --- a/deps/v8/include/v8-version-string.h +++ b/deps/v8/include/v8-version-string.h @@ -29,9 +29,10 @@ "." V8_S(V8_MINOR_VERSION) "." V8_S(V8_BUILD_NUMBER) "." V8_S( \ V8_PATCH_LEVEL) V8_EMBEDDER_STRING V8_CANDIDATE_STRING #else -#define V8_VERSION_STRING \ - V8_S(V8_MAJOR_VERSION) \ - "." V8_S(V8_MINOR_VERSION) "." V8_S(V8_BUILD_NUMBER) V8_CANDIDATE_STRING +#define V8_VERSION_STRING \ + V8_S(V8_MAJOR_VERSION) \ + "." V8_S(V8_MINOR_VERSION) "." V8_S(V8_BUILD_NUMBER) \ + V8_EMBEDDER_STRING V8_CANDIDATE_STRING #endif #endif // V8_VERSION_STRING_H_ diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index bcd166b03e7..24284351cbc 100644 --- a/deps/v8/include/v8-version.h +++ b/deps/v8/include/v8-version.h @@ -9,9 +9,9 @@ // NOTE these macros are used by some of the tool scripts and the build // system so their names cannot be changed without changing the scripts. #define V8_MAJOR_VERSION 6 -#define V8_MINOR_VERSION 2 -#define V8_BUILD_NUMBER 414 -#define V8_PATCH_LEVEL 32 +#define V8_MINOR_VERSION 4 +#define V8_BUILD_NUMBER 132 +#define V8_PATCH_LEVEL 0 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index b183d4342fc..ef5ebe282d8 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -104,6 +104,7 @@ class String; class StringObject; class Symbol; class SymbolObject; +class PrimitiveArray; class Private; class Uint32; class Utils; @@ -149,6 +150,10 @@ template class CustomArguments; class PropertyCallbackArguments; class FunctionCallbackArguments; class GlobalHandles; + +namespace wasm { +class StreamingDecoder; +} // namespace wasm } // namespace internal namespace debug { @@ -978,6 +983,48 @@ class V8_EXPORT Data { Data(); }; +/** + * This is an unfinished experimental feature, and is only exposed + * here for internal testing purposes. DO NOT USE. + * + * A container type that holds relevant metadata for module loading. + * + * This is passed back to the embedder as part of + * HostImportModuleDynamicallyCallback for module loading. + */ +class V8_EXPORT ScriptOrModule { + public: + /** + * The name that was passed by the embedder as ResourceName to the + * ScriptOrigin. This can be either a v8::String or v8::Undefined. + */ + Local GetResourceName(); + + /** + * The options that were passed by the embedder as HostDefinedOptions to + * the ScriptOrigin. + */ + Local GetHostDefinedOptions(); +}; + +/** + * This is an unfinished experimental feature, and is only exposed + * here for internal testing purposes. DO NOT USE. + * + * An array to hold Primitive values. This is used by the embedder to + * pass host defined options to the ScriptOptions during compilation. + * + * This is passed back to the embedder as part of + * HostImportModuleDynamicallyCallback for module loading. + * + */ +class V8_EXPORT PrimitiveArray { + public: + static Local New(Isolate* isolate, int length); + int Length() const; + void Set(int index, Local item); + Local Get(int index); +}; /** * The optional attributes of ScriptOrigin. @@ -1027,13 +1074,15 @@ class ScriptOrigin { Local source_map_url = Local(), Local resource_is_opaque = Local(), Local is_wasm = Local(), - Local is_module = Local()); + Local is_module = Local(), + Local host_defined_options = Local()); V8_INLINE Local ResourceName() const; V8_INLINE Local ResourceLineOffset() const; V8_INLINE Local ResourceColumnOffset() const; V8_INLINE Local ScriptID() const; V8_INLINE Local SourceMapUrl() const; + V8_INLINE Local HostDefinedOptions() const; V8_INLINE ScriptOriginOptions Options() const { return options_; } private: @@ -1043,6 +1092,7 @@ class ScriptOrigin { ScriptOriginOptions options_; Local script_id_; Local source_map_url_; + Local host_defined_options_; }; /** @@ -1289,6 +1339,7 @@ class V8_EXPORT ScriptCompiler { Local resource_column_offset; ScriptOriginOptions resource_options; Local source_map_url; + Local host_defined_options; // Cached data from previous compilation (if a kConsume*Cache flag is // set), or hold newly generated cache data (kProduce*Cache flags) are @@ -1385,6 +1436,7 @@ class V8_EXPORT ScriptCompiler { kProduceParserCache, kConsumeParserCache, kProduceCodeCache, + kProduceFullCodeCache, kConsumeCodeCache }; @@ -1782,7 +1834,7 @@ class V8_EXPORT JSON { * \return The corresponding string if successfully stringified. */ static V8_WARN_UNUSED_RESULT MaybeLocal Stringify( - Local context, Local json_object, + Local context, Local json_object, Local gap = Local()); }; @@ -4217,6 +4269,7 @@ class V8_EXPORT WasmModuleObjectBuilderStreaming final { #endif std::vector received_buffers_; size_t total_size_ = 0; + std::shared_ptr streaming_decoder_; }; class V8_EXPORT WasmModuleObjectBuilder final { @@ -5129,6 +5182,8 @@ typedef void (*NamedPropertyDeleterCallback)( /** * Returns an array containing the names of the properties the named * property getter intercepts. + * + * Note: The values in the array must be of type v8::Name. */ typedef void (*NamedPropertyEnumeratorCallback)( const PropertyCallbackInfo& info); @@ -5252,6 +5307,8 @@ typedef void (*GenericNamedPropertyDeleterCallback)( /** * Returns an array containing the names of the properties the named * property getter intercepts. + * + * Note: The values in the array must be of type v8::Name. */ typedef void (*GenericNamedPropertyEnumeratorCallback)( const PropertyCallbackInfo& info); @@ -5332,7 +5389,10 @@ typedef void (*IndexedPropertyDeleterCallback)( const PropertyCallbackInfo& info); /** - * See `v8::GenericNamedPropertyEnumeratorCallback`. + * Returns an array containing the indices of the properties the indexed + * property getter intercepts. + * + * Note: The values in the array must be uint32_t. */ typedef void (*IndexedPropertyEnumeratorCallback)( const PropertyCallbackInfo& info); @@ -6135,6 +6195,9 @@ typedef void (*FatalErrorCallback)(const char* location, const char* message); typedef void (*OOMErrorCallback)(const char* location, bool is_heap_oom); +typedef void (*DcheckErrorCallback)(const char* file, int line, + const char* message); + typedef void (*MessageCallback)(Local message, Local data); // --- Tracing --- @@ -6205,12 +6268,12 @@ typedef void (*CallCompletedCallback)(Isolate*); typedef void (*DeprecatedCallCompletedCallback)(); /** - * HostImportDynamicallyCallback is called when we require the + * HostImportModuleDynamicallyCallback is called when we require the * embedder to load a module. This is used as part of the dynamic * import syntax. * - * The referrer is the name of the file which calls the dynamic - * import. The referrer can be used to resolve the module location. + * The referrer contains metadata about the script/module that calls + * import. * * The specifier is the name of the module that should be imported. * @@ -6225,7 +6288,22 @@ typedef void (*DeprecatedCallCompletedCallback)(); * that exception by returning an empty MaybeLocal. */ typedef MaybeLocal (*HostImportModuleDynamicallyCallback)( - Local context, Local referrer, Local specifier); + Local context, Local referrer, + Local specifier); + +/** + * HostInitializeImportMetaObjectCallback is called the first time import.meta + * is accessed for a module. Subsequent acccess will reuse the same value. + * + * The method combines two implementation-defined abstract operations into one: + * HostGetImportMetaProperties and HostFinalizeImportMeta. + * + * The embedder should use v8::Object::CreateDataProperty to add properties on + * the meta object. + */ +typedef void (*HostInitializeImportMetaObjectCallback)(Local context, + Local module, + Local meta); /** * PromiseHook with type kInit is called when a new promise is @@ -6984,6 +7062,7 @@ class V8_EXPORT Isolate { kPromiseConstructorReturnedUndefined = 38, kConstructorNonUndefinedPrimitiveReturn = 39, kLabeledExpressionStatement = 40, + kLineOrParagraphSeparatorAsLineTerminator = 41, // If you add new values here, you'll also need to update Chromium's: // UseCounter.h, V8PerIsolateData.cpp, histograms.xml @@ -7046,6 +7125,16 @@ class V8_EXPORT Isolate { void SetHostImportModuleDynamicallyCallback( HostImportModuleDynamicallyCallback callback); + /** + * This is an unfinished experimental feature, and is only exposed + * here for internal testing purposes. DO NOT USE. + * + * This specifies the callback called by the upcoming importa.meta + * language feature to retrieve host-defined meta data for a module. + */ + void SetHostInitializeImportMetaObjectCallback( + HostInitializeImportMetaObjectCallback callback); + /** * Optional notification that the system is running low on memory. * V8 uses these notifications to guide heuristics. @@ -7839,6 +7928,9 @@ class V8_EXPORT V8 { static StartupData WarmUpSnapshotDataBlob(StartupData cold_startup_blob, const char* warmup_source); + /** Set the callback to invoke in case of Dcheck failures. */ + static void SetDcheckErrorHandler(DcheckErrorCallback that); + /** * Adds a message listener. * @@ -9021,11 +9113,12 @@ class Internals { static const int kNodeIsIndependentShift = 3; static const int kNodeIsActiveShift = 4; - static const int kJSApiObjectType = 0xbd; - static const int kJSObjectType = 0xbe; static const int kFirstNonstringType = 0x80; - static const int kOddballType = 0x82; - static const int kForeignType = 0x86; + static const int kOddballType = 0x83; + static const int kForeignType = 0x87; + static const int kJSSpecialApiObjectType = 0xbb; + static const int kJSApiObjectType = 0xbf; + static const int kJSObjectType = 0xc0; static const int kUndefinedOddballKind = 5; static const int kNullOddballKind = 3; @@ -9545,7 +9638,8 @@ ScriptOrigin::ScriptOrigin(Local resource_name, Local script_id, Local source_map_url, Local resource_is_opaque, - Local is_wasm, Local is_module) + Local is_wasm, Local is_module, + Local host_defined_options) : resource_name_(resource_name), resource_line_offset_(resource_line_offset), resource_column_offset_(resource_column_offset), @@ -9555,10 +9649,14 @@ ScriptOrigin::ScriptOrigin(Local resource_name, !is_wasm.IsEmpty() && is_wasm->IsTrue(), !is_module.IsEmpty() && is_module->IsTrue()), script_id_(script_id), - source_map_url_(source_map_url) {} + source_map_url_(source_map_url), + host_defined_options_(host_defined_options) {} Local ScriptOrigin::ResourceName() const { return resource_name_; } +Local ScriptOrigin::HostDefinedOptions() const { + return host_defined_options_; +} Local ScriptOrigin::ResourceLineOffset() const { return resource_line_offset_; @@ -9575,7 +9673,6 @@ Local ScriptOrigin::ScriptID() const { return script_id_; } Local ScriptOrigin::SourceMapUrl() const { return source_map_url_; } - ScriptCompiler::Source::Source(Local string, const ScriptOrigin& origin, CachedData* data) : source_string(string), @@ -9584,9 +9681,9 @@ ScriptCompiler::Source::Source(Local string, const ScriptOrigin& origin, resource_column_offset(origin.ResourceColumnOffset()), resource_options(origin.Options()), source_map_url(origin.SourceMapUrl()), + host_defined_options(origin.HostDefinedOptions()), cached_data(data) {} - ScriptCompiler::Source::Source(Local string, CachedData* data) : source_string(string), cached_data(data) {} @@ -9627,7 +9724,8 @@ Local Object::GetInternalField(int index) { // know where to find the internal fields and can return the value directly. auto instance_type = I::GetInstanceType(obj); if (instance_type == I::kJSObjectType || - instance_type == I::kJSApiObjectType) { + instance_type == I::kJSApiObjectType || + instance_type == I::kJSSpecialApiObjectType) { int offset = I::kJSObjectHeaderSize + (internal::kApiPointerSize * index); O* value = I::ReadField(obj, offset); O** result = HandleScope::CreateHandle(reinterpret_cast(obj), value); @@ -9647,7 +9745,8 @@ void* Object::GetAlignedPointerFromInternalField(int index) { // know where to find the internal fields and can return the value directly. auto instance_type = I::GetInstanceType(obj); if (V8_LIKELY(instance_type == I::kJSObjectType || - instance_type == I::kJSApiObjectType)) { + instance_type == I::kJSApiObjectType || + instance_type == I::kJSSpecialApiObjectType)) { int offset = I::kJSObjectHeaderSize + (internal::kApiPointerSize * index); return I::ReadField(obj, offset); } diff --git a/deps/v8/infra/config/cq.cfg b/deps/v8/infra/config/cq.cfg index dcf8e5c0b72..148900788d4 100644 --- a/deps/v8/infra/config/cq.cfg +++ b/deps/v8/infra/config/cq.cfg @@ -9,16 +9,8 @@ commit_burst_delay: 60 max_commit_burst: 1 gerrit {} -rietveld { - url: "https://codereview.chromium.org" -} verifiers { - reviewer_lgtm { - committer_list: "project-v8-committers" - dry_run_access_list: "project-v8-tryjob-access" - } - gerrit_cq_ability { committer_list: "project-v8-committers" dry_run_access_list: "project-v8-tryjob-access" @@ -29,6 +21,20 @@ verifiers { } try_job { + buckets { + name: "luci.v8.try" + builders { + name: "v8_fuchsia_rel_ng" + experiment_percentage: 100 + } + builders { + name: "v8_linux_shared_compile_rel" + } + builders { + name: "v8_win64_clang_compile_rel" + experiment_percentage: 20 + } + } buckets { name: "master.tryserver.v8" builders { name: "v8_android_arm_compile_rel" } diff --git a/deps/v8/infra/mb/mb_config.pyl b/deps/v8/infra/mb/mb_config.pyl index 62bae4bfdca..116d9d5a9c5 100644 --- a/deps/v8/infra/mb/mb_config.pyl +++ b/deps/v8/infra/mb/mb_config.pyl @@ -62,9 +62,9 @@ 'V8 Linux - noi18n - debug': 'gn_debug_x86_no_i18n', 'V8 Linux - verify csa': 'gn_release_x86_verify_csa', # Linux64. - 'V8 Linux64 - builder': 'gn_release_x64_valgrind', + 'V8 Linux64 - builder': 'gn_release_x64', 'V8 Linux64 - concurrent marking - builder': 'gn_release_x64_concurrent_marking', - 'V8 Linux64 - debug builder': 'gn_debug_x64_valgrind', + 'V8 Linux64 - debug builder': 'gn_debug_x64', 'V8 Linux64 - custom snapshot - debug builder': 'gn_debug_x64_custom', 'V8 Linux64 - internal snapshot': 'gn_release_x64_internal', 'V8 Linux64 - gyp': 'gyp_release_x64', @@ -74,11 +74,11 @@ 'V8 Win32 - debug builder': 'gn_debug_x86_minimal_symbols', 'V8 Win32 - nosnap - shared': 'gn_release_x86_no_snap_shared_minimal_symbols', + 'V8 Win32 ASAN': 'gn_release_x86_asan_no_lsan', 'V8 Win64': 'gn_release_x64_minimal_symbols', 'V8 Win64 - debug': 'gn_debug_x64_minimal_symbols', # TODO(machenbach): Switch plugins on when errors are fixed. 'V8 Win64 - clang': 'gn_release_x64_clang', - 'V8 Win64 ASAN': 'gn_release_x64_asan_no_lsan', # Mac. 'V8 Mac': 'gn_release_x86', 'V8 Mac - debug': 'gn_debug_x86', @@ -96,6 +96,8 @@ 'V8 Linux gcc 4.8': 'gn_release_x86_gcc', 'V8 Linux64 gcc 4.8 - debug': 'gn_debug_x64_gcc', # FYI. + 'V8 Fuchsia': 'gn_release_x64_fuchsia', + 'V8 Fuchsia - debug': 'gn_debug_x64_fuchsia', 'V8 Linux - swarming staging': 'gn_release_x64', 'V8 Linux64 - cfi': 'gn_release_x64_cfi', 'V8 Linux64 UBSanVptr': 'gn_release_x64_ubsan_vptr', @@ -104,7 +106,7 @@ 'V8 Linux - predictable': 'gn_release_x86_predictable', 'V8 Linux - full debug': 'gn_full_debug_x86', 'V8 Linux - interpreted regexp': 'gn_release_x86_interpreted_regexp', - 'V8 Random Deopt Fuzzer - debug': 'gn_debug_x86', + 'V8 Random Deopt Fuzzer - debug': 'gn_debug_x64', }, 'client.v8.clusterfuzz': { 'V8 Mac64 ASAN - release builder': @@ -150,11 +152,11 @@ 'V8 Linux - mipsel - sim - builder': 'gn_release_simulate_mipsel', 'V8 Linux - mips64el - sim - builder': 'gn_release_simulate_mips64el', # PPC. - 'V8 Linux - ppc - sim': 'gyp_release_simulate_ppc', - 'V8 Linux - ppc64 - sim': 'gyp_release_simulate_ppc64', + 'V8 Linux - ppc - sim': 'gn_release_simulate_ppc', + 'V8 Linux - ppc64 - sim': 'gn_release_simulate_ppc64', # S390. - 'V8 Linux - s390 - sim': 'gyp_release_simulate_s390', - 'V8 Linux - s390x - sim': 'gyp_release_simulate_s390x', + 'V8 Linux - s390 - sim': 'gn_release_simulate_s390', + 'V8 Linux - s390x - sim': 'gn_release_simulate_s390x', }, 'client.v8.branches': { 'V8 Linux - beta branch': 'gn_release_x86', @@ -173,16 +175,17 @@ 'V8 mips64el - sim - stable branch': 'gn_release_simulate_mips64el', 'V8 mipsel - sim - beta branch': 'gn_release_simulate_mipsel', 'V8 mipsel - sim - stable branch': 'gn_release_simulate_mipsel', - 'V8 ppc - sim - beta branch': 'gyp_release_simulate_ppc', - 'V8 ppc - sim - stable branch': 'gyp_release_simulate_ppc', - 'V8 ppc64 - sim - beta branch': 'gyp_release_simulate_ppc64', - 'V8 ppc64 - sim - stable branch': 'gyp_release_simulate_ppc64', - 'V8 s390 - sim - beta branch': 'gyp_release_simulate_s390', - 'V8 s390 - sim - stable branch': 'gyp_release_simulate_s390', - 'V8 s390x - sim - beta branch': 'gyp_release_simulate_s390x', - 'V8 s390x - sim - stable branch': 'gyp_release_simulate_s390x', + 'V8 ppc - sim - beta branch': 'gn_release_simulate_ppc', + 'V8 ppc - sim - stable branch': 'gn_release_simulate_ppc', + 'V8 ppc64 - sim - beta branch': 'gn_release_simulate_ppc64', + 'V8 ppc64 - sim - stable branch': 'gn_release_simulate_ppc64', + 'V8 s390 - sim - beta branch': 'gn_release_simulate_s390', + 'V8 s390 - sim - stable branch': 'gn_release_simulate_s390', + 'V8 s390x - sim - beta branch': 'gn_release_simulate_s390x', + 'V8 s390x - sim - stable branch': 'gn_release_simulate_s390x', }, 'tryserver.v8': { + 'v8_fuchsia_rel_ng': 'gn_release_x64_fuchsia_trybot', 'v8_linux_rel_ng': 'gn_release_x86_gcmole_trybot', 'v8_linux_verify_csa_rel_ng': 'gn_release_x86_verify_csa', 'v8_linux_avx2_dbg': 'gn_debug_x86_trybot', @@ -194,8 +197,9 @@ 'v8_linux_nosnap_dbg': 'gn_debug_x86_no_snap_trybot', 'v8_linux_gcc_compile_rel': 'gn_release_x86_gcc_minimal_symbols', 'v8_linux_gcc_rel': 'gn_release_x86_gcc_minimal_symbols', + 'v8_linux_shared_compile_rel': 'gn_release_x86_shared_verify_heap', 'v8_linux64_gcc_compile_dbg': 'gn_debug_x64_gcc', - 'v8_linux64_rel_ng': 'gn_release_x64_valgrind_trybot', + 'v8_linux64_rel_ng': 'gn_release_x64_trybot', 'v8_linux64_verify_csa_rel_ng': 'gn_release_x64_verify_csa', 'v8_linux64_gyp_rel_ng': 'gyp_release_x64', 'v8_linux64_avx2_rel_ng': 'gn_release_x64_trybot', @@ -208,12 +212,13 @@ 'v8_linux64_tsan_concurrent_marking_rel_ng': 'gn_release_x64_tsan_concurrent_marking_minimal_symbols', 'v8_linux64_ubsan_rel_ng': 'gn_release_x64_ubsan_vptr_minimal_symbols', + 'v8_win_asan_rel_ng': 'gn_release_x86_asan_no_lsan', 'v8_win_dbg': 'gn_debug_x86_trybot', 'v8_win_compile_dbg': 'gn_debug_x86_trybot', 'v8_win_rel_ng': 'gn_release_x86_trybot', 'v8_win_nosnap_shared_rel_ng': 'gn_release_x86_no_snap_shared_minimal_symbols', - 'v8_win64_asan_rel_ng': 'gn_release_x64_asan_no_lsan', + 'v8_win64_clang_compile_rel': 'gn_release_x64_clang', 'v8_win64_dbg': 'gn_debug_x64_minimal_symbols', 'v8_win64_rel_ng': 'gn_release_x64_trybot', 'v8_mac_rel_ng': 'gn_release_x86_trybot', @@ -355,6 +360,14 @@ 'gn', 'release_bot', 'simulate_mipsel', 'swarming'], 'gn_release_simulate_mips64el': [ 'gn', 'release_bot', 'simulate_mips64el', 'swarming'], + 'gn_release_simulate_ppc': [ + 'gn', 'release_bot', 'simulate_ppc', 'swarming'], + 'gn_release_simulate_ppc64': [ + 'gn', 'release_bot', 'simulate_ppc64', 'swarming'], + 'gn_release_simulate_s390': [ + 'gn', 'release_bot', 'simulate_s390', 'swarming'], + 'gn_release_simulate_s390x': [ + 'gn', 'release_bot', 'simulate_s390x', 'swarming'], # GN debug configs for arm. 'gn_debug_arm': [ @@ -400,6 +413,10 @@ 'gn', 'release_bot', 'x64', 'v8_enable_concurrent_marking', 'swarming'], 'gn_release_x64_correctness_fuzzer' : [ 'gn', 'release_bot', 'x64', 'v8_correctness_fuzzer'], + 'gn_release_x64_fuchsia': [ + 'gn', 'release_bot', 'x64', 'fuchsia', 'swarming'], + 'gn_release_x64_fuchsia_trybot': [ + 'gn', 'release_trybot', 'x64', 'fuchsia', 'swarming'], 'gn_release_x64_gcc_coverage': [ 'gn', 'release_bot', 'x64', 'coverage', 'gcc'], 'gn_release_x64_internal': [ @@ -426,12 +443,6 @@ 'gn', 'release_bot', 'x64', 'edge', 'ubsan_vptr_recover', 'swarming'], 'gn_release_x64_ubsan_vptr_minimal_symbols': [ 'gn', 'release_bot', 'x64', 'ubsan_vptr', 'minimal_symbols', 'swarming'], - 'gn_release_x64_valgrind': [ - 'gn', 'release_bot', 'x64', 'swarming', 'valgrind', - 'no_custom_libcxx'], - 'gn_release_x64_valgrind_trybot': [ - 'gn', 'release_trybot', 'x64', 'swarming', 'valgrind', - 'no_custom_libcxx'], 'gn_release_x64_verify_csa': [ 'gn', 'release_bot', 'x64', 'swarming', 'dcheck_always_on', 'v8_enable_slow_dchecks', 'v8_verify_csa'], @@ -446,15 +457,14 @@ 'v8_optimized_debug', 'x64', 'asan', 'edge', 'swarming'], 'gn_debug_x64_custom': [ 'gn', 'debug_bot', 'x64', 'swarming', 'v8_snapshot_custom'], + 'gn_debug_x64_fuchsia': [ + 'gn', 'debug_bot', 'x64', 'fuchsia', 'swarming'], 'gn_debug_x64_gcc': [ 'gn', 'debug_bot', 'x64', 'gcc'], 'gn_debug_x64_minimal_symbols': [ 'gn', 'debug_bot', 'x64', 'minimal_symbols', 'swarming'], 'gn_debug_x64_trybot': [ 'gn', 'debug_trybot', 'x64', 'swarming'], - 'gn_debug_x64_valgrind': [ - 'gn', 'debug_bot', 'x64', 'swarming', 'valgrind', - 'no_custom_libcxx'], # GN debug configs for x86. 'gn_debug_x86': [ @@ -478,6 +488,8 @@ # GN release configs for x86. 'gn_release_x86': [ 'gn', 'release_bot', 'x86', 'swarming'], + 'gn_release_x86_asan_no_lsan': [ + 'gn', 'release_bot', 'x86', 'asan', 'clang', 'swarming'], 'gn_release_x86_disassembler': [ 'gn', 'release_bot', 'x86', 'v8_enable_disassembler'], 'gn_release_x86_gcc': [ @@ -516,16 +528,6 @@ 'gyp', 'release', 'mips', 'crosscompile', 'static', 'v8_no_i18n', 'v8_snapshot_none'], - # Gyp release configs for simulators. - 'gyp_release_simulate_ppc': [ - 'gyp', 'release_bot', 'simulate_ppc', 'swarming'], - 'gyp_release_simulate_ppc64': [ - 'gyp', 'release_bot', 'simulate_ppc64', 'swarming'], - 'gyp_release_simulate_s390': [ - 'gyp', 'release_bot', 'simulate_s390', 'swarming'], - 'gyp_release_simulate_s390x': [ - 'gyp', 'release_bot', 'simulate_s390x', 'swarming'], - # Gyp release configs for x64. 'gyp_release_x64': [ 'gyp', 'release_bot', 'x64', 'swarming'], @@ -608,6 +610,10 @@ 'gyp_defines': 'sanitizer_coverage=trace-pc-guard', }, + 'fuchsia': { + 'gn_args': 'target_os="fuchsia"', + }, + 'gcc': { # TODO(machenbach): Remove cxx11 restriction when updating gcc version. 'gn_args': 'is_clang=false use_cxx11=true', @@ -762,11 +768,6 @@ 'gn_args': 'is_ubsan_vptr=true is_ubsan_no_recover=false', }, - 'valgrind': { - 'gn_args': 'v8_has_valgrind=true', - 'gyp_defines': 'has_valgrind=1', - }, - 'v8_no_i18n': { 'gn_args': 'v8_enable_i18n_support=false icu_use_data_file=false', 'gyp_defines': 'v8_enable_i18n_support=0 icu_use_data_file_flag=0', diff --git a/deps/v8/samples/hello-world.cc b/deps/v8/samples/hello-world.cc index 8a2122c96bf..9d8058da417 100644 --- a/deps/v8/samples/hello-world.cc +++ b/deps/v8/samples/hello-world.cc @@ -9,53 +9,53 @@ #include "include/libplatform/libplatform.h" #include "include/v8.h" -using namespace v8; - int main(int argc, char* argv[]) { // Initialize V8. - V8::InitializeICUDefaultLocation(argv[0]); - V8::InitializeExternalStartupData(argv[0]); - Platform* platform = platform::CreateDefaultPlatform(); - V8::InitializePlatform(platform); - V8::Initialize(); + v8::V8::InitializeICUDefaultLocation(argv[0]); + v8::V8::InitializeExternalStartupData(argv[0]); + v8::Platform* platform = v8::platform::CreateDefaultPlatform(); + v8::V8::InitializePlatform(platform); + v8::V8::Initialize(); // Create a new Isolate and make it the current one. - Isolate::CreateParams create_params; + v8::Isolate::CreateParams create_params; create_params.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator(); - Isolate* isolate = Isolate::New(create_params); + v8::Isolate* isolate = v8::Isolate::New(create_params); { - Isolate::Scope isolate_scope(isolate); + v8::Isolate::Scope isolate_scope(isolate); // Create a stack-allocated handle scope. - HandleScope handle_scope(isolate); + v8::HandleScope handle_scope(isolate); // Create a new context. - Local context = Context::New(isolate); + v8::Local context = v8::Context::New(isolate); // Enter the context for compiling and running the hello world script. - Context::Scope context_scope(context); + v8::Context::Scope context_scope(context); // Create a string containing the JavaScript source code. - Local source = - String::NewFromUtf8(isolate, "'Hello' + ', World!'", - NewStringType::kNormal).ToLocalChecked(); + v8::Local source = + v8::String::NewFromUtf8(isolate, "'Hello' + ', World!'", + v8::NewStringType::kNormal) + .ToLocalChecked(); // Compile the source code. - Local + diff --git a/deps/v8/tools/ic-processor b/deps/v8/tools/ic-processor index f41b4471742..c33052cdf6a 100755 --- a/deps/v8/tools/ic-processor +++ b/deps/v8/tools/ic-processor @@ -36,6 +36,6 @@ fi cat $log_file | $d8_exec $tools_path/splaytree.js $tools_path/codemap.js \ $tools_path/csvparser.js $tools_path/consarray.js \ $tools_path/profile.js $tools_path/profile_view.js \ - $tools_path/logreader.js $tools_path/ic-processor.js \ - $tools_path/SourceMap.js \ + $tools_path/logreader.js $tools_path/arguments.js \ + $tools_path/ic-processor.js $tools_path/SourceMap.js \ $tools_path/ic-processor-driver.js -- $@ 2>/dev/null diff --git a/deps/v8/tools/ic-processor.js b/deps/v8/tools/ic-processor.js index 9897de2c6cb..e2d09a45d19 100644 --- a/deps/v8/tools/ic-processor.js +++ b/deps/v8/tools/ic-processor.js @@ -159,91 +159,20 @@ IcProcessor.prototype.processPropertyIC = function ( " (map 0x" + map.toString(16) + ")"); } -function padLeft(s, len) { - s = s.toString(); - if (s.length < len) { - var padLength = len - s.length; - if (!(padLength in padLeft)) { - padLeft[padLength] = new Array(padLength + 1).join(' '); - } - s = padLeft[padLength] + s; - } - return s; -}; - - -function ArgumentsProcessor(args) { - this.args_ = args; - this.result_ = ArgumentsProcessor.DEFAULTS; - - this.argsDispatch_ = { - '--range': ['range', 'auto,auto', - 'Specify the range limit as [start],[end]'], - '--source-map': ['sourceMap', null, - 'Specify the source map that should be used for output'] - }; -}; - -ArgumentsProcessor.DEFAULTS = { - logFileName: 'v8.log', - range: 'auto,auto', -}; - - -ArgumentsProcessor.prototype.parse = function() { - while (this.args_.length) { - var arg = this.args_.shift(); - if (arg.charAt(0) != '-') { - this.result_.logFileName = arg; - continue; - } - var userValue = null; - var eqPos = arg.indexOf('='); - if (eqPos != -1) { - userValue = arg.substr(eqPos + 1); - arg = arg.substr(0, eqPos); - } - if (arg in this.argsDispatch_) { - var dispatch = this.argsDispatch_[arg]; - this.result_[dispatch[0]] = userValue == null ? dispatch[1] : userValue; - } else { - return false; - } +class ArgumentsProcessor extends BaseArgumentsProcessor { + getArgsDispatch() { + return { + '--range': ['range', 'auto,auto', + 'Specify the range limit as [start],[end]'], + '--source-map': ['sourceMap', null, + 'Specify the source map that should be used for output'] + }; } - return true; -}; - - -ArgumentsProcessor.prototype.result = function() { - return this.result_; -}; - - -ArgumentsProcessor.prototype.printUsageAndExit = function() { - - function padRight(s, len) { - s = s.toString(); - if (s.length < len) { - s = s + (new Array(len - s.length + 1).join(' ')); - } - return s; - } - - print('Cmdline args: [options] [log-file-name]\n' + - 'Default log file name is "' + - ArgumentsProcessor.DEFAULTS.logFileName + '".\n'); - print('Options:'); - for (var arg in this.argsDispatch_) { - var synonyms = [arg]; - var dispatch = this.argsDispatch_[arg]; - for (var synArg in this.argsDispatch_) { - if (arg !== synArg && dispatch === this.argsDispatch_[synArg]) { - synonyms.push(synArg); - delete this.argsDispatch_[synArg]; - } - } - print(' ' + padRight(synonyms.join(', '), 20) + " " + dispatch[2]); + getDefaultResults() { + return { + logFileName: 'v8.log', + range: 'auto,auto', + }; } - quit(2); -}; +} diff --git a/deps/v8/tools/js2c.py b/deps/v8/tools/js2c.py index 7c92a4ef6ed..105be0c1b63 100755 --- a/deps/v8/tools/js2c.py +++ b/deps/v8/tools/js2c.py @@ -125,6 +125,9 @@ def add_arg(str): end = end + 1 # Remember to add the last match. add_arg(lines[last_match:end-1]) + if arg_index[0] < len(macro.args) -1: + lineno = lines.count(os.linesep, 0, start) + 1 + raise Error('line %s: Too few arguments for macro "%s"' % (lineno, name_pattern.pattern)) result = macro.expand(mapping) # Replace the occurrence of the macro with the expansion lines = lines[:start] + result + lines[end:] diff --git a/deps/v8/tools/jsfunfuzz/download_jsfunfuzz.py b/deps/v8/tools/jsfunfuzz/download_jsfunfuzz.py index 19eff02438f..2925213ced5 100644 --- a/deps/v8/tools/jsfunfuzz/download_jsfunfuzz.py +++ b/deps/v8/tools/jsfunfuzz/download_jsfunfuzz.py @@ -18,5 +18,3 @@ '-s', SHA1_PATH, '--platform=linux*' ]) -else: - print 'Skipping jsfunfuzz download as jsfunfuzz is not set in gyp flags.' diff --git a/deps/v8/tools/linux-tick-processor b/deps/v8/tools/linux-tick-processor index 0b491c3633f..705e07d514d 100755 --- a/deps/v8/tools/linux-tick-processor +++ b/deps/v8/tools/linux-tick-processor @@ -37,6 +37,6 @@ cat $log_file | $d8_exec --enable-os-system \ $tools_path/splaytree.js $tools_path/codemap.js \ $tools_path/csvparser.js $tools_path/consarray.js \ $tools_path/profile.js $tools_path/profile_view.js \ - $tools_path/logreader.js $tools_path/tickprocessor.js \ - $tools_path/SourceMap.js \ + $tools_path/logreader.js $tools_path/arguments.js \ + $tools_path/tickprocessor.js $tools_path/SourceMap.js \ $tools_path/tickprocessor-driver.js -- $@ 2>/dev/null diff --git a/deps/v8/tools/luci-go/linux64/isolate.sha1 b/deps/v8/tools/luci-go/linux64/isolate.sha1 deleted file mode 100644 index acecc79c484..00000000000 --- a/deps/v8/tools/luci-go/linux64/isolate.sha1 +++ /dev/null @@ -1 +0,0 @@ -21410c557b49620e8a44ec0f861f94605bdc6d5c diff --git a/deps/v8/tools/luci-go/mac64/isolate.sha1 b/deps/v8/tools/luci-go/mac64/isolate.sha1 deleted file mode 100644 index 16a7dd6a07f..00000000000 --- a/deps/v8/tools/luci-go/mac64/isolate.sha1 +++ /dev/null @@ -1 +0,0 @@ -1966687828a068eee4c5da45bbb8afd91cddda6f diff --git a/deps/v8/tools/luci-go/win64/isolate.exe.sha1 b/deps/v8/tools/luci-go/win64/isolate.exe.sha1 deleted file mode 100644 index 6f5491d9ddb..00000000000 --- a/deps/v8/tools/luci-go/win64/isolate.exe.sha1 +++ /dev/null @@ -1 +0,0 @@ -35482264cea0f9b9dd2efe0a01620557fc15b7c1 diff --git a/deps/v8/tools/mb/mb.py b/deps/v8/tools/mb/mb.py index b37c9dde7d6..86a5e575fd2 100755 --- a/deps/v8/tools/mb/mb.py +++ b/deps/v8/tools/mb/mb.py @@ -781,7 +781,7 @@ def RunGNGen(self, vals): # TODO(machenbach): Remove after GYP_MSVS_VERSION is removed on infra side. env = {} env.update(os.environ) - env['GYP_MSVS_VERSION'] = '2015' + env['GYP_MSVS_VERSION'] = '2017' ret, _, _ = self.Run(cmd, env=env) if ret: diff --git a/deps/v8/tools/memory/asan/blacklist_win.txt b/deps/v8/tools/memory/asan/blacklist_win.txt new file mode 100644 index 00000000000..2bb1aa9714f --- /dev/null +++ b/deps/v8/tools/memory/asan/blacklist_win.txt @@ -0,0 +1,4 @@ +# The rules in this file are only applied at compile time. If you can modify the +# source in question, consider function attributes to disable instrumentation. +# +# Please think twice before you add or remove these rules. \ No newline at end of file diff --git a/deps/v8/tools/perf-to-html.py b/deps/v8/tools/perf-to-html.py index 7ec9c50f218..ac9f53f6179 100755 --- a/deps/v8/tools/perf-to-html.py +++ b/deps/v8/tools/perf-to-html.py @@ -70,20 +70,24 @@ def __init__(self, test_name, count, hasScoreUnits, result, sigma, self.notable_ = 0 self.percentage_string_ = "" # compute notability and significance. - if hasScoreUnits: - compare_num = 100*self.result_/self.master_result_ - 100 - else: - compare_num = 100*self.master_result_/self.result_ - 100 - if abs(compare_num) > 0.1: - self.percentage_string_ = "%3.1f" % (compare_num) - z = ComputeZ(self.master_result_, self.master_sigma_, self.result_, count) - p = ComputeProbability(z) - if p < PROBABILITY_CONSIDERED_SIGNIFICANT: - self.significant_ = True - if compare_num >= PERCENT_CONSIDERED_SIGNIFICANT: - self.notable_ = 1 - elif compare_num <= -PERCENT_CONSIDERED_SIGNIFICANT: - self.notable_ = -1 + try: + if hasScoreUnits: + compare_num = 100*self.result_/self.master_result_ - 100 + else: + compare_num = 100*self.master_result_/self.result_ - 100 + if abs(compare_num) > 0.1: + self.percentage_string_ = "%3.1f" % (compare_num) + z = ComputeZ(self.master_result_, self.master_sigma_, self.result_, count) + p = ComputeProbability(z) + if p < PROBABILITY_CONSIDERED_SIGNIFICANT: + self.significant_ = True + if compare_num >= PERCENT_CONSIDERED_SIGNIFICANT: + self.notable_ = 1 + elif compare_num <= -PERCENT_CONSIDERED_SIGNIFICANT: + self.notable_ = -1 + except ZeroDivisionError: + self.percentage_string_ = "NaN" + self.significant_ = True def result(self): return self.result_ diff --git a/deps/v8/tools/plot-timer-events b/deps/v8/tools/plot-timer-events index b65937cfe6d..3294e858620 100755 --- a/deps/v8/tools/plot-timer-events +++ b/deps/v8/tools/plot-timer-events @@ -78,8 +78,9 @@ fi cat $log_file | $d8_exec $tools_path/csvparser.js $tools_path/splaytree.js \ $tools_path/codemap.js $tools_path/profile.js $tools_path/profile_view.js \ - $tools_path/logreader.js $tools_path/tickprocessor.js \ - $tools_path/profviz/composer.js $tools_path/profviz/stdio.js \ + $tools_path/logreader.js $tools_path/arguments.js \ + $tools_path/tickprocessor.js$tools_path/profviz/composer.js \ + $tools_path/profviz/stdio.js \ -- $@ $options 2>/dev/null > timer-events.plot success=$? diff --git a/deps/v8/tools/presubmit.py b/deps/v8/tools/presubmit.py index 99486cce842..72affb510b8 100755 --- a/deps/v8/tools/presubmit.py +++ b/deps/v8/tools/presubmit.py @@ -54,16 +54,11 @@ # build/header_guard: Our guards have the form "V8_FOO_H_", not "SRC_FOO_H_". # build/include_what_you_use: Started giving false positives for variables # named "string" and "map" assuming that you needed to include STL headers. -# TODO(bmeurer): Fix and re-enable readability/check -# http://crrev.com/2199323003 relands. LINT_RULES = """ -build/header_guard -build/include_what_you_use --build/namespaces --readability/check -readability/fn_size -+readability/streams -runtime/references """.split() @@ -228,8 +223,9 @@ def IgnoreFile(self, name): or (name in CppLintProcessor.IGNORE_LINT)) def GetPathsToSearch(self): - return ['src', 'include', 'samples', join('test', 'cctest'), - join('test', 'unittests'), join('test', 'inspector')] + dirs = ['include', 'samples', 'src'] + test_dirs = ['cctest', 'common', 'fuzzer', 'inspector', 'unittests'] + return dirs + [join('test', dir) for dir in test_dirs] def GetCpplintScript(self, prio_path): for path in [prio_path] + os.environ["PATH"].split(os.pathsep): @@ -366,7 +362,6 @@ def IgnoreDir(self, name): 'regexp-pcre.js', 'resources-123.js', 'rjsmin.py', - 'script-breakpoint.h', 'sqlite.js', 'sqlite-change-heap.js', 'sqlite-pointer-masking.js', diff --git a/deps/v8/tools/profviz/profviz.js b/deps/v8/tools/profviz/profviz.js index 8ac0881eb6f..a7593a6f65f 100644 --- a/deps/v8/tools/profviz/profviz.js +++ b/deps/v8/tools/profviz/profviz.js @@ -33,6 +33,7 @@ var worker_scripts = [ "../profile.js", "../profile_view.js", "../logreader.js", + "../arguments.js", "../tickprocessor.js", "composer.js", "gnuplot-4.6.3-emscripten.js" diff --git a/deps/v8/tools/release/check_clusterfuzz.py b/deps/v8/tools/release/check_clusterfuzz.py index 0fdffd93ac2..8af835136b7 100755 --- a/deps/v8/tools/release/check_clusterfuzz.py +++ b/deps/v8/tools/release/check_clusterfuzz.py @@ -214,7 +214,8 @@ def Main(): issues = APIRequest(key, **args) assert issues is not None for issue in issues: - if re.match(spec["crash_state"], issue["crash_state"]): + if (re.match(spec["crash_state"], issue["crash_state"]) and + not issue.get('has_bug_flag')): results.append(issue["id"]) if options.results_file: diff --git a/deps/v8/tools/run-deopt-fuzzer.py b/deps/v8/tools/run-deopt-fuzzer.py index 1f50e026024..ac2344b530f 100755 --- a/deps/v8/tools/run-deopt-fuzzer.py +++ b/deps/v8/tools/run-deopt-fuzzer.py @@ -1,492 +1,14 @@ #!/usr/bin/env python # -# Copyright 2012 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# Copyright 2017 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. -import json -import math -import multiprocessing -import optparse -import os -from os.path import join -import random -import shlex -import subprocess import sys -import time - -from testrunner.local import execution -from testrunner.local import progress -from testrunner.local import testsuite -from testrunner.local import utils -from testrunner.local import verbose -from testrunner.objects import context - - -# Base dir of the v8 checkout to be used as cwd. -BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - -ARCH_GUESS = utils.DefaultArch() -DEFAULT_TESTS = ["mjsunit", "webkit"] -TIMEOUT_DEFAULT = 60 -TIMEOUT_SCALEFACTOR = {"debug" : 4, - "release" : 1 } - -MODE_FLAGS = { - "debug" : ["--nohard-abort", "--enable-slow-asserts", - "--verify-heap", "--noconcurrent-recompilation"], - "release" : ["--nohard-abort", "--noconcurrent-recompilation"]} - -SUPPORTED_ARCHS = ["android_arm", - "android_ia32", - "arm", - "ia32", - "ppc", - "ppc64", - "s390", - "s390x", - "mipsel", - "x64"] -# Double the timeout for these: -SLOW_ARCHS = ["android_arm", - "android_ia32", - "arm", - "mipsel"] -MAX_DEOPT = 1000000000 -DISTRIBUTION_MODES = ["smooth", "random"] - - -class RandomDistribution: - def __init__(self, seed=None): - seed = seed or random.randint(1, sys.maxint) - print "Using random distribution with seed %d" % seed - self._random = random.Random(seed) - - def Distribute(self, n, m): - if n > m: - n = m - return self._random.sample(xrange(1, m + 1), n) - - -class SmoothDistribution: - """Distribute n numbers into the interval [1:m]. - F1: Factor of the first derivation of the distribution function. - F2: Factor of the second derivation of the distribution function. - With F1 and F2 set to 0, the distribution will be equal. - """ - def __init__(self, factor1=2.0, factor2=0.2): - self._factor1 = factor1 - self._factor2 = factor2 - - def Distribute(self, n, m): - if n > m: - n = m - if n <= 1: - return [ 1 ] - - result = [] - x = 0.0 - dx = 1.0 - ddx = self._factor1 - dddx = self._factor2 - for i in range(0, n): - result += [ x ] - x += dx - dx += ddx - ddx += dddx - - # Project the distribution into the interval [0:M]. - result = [ x * m / result[-1] for x in result ] - - # Equalize by n. The closer n is to m, the more equal will be the - # distribution. - for (i, x) in enumerate(result): - # The value of x if it was equally distributed. - equal_x = i / float(n - 1) * float(m - 1) + 1 - - # Difference factor between actual and equal distribution. - diff = 1 - (x / equal_x) - - # Equalize x dependent on the number of values to distribute. - result[i] = int(x + (i + 1) * diff) - return result - - -def Distribution(options): - if options.distribution_mode == "random": - return RandomDistribution(options.seed) - if options.distribution_mode == "smooth": - return SmoothDistribution(options.distribution_factor1, - options.distribution_factor2) - - -def BuildOptions(): - result = optparse.OptionParser() - result.add_option("--arch", - help=("The architecture to run tests for, " - "'auto' or 'native' for auto-detect"), - default="ia32,x64,arm") - result.add_option("--arch-and-mode", - help="Architecture and mode in the format 'arch.mode'", - default=None) - result.add_option("--asan", - help="Regard test expectations for ASAN", - default=False, action="store_true") - result.add_option("--buildbot", - help="Adapt to path structure used on buildbots", - default=False, action="store_true") - result.add_option("--dcheck-always-on", - help="Indicates that V8 was compiled with DCHECKs enabled", - default=False, action="store_true") - result.add_option("--command-prefix", - help="Prepended to each shell command used to run a test", - default="") - result.add_option("--coverage", help=("Exponential test coverage " - "(range 0.0, 1.0) -- 0.0: one test, 1.0 all tests (slow)"), - default=0.4, type="float") - result.add_option("--coverage-lift", help=("Lifts test coverage for tests " - "with a small number of deopt points (range 0, inf)"), - default=20, type="int") - result.add_option("--download-data", help="Download missing test suite data", - default=False, action="store_true") - result.add_option("--distribution-factor1", help=("Factor of the first " - "derivation of the distribution function"), default=2.0, - type="float") - result.add_option("--distribution-factor2", help=("Factor of the second " - "derivation of the distribution function"), default=0.7, - type="float") - result.add_option("--distribution-mode", help=("How to select deopt points " - "for a given test (smooth|random)"), - default="smooth") - result.add_option("--dump-results-file", help=("Dump maximum number of " - "deopt points per test to a file")) - result.add_option("--extra-flags", - help="Additional flags to pass to each test command", - default="") - result.add_option("--isolates", help="Whether to test isolates", - default=False, action="store_true") - result.add_option("-j", help="The number of parallel tasks to run", - default=0, type="int") - result.add_option("-m", "--mode", - help="The test modes in which to run (comma-separated)", - default="release,debug") - result.add_option("--outdir", help="Base directory with compile output", - default="out") - result.add_option("-p", "--progress", - help=("The style of progress indicator" - " (verbose, dots, color, mono)"), - choices=progress.PROGRESS_INDICATORS.keys(), - default="mono") - result.add_option("--shard-count", - help="Split testsuites into this number of shards", - default=1, type="int") - result.add_option("--shard-run", - help="Run this shard from the split up tests.", - default=1, type="int") - result.add_option("--shell-dir", help="Directory containing executables", - default="") - result.add_option("--seed", help="The seed for the random distribution", - type="int") - result.add_option("-t", "--timeout", help="Timeout in seconds", - default= -1, type="int") - result.add_option("-v", "--verbose", help="Verbose output", - default=False, action="store_true") - result.add_option("--random-seed", default=0, dest="random_seed", - help="Default seed for initializing random generator") - return result - - -def ProcessOptions(options): - global VARIANT_FLAGS - - # Architecture and mode related stuff. - if options.arch_and_mode: - tokens = options.arch_and_mode.split(".") - options.arch = tokens[0] - options.mode = tokens[1] - options.mode = options.mode.split(",") - for mode in options.mode: - if not mode.lower() in ["debug", "release"]: - print "Unknown mode %s" % mode - return False - if options.arch in ["auto", "native"]: - options.arch = ARCH_GUESS - options.arch = options.arch.split(",") - for arch in options.arch: - if not arch in SUPPORTED_ARCHS: - print "Unknown architecture %s" % arch - return False - - # Special processing of other options, sorted alphabetically. - options.command_prefix = shlex.split(options.command_prefix) - options.extra_flags = shlex.split(options.extra_flags) - if options.j == 0: - options.j = multiprocessing.cpu_count() - while options.random_seed == 0: - options.random_seed = random.SystemRandom().randint(-2147483648, 2147483647) - if not options.distribution_mode in DISTRIBUTION_MODES: - print "Unknown distribution mode %s" % options.distribution_mode - return False - if options.distribution_factor1 < 0.0: - print ("Distribution factor1 %s is out of range. Defaulting to 0.0" - % options.distribution_factor1) - options.distribution_factor1 = 0.0 - if options.distribution_factor2 < 0.0: - print ("Distribution factor2 %s is out of range. Defaulting to 0.0" - % options.distribution_factor2) - options.distribution_factor2 = 0.0 - if options.coverage < 0.0 or options.coverage > 1.0: - print ("Coverage %s is out of range. Defaulting to 0.4" - % options.coverage) - options.coverage = 0.4 - if options.coverage_lift < 0: - print ("Coverage lift %s is out of range. Defaulting to 0" - % options.coverage_lift) - options.coverage_lift = 0 - return True - - -def ShardTests(tests, shard_count, shard_run): - if shard_count < 2: - return tests - if shard_run < 1 or shard_run > shard_count: - print "shard-run not a valid number, should be in [1:shard-count]" - print "defaulting back to running all tests" - return tests - count = 0 - shard = [] - for test in tests: - if count % shard_count == shard_run - 1: - shard.append(test) - count += 1 - return shard - - -def Main(): - # Use the v8 root as cwd as some test cases use "load" with relative paths. - os.chdir(BASE_DIR) - - parser = BuildOptions() - (options, args) = parser.parse_args() - if not ProcessOptions(options): - parser.print_help() - return 1 - - exit_code = 0 - - suite_paths = utils.GetSuitePaths(join(BASE_DIR, "test")) - - if len(args) == 0: - suite_paths = [ s for s in suite_paths if s in DEFAULT_TESTS ] - else: - args_suites = set() - for arg in args: - suite = arg.split(os.path.sep)[0] - if not suite in args_suites: - args_suites.add(suite) - suite_paths = [ s for s in suite_paths if s in args_suites ] - - suites = [] - for root in suite_paths: - suite = testsuite.TestSuite.LoadTestSuite( - os.path.join(BASE_DIR, "test", root)) - if suite: - suites.append(suite) - - if options.download_data: - for s in suites: - s.DownloadData() - - for mode in options.mode: - for arch in options.arch: - try: - code = Execute(arch, mode, args, options, suites, BASE_DIR) - exit_code = exit_code or code - except KeyboardInterrupt: - return 2 - return exit_code - - -def CalculateNTests(m, options): - """Calculates the number of tests from m deopt points with exponential - coverage. - The coverage is expected to be between 0.0 and 1.0. - The 'coverage lift' lifts the coverage for tests with smaller m values. - """ - c = float(options.coverage) - l = float(options.coverage_lift) - return int(math.pow(m, (m * c + l) / (m + l))) - - -def Execute(arch, mode, args, options, suites, workspace): - print(">>> Running tests for %s.%s" % (arch, mode)) - - dist = Distribution(options) - - shell_dir = options.shell_dir - if not shell_dir: - if options.buildbot: - shell_dir = os.path.join(workspace, options.outdir, mode) - mode = mode.lower() - else: - shell_dir = os.path.join(workspace, options.outdir, - "%s.%s" % (arch, mode)) - shell_dir = os.path.relpath(shell_dir) - - # Populate context object. - mode_flags = MODE_FLAGS[mode] - timeout = options.timeout - if timeout == -1: - # Simulators are slow, therefore allow a longer default timeout. - if arch in SLOW_ARCHS: - timeout = 2 * TIMEOUT_DEFAULT; - else: - timeout = TIMEOUT_DEFAULT; - - timeout *= TIMEOUT_SCALEFACTOR[mode] - ctx = context.Context(arch, mode, shell_dir, - mode_flags, options.verbose, - timeout, options.isolates, - options.command_prefix, - options.extra_flags, - False, # Keep i18n on by default. - options.random_seed, - True, # No sorting of test cases. - 0, # Don't rerun failing tests. - 0, # No use of a rerun-failing-tests maximum. - False, # No predictable mode. - False, # No no_harness mode. - False, # Don't use perf data. - False) # Coverage not supported. - - # Find available test suites and read test cases from them. - variables = { - "arch": arch, - "asan": options.asan, - "deopt_fuzzer": True, - "gc_stress": False, - "gcov_coverage": False, - "isolates": options.isolates, - "mode": mode, - "no_i18n": False, - "no_snap": False, - "simulator": utils.UseSimulator(arch), - "system": utils.GuessOS(), - "tsan": False, - "msan": False, - "dcheck_always_on": options.dcheck_always_on, - "novfp3": False, - "predictable": False, - "byteorder": sys.byteorder, - "no_harness": False, - "ubsan_vptr": False, - } - all_tests = [] - num_tests = 0 - test_id = 0 - - # Remember test case prototypes for the fuzzing phase. - test_backup = dict((s, []) for s in suites) - - for s in suites: - s.ReadStatusFile(variables) - s.ReadTestCases(ctx) - if len(args) > 0: - s.FilterTestCasesByArgs(args) - all_tests += s.tests - s.FilterTestCasesByStatus(False) - test_backup[s] = s.tests - analysis_flags = ["--deopt-every-n-times", "%d" % MAX_DEOPT, - "--print-deopt-stress"] - s.tests = [ t.CopyAddingFlags(t.variant, analysis_flags) for t in s.tests ] - num_tests += len(s.tests) - for t in s.tests: - t.id = test_id - test_id += 1 - - if num_tests == 0: - print "No tests to run." - return 0 - - print(">>> Collection phase") - progress_indicator = progress.PROGRESS_INDICATORS[options.progress]() - runner = execution.Runner(suites, progress_indicator, ctx) - - exit_code = runner.Run(options.j) - - print(">>> Analysis phase") - num_tests = 0 - test_id = 0 - for s in suites: - test_results = {} - for t in s.tests: - for line in t.output.stdout.splitlines(): - if line.startswith("=== Stress deopt counter: "): - test_results[t.path] = MAX_DEOPT - int(line.split(" ")[-1]) - for t in s.tests: - if t.path not in test_results: - print "Missing results for %s" % t.path - if options.dump_results_file: - results_dict = dict((t.path, n) for (t, n) in test_results.iteritems()) - with file("%s.%d.txt" % (dump_results_file, time.time()), "w") as f: - f.write(json.dumps(results_dict)) - - # Reset tests and redistribute the prototypes from the collection phase. - s.tests = [] - if options.verbose: - print "Test distributions:" - for t in test_backup[s]: - max_deopt = test_results.get(t.path, 0) - if max_deopt == 0: - continue - n_deopt = CalculateNTests(max_deopt, options) - distribution = dist.Distribute(n_deopt, max_deopt) - if options.verbose: - print "%s %s" % (t.path, distribution) - for i in distribution: - fuzzing_flags = ["--deopt-every-n-times", "%d" % i] - s.tests.append(t.CopyAddingFlags(t.variant, fuzzing_flags)) - num_tests += len(s.tests) - for t in s.tests: - t.id = test_id - test_id += 1 - - if num_tests == 0: - print "No tests to run." - return 0 - - print(">>> Deopt fuzzing phase (%d test cases)" % num_tests) - progress_indicator = progress.PROGRESS_INDICATORS[options.progress]() - runner = execution.Runner(suites, progress_indicator, ctx) - code = runner.Run(options.j) - return exit_code or code +from testrunner import deopt_fuzzer if __name__ == "__main__": - sys.exit(Main()) + sys.exit(deopt_fuzzer.DeoptFuzzer().execute()) diff --git a/deps/v8/tools/run-tests.py b/deps/v8/tools/run-tests.py index 6dfbea25014..2ca93855485 100755 --- a/deps/v8/tools/run-tests.py +++ b/deps/v8/tools/run-tests.py @@ -1,971 +1,14 @@ #!/usr/bin/env python # -# Copyright 2012 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# Copyright 2017 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. -from collections import OrderedDict -import itertools -import json -import multiprocessing -import optparse -import os -from os.path import getmtime, isdir, join -import platform -import random -import shlex -import subprocess import sys -import time - -from testrunner.local import execution -from testrunner.local import progress -from testrunner.local import testsuite -from testrunner.local.variants import ALL_VARIANTS -from testrunner.local import utils -from testrunner.local import verbose -from testrunner.network import network_execution -from testrunner.objects import context - - -# Base dir of the v8 checkout to be used as cwd. -BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - -DEFAULT_OUT_GN = "out.gn" - -ARCH_GUESS = utils.DefaultArch() - -# Map of test name synonyms to lists of test suites. Should be ordered by -# expected runtimes (suites with slow test cases first). These groups are -# invoked in separate steps on the bots. -TEST_MAP = { - # This needs to stay in sync with test/bot_default.isolate. - "bot_default": [ - "debugger", - "mjsunit", - "cctest", - "wasm-spec-tests", - "inspector", - "webkit", - "mkgrokdump", - "fuzzer", - "message", - "preparser", - "intl", - "unittests", - ], - # This needs to stay in sync with test/default.isolate. - "default": [ - "debugger", - "mjsunit", - "cctest", - "wasm-spec-tests", - "inspector", - "mkgrokdump", - "fuzzer", - "message", - "preparser", - "intl", - "unittests", - ], - # This needs to stay in sync with test/optimize_for_size.isolate. - "optimize_for_size": [ - "debugger", - "mjsunit", - "cctest", - "inspector", - "webkit", - "intl", - ], - "unittests": [ - "unittests", - ], -} - -TIMEOUT_DEFAULT = 60 - -# Variants ordered by expected runtime (slowest first). -VARIANTS = ["default"] - -MORE_VARIANTS = [ - "stress", - "nooptimization", - "stress_asm_wasm", - "wasm_traps", -] - -EXHAUSTIVE_VARIANTS = MORE_VARIANTS + VARIANTS - -VARIANT_ALIASES = { - # The default for developer workstations. - "dev": VARIANTS, - # Additional variants, run on all bots. - "more": MORE_VARIANTS, - # TODO(machenbach): Deprecate this after the step is removed on infra side. - # Additional variants, run on a subset of bots. - "extra": [], -} - -DEBUG_FLAGS = ["--nohard-abort", "--enable-slow-asserts", "--verify-heap"] -RELEASE_FLAGS = ["--nohard-abort"] - -MODES = { - "debug": { - "flags": DEBUG_FLAGS, - "timeout_scalefactor": 4, - "status_mode": "debug", - "execution_mode": "debug", - "output_folder": "debug", - }, - "optdebug": { - "flags": DEBUG_FLAGS, - "timeout_scalefactor": 4, - "status_mode": "debug", - "execution_mode": "debug", - "output_folder": "optdebug", - }, - "release": { - "flags": RELEASE_FLAGS, - "timeout_scalefactor": 1, - "status_mode": "release", - "execution_mode": "release", - "output_folder": "release", - }, - # Normal trybot release configuration. There, dchecks are always on which - # implies debug is set. Hence, the status file needs to assume debug-like - # behavior/timeouts. - "tryrelease": { - "flags": RELEASE_FLAGS, - "timeout_scalefactor": 1, - "status_mode": "debug", - "execution_mode": "release", - "output_folder": "release", - }, - # This mode requires v8 to be compiled with dchecks and slow dchecks. - "slowrelease": { - "flags": RELEASE_FLAGS + ["--enable-slow-asserts"], - "timeout_scalefactor": 2, - "status_mode": "debug", - "execution_mode": "release", - "output_folder": "release", - }, -} - -GC_STRESS_FLAGS = ["--gc-interval=500", "--stress-compaction", - "--concurrent-recompilation-queue-length=64", - "--concurrent-recompilation-delay=500", - "--concurrent-recompilation"] - -SUPPORTED_ARCHS = ["android_arm", - "android_arm64", - "android_ia32", - "android_x64", - "arm", - "ia32", - "mips", - "mipsel", - "mips64", - "mips64el", - "s390", - "s390x", - "ppc", - "ppc64", - "x64", - "x32", - "arm64"] -# Double the timeout for these: -SLOW_ARCHS = ["android_arm", - "android_arm64", - "android_ia32", - "android_x64", - "arm", - "mips", - "mipsel", - "mips64", - "mips64el", - "s390", - "s390x", - "arm64"] - - -def BuildOptions(): - result = optparse.OptionParser() - result.usage = '%prog [options] [tests]' - result.description = """TESTS: %s""" % (TEST_MAP["default"]) - result.add_option("--arch", - help=("The architecture to run tests for, " - "'auto' or 'native' for auto-detect: %s" % SUPPORTED_ARCHS)) - result.add_option("--arch-and-mode", - help="Architecture and mode in the format 'arch.mode'") - result.add_option("--asan", - help="Regard test expectations for ASAN", - default=False, action="store_true") - result.add_option("--sancov-dir", - help="Directory where to collect coverage data") - result.add_option("--cfi-vptr", - help="Run tests with UBSAN cfi_vptr option.", - default=False, action="store_true") - result.add_option("--buildbot", - help="Adapt to path structure used on buildbots", - default=False, action="store_true") - result.add_option("--dcheck-always-on", - help="Indicates that V8 was compiled with DCHECKs enabled", - default=False, action="store_true") - result.add_option("--novfp3", - help="Indicates that V8 was compiled without VFP3 support", - default=False, action="store_true") - result.add_option("--cat", help="Print the source of the tests", - default=False, action="store_true") - result.add_option("--slow-tests", - help="Regard slow tests (run|skip|dontcare)", - default="dontcare") - result.add_option("--pass-fail-tests", - help="Regard pass|fail tests (run|skip|dontcare)", - default="dontcare") - result.add_option("--gc-stress", - help="Switch on GC stress mode", - default=False, action="store_true") - result.add_option("--gcov-coverage", - help="Uses executables instrumented for gcov coverage", - default=False, action="store_true") - result.add_option("--command-prefix", - help="Prepended to each shell command used to run a test", - default="") - result.add_option("--download-data", help="Download missing test suite data", - default=False, action="store_true") - result.add_option("--download-data-only", - help="Deprecated", - default=False, action="store_true") - result.add_option("--extra-flags", - help="Additional flags to pass to each test command", - action="append", default=[]) - result.add_option("--isolates", help="Whether to test isolates", - default=False, action="store_true") - result.add_option("-j", help="The number of parallel tasks to run", - default=0, type="int") - result.add_option("-m", "--mode", - help="The test modes in which to run (comma-separated," - " uppercase for ninja and buildbot builds): %s" % MODES.keys()) - result.add_option("--no-harness", "--noharness", - help="Run without test harness of a given suite", - default=False, action="store_true") - result.add_option("--no-i18n", "--noi18n", - help="Skip internationalization tests", - default=False, action="store_true") - result.add_option("--no-network", "--nonetwork", - help="Don't distribute tests on the network", - default=(utils.GuessOS() != "linux"), - dest="no_network", action="store_true") - result.add_option("--no-presubmit", "--nopresubmit", - help='Skip presubmit checks (deprecated)', - default=False, dest="no_presubmit", action="store_true") - result.add_option("--no-snap", "--nosnap", - help='Test a build compiled without snapshot.', - default=False, dest="no_snap", action="store_true") - result.add_option("--no-sorting", "--nosorting", - help="Don't sort tests according to duration of last run.", - default=False, dest="no_sorting", action="store_true") - result.add_option("--no-variants", "--novariants", - help="Don't run any testing variants", - default=False, dest="no_variants", action="store_true") - result.add_option("--variants", - help="Comma-separated list of testing variants;" - " default: \"%s\"" % ",".join(VARIANTS)) - result.add_option("--exhaustive-variants", - default=False, action="store_true", - help="Use exhaustive set of default variants:" - " \"%s\"" % ",".join(EXHAUSTIVE_VARIANTS)) - result.add_option("--outdir", help="Base directory with compile output", - default="out") - result.add_option("--gn", help="Scan out.gn for the last built configuration", - default=False, action="store_true") - result.add_option("--predictable", - help="Compare output of several reruns of each test", - default=False, action="store_true") - result.add_option("-p", "--progress", - help=("The style of progress indicator" - " (verbose, dots, color, mono)"), - choices=progress.PROGRESS_INDICATORS.keys(), default="mono") - result.add_option("--quickcheck", default=False, action="store_true", - help=("Quick check mode (skip slow tests)")) - result.add_option("--report", help="Print a summary of the tests to be run", - default=False, action="store_true") - result.add_option("--json-test-results", - help="Path to a file for storing json results.") - result.add_option("--flakiness-results", - help="Path to a file for storing flakiness json.") - result.add_option("--rerun-failures-count", - help=("Number of times to rerun each failing test case. " - "Very slow tests will be rerun only once."), - default=0, type="int") - result.add_option("--rerun-failures-max", - help="Maximum number of failing test cases to rerun.", - default=100, type="int") - result.add_option("--shard-count", - help="Split testsuites into this number of shards", - default=1, type="int") - result.add_option("--shard-run", - help="Run this shard from the split up tests.", - default=1, type="int") - result.add_option("--shell", help="DEPRECATED! use --shell-dir", default="") - result.add_option("--shell-dir", help="Directory containing executables", - default="") - result.add_option("--dont-skip-slow-simulator-tests", - help="Don't skip more slow tests when using a simulator.", - default=False, action="store_true", - dest="dont_skip_simulator_slow_tests") - result.add_option("--swarming", - help="Indicates running test driver on swarming.", - default=False, action="store_true") - result.add_option("--time", help="Print timing information after running", - default=False, action="store_true") - result.add_option("-t", "--timeout", help="Timeout in seconds", - default=TIMEOUT_DEFAULT, type="int") - result.add_option("--tsan", - help="Regard test expectations for TSAN", - default=False, action="store_true") - result.add_option("-v", "--verbose", help="Verbose output", - default=False, action="store_true") - result.add_option("--valgrind", help="Run tests through valgrind", - default=False, action="store_true") - result.add_option("--warn-unused", help="Report unused rules", - default=False, action="store_true") - result.add_option("--junitout", help="File name of the JUnit output") - result.add_option("--junittestsuite", - help="The testsuite name in the JUnit output file", - default="v8tests") - result.add_option("--random-seed", default=0, dest="random_seed", type="int", - help="Default seed for initializing random generator") - result.add_option("--random-seed-stress-count", default=1, type="int", - dest="random_seed_stress_count", - help="Number of runs with different random seeds") - result.add_option("--ubsan-vptr", - help="Regard test expectations for UBSanVptr", - default=False, action="store_true") - result.add_option("--msan", - help="Regard test expectations for UBSanVptr", - default=False, action="store_true") - return result - - -def RandomSeed(): - seed = 0 - while not seed: - seed = random.SystemRandom().randint(-2147483648, 2147483647) - return seed - - -def BuildbotToV8Mode(config): - """Convert buildbot build configs to configs understood by the v8 runner. - - V8 configs are always lower case and without the additional _x64 suffix for - 64 bit builds on windows with ninja. - """ - mode = config[:-4] if config.endswith('_x64') else config - return mode.lower() - -def SetupEnvironment(options): - """Setup additional environment variables.""" - - # Many tests assume an English interface. - os.environ['LANG'] = 'en_US.UTF-8' - - symbolizer = 'external_symbolizer_path=%s' % ( - os.path.join( - BASE_DIR, 'third_party', 'llvm-build', 'Release+Asserts', 'bin', - 'llvm-symbolizer', - ) - ) - - if options.asan: - asan_options = [symbolizer, "allow_user_segv_handler=1"] - if not utils.GuessOS() == 'macos': - # LSAN is not available on mac. - asan_options.append('detect_leaks=1') - os.environ['ASAN_OPTIONS'] = ":".join(asan_options) - - if options.sancov_dir: - assert os.path.exists(options.sancov_dir) - os.environ['ASAN_OPTIONS'] = ":".join([ - 'coverage=1', - 'coverage_dir=%s' % options.sancov_dir, - symbolizer, - "allow_user_segv_handler=1", - ]) - - if options.cfi_vptr: - os.environ['UBSAN_OPTIONS'] = ":".join([ - 'print_stacktrace=1', - 'print_summary=1', - 'symbolize=1', - symbolizer, - ]) - - if options.ubsan_vptr: - os.environ['UBSAN_OPTIONS'] = ":".join([ - 'print_stacktrace=1', - symbolizer, - ]) - - if options.msan: - os.environ['MSAN_OPTIONS'] = symbolizer - - if options.tsan: - suppressions_file = os.path.join( - BASE_DIR, 'tools', 'sanitizers', 'tsan_suppressions.txt') - os.environ['TSAN_OPTIONS'] = " ".join([ - symbolizer, - 'suppressions=%s' % suppressions_file, - 'exit_code=0', - 'report_thread_leaks=0', - 'history_size=7', - 'report_destroy_locked=0', - ]) - -def ProcessOptions(options): - global VARIANTS - - # First try to auto-detect configurations based on the build if GN was - # used. This can't be overridden by cmd-line arguments. - options.auto_detect = False - if options.gn: - gn_out_dir = os.path.join(BASE_DIR, DEFAULT_OUT_GN) - latest_timestamp = -1 - latest_config = None - for gn_config in os.listdir(gn_out_dir): - gn_config_dir = os.path.join(gn_out_dir, gn_config) - if not isdir(gn_config_dir): - continue - if os.path.getmtime(gn_config_dir) > latest_timestamp: - latest_timestamp = os.path.getmtime(gn_config_dir) - latest_config = gn_config - if latest_config: - print(">>> Latest GN build found is %s" % latest_config) - options.outdir = os.path.join(DEFAULT_OUT_GN, latest_config) - - if options.buildbot: - build_config_path = os.path.join( - BASE_DIR, options.outdir, options.mode, "v8_build_config.json") - else: - build_config_path = os.path.join( - BASE_DIR, options.outdir, "v8_build_config.json") - - # Auto-detect test configurations based on the build (GN only). - if os.path.exists(build_config_path): - try: - with open(build_config_path) as f: - build_config = json.load(f) - except Exception: - print ("%s exists but contains invalid json. Is your build up-to-date?" % - build_config_path) - return False - options.auto_detect = True - - # In auto-detect mode the outdir is always where we found the build config. - # This ensures that we'll also take the build products from there. - options.outdir = os.path.dirname(build_config_path) - options.arch_and_mode = None - if options.mode: - # In auto-detect mode we don't use the mode for more path-magic. - # Therefore transform the buildbot mode here to fit to the GN build - # config. - options.mode = BuildbotToV8Mode(options.mode) - - # In V8 land, GN's x86 is called ia32. - if build_config["v8_target_cpu"] == "x86": - build_config["v8_target_cpu"] = "ia32" - - # Update options based on the build config. Sanity check that we're not - # trying to use inconsistent options. - for param, value in ( - ('arch', build_config["v8_target_cpu"]), - ('asan', build_config["is_asan"]), - ('dcheck_always_on', build_config["dcheck_always_on"]), - ('gcov_coverage', build_config["is_gcov_coverage"]), - ('mode', 'debug' if build_config["is_debug"] else 'release'), - ('msan', build_config["is_msan"]), - ('no_i18n', not build_config["v8_enable_i18n_support"]), - ('no_snap', not build_config["v8_use_snapshot"]), - ('tsan', build_config["is_tsan"]), - ('ubsan_vptr', build_config["is_ubsan_vptr"])): - cmd_line_value = getattr(options, param) - if cmd_line_value not in [None, True, False] and cmd_line_value != value: - # TODO(machenbach): This is for string options only. Requires options - # to not have default values. We should make this more modular and - # implement it in our own version of the option parser. - print "Attempted to set %s to %s, while build is %s." % ( - param, cmd_line_value, value) - return False - if cmd_line_value == True and value == False: - print "Attempted to turn on %s, but it's not available." % ( - param) - return False - if cmd_line_value != value: - print ">>> Auto-detected %s=%s" % (param, value) - setattr(options, param, value) - - else: - # Non-GN build without auto-detect. Set default values for missing - # parameters. - if not options.mode: - options.mode = "release,debug" - if not options.arch: - options.arch = "ia32,x64,arm" - - # Architecture and mode related stuff. - if options.arch_and_mode: - options.arch_and_mode = [arch_and_mode.split(".") - for arch_and_mode in options.arch_and_mode.split(",")] - options.arch = ",".join([tokens[0] for tokens in options.arch_and_mode]) - options.mode = ",".join([tokens[1] for tokens in options.arch_and_mode]) - options.mode = options.mode.split(",") - for mode in options.mode: - if not BuildbotToV8Mode(mode) in MODES: - print "Unknown mode %s" % mode - return False - if options.arch in ["auto", "native"]: - options.arch = ARCH_GUESS - options.arch = options.arch.split(",") - for arch in options.arch: - if not arch in SUPPORTED_ARCHS: - print "Unknown architecture %s" % arch - return False - - # Store the final configuration in arch_and_mode list. Don't overwrite - # predefined arch_and_mode since it is more expressive than arch and mode. - if not options.arch_and_mode: - options.arch_and_mode = itertools.product(options.arch, options.mode) - - # Special processing of other options, sorted alphabetically. - - if options.buildbot: - options.no_network = True - if options.command_prefix: - print("Specifying --command-prefix disables network distribution, " - "running tests locally.") - options.no_network = True - options.command_prefix = shlex.split(options.command_prefix) - options.extra_flags = sum(map(shlex.split, options.extra_flags), []) - - if options.gc_stress: - options.extra_flags += GC_STRESS_FLAGS - - if options.asan: - options.extra_flags.append("--invoke-weak-callbacks") - options.extra_flags.append("--omit-quit") - - if options.novfp3: - options.extra_flags.append("--noenable-vfp3") - - if options.exhaustive_variants: - # This is used on many bots. It includes a larger set of default variants. - # Other options for manipulating variants still apply afterwards. - VARIANTS = EXHAUSTIVE_VARIANTS - - # TODO(machenbach): Figure out how to test a bigger subset of variants on - # msan and tsan. - if options.msan: - VARIANTS = ["default"] - - if options.tsan: - VARIANTS = ["default"] - - if options.j == 0: - options.j = multiprocessing.cpu_count() - - if options.random_seed_stress_count <= 1 and options.random_seed == 0: - options.random_seed = RandomSeed() - - def excl(*args): - """Returns true if zero or one of multiple arguments are true.""" - return reduce(lambda x, y: x + y, args) <= 1 - - if not excl(options.no_variants, bool(options.variants)): - print("Use only one of --no-variants or --variants.") - return False - if options.quickcheck: - VARIANTS = ["default", "stress"] - options.slow_tests = "skip" - options.pass_fail_tests = "skip" - if options.no_variants: - VARIANTS = ["default"] - if options.variants: - VARIANTS = options.variants.split(",") - - # Resolve variant aliases. - VARIANTS = reduce( - list.__add__, - (VARIANT_ALIASES.get(v, [v]) for v in VARIANTS), - [], - ) - - if not set(VARIANTS).issubset(ALL_VARIANTS): - print "All variants must be in %s" % str(ALL_VARIANTS) - return False - if options.predictable: - VARIANTS = ["default"] - options.extra_flags.append("--predictable") - options.extra_flags.append("--verify_predictable") - options.extra_flags.append("--no-inline-new") - - # Dedupe. - VARIANTS = list(set(VARIANTS)) - - if not options.shell_dir: - if options.shell: - print "Warning: --shell is deprecated, use --shell-dir instead." - options.shell_dir = os.path.dirname(options.shell) - if options.valgrind: - run_valgrind = os.path.join("tools", "run-valgrind.py") - # This is OK for distributed running, so we don't need to set no_network. - options.command_prefix = (["python", "-u", run_valgrind] + - options.command_prefix) - def CheckTestMode(name, option): - if not option in ["run", "skip", "dontcare"]: - print "Unknown %s mode %s" % (name, option) - return False - return True - if not CheckTestMode("slow test", options.slow_tests): - return False - if not CheckTestMode("pass|fail test", options.pass_fail_tests): - return False - if options.no_i18n: - TEST_MAP["bot_default"].remove("intl") - TEST_MAP["default"].remove("intl") - return True - - -def ShardTests(tests, options): - # Read gtest shard configuration from environment (e.g. set by swarming). - # If none is present, use values passed on the command line. - shard_count = int(os.environ.get('GTEST_TOTAL_SHARDS', options.shard_count)) - shard_run = os.environ.get('GTEST_SHARD_INDEX') - if shard_run is not None: - # The v8 shard_run starts at 1, while GTEST_SHARD_INDEX starts at 0. - shard_run = int(shard_run) + 1 - else: - shard_run = options.shard_run - - if options.shard_count > 1: - # Log if a value was passed on the cmd line and it differs from the - # environment variables. - if options.shard_count != shard_count: - print("shard_count from cmd line differs from environment variable " - "GTEST_TOTAL_SHARDS") - if options.shard_run > 1 and options.shard_run != shard_run: - print("shard_run from cmd line differs from environment variable " - "GTEST_SHARD_INDEX") - - if shard_count < 2: - return tests - if shard_run < 1 or shard_run > shard_count: - print "shard-run not a valid number, should be in [1:shard-count]" - print "defaulting back to running all tests" - return tests - count = 0 - shard = [] - for test in tests: - if count % shard_count == shard_run - 1: - shard.append(test) - count += 1 - return shard - - -def Main(): - # Use the v8 root as cwd as some test cases use "load" with relative paths. - os.chdir(BASE_DIR) - - parser = BuildOptions() - (options, args) = parser.parse_args() - if not ProcessOptions(options): - parser.print_help() - return 1 - SetupEnvironment(options) - - if options.swarming: - # Swarming doesn't print how isolated commands are called. Lets make this - # less cryptic by printing it ourselves. - print ' '.join(sys.argv) - - exit_code = 0 - - suite_paths = utils.GetSuitePaths(join(BASE_DIR, "test")) - - # Use default tests if no test configuration was provided at the cmd line. - if len(args) == 0: - args = ["default"] - - # Expand arguments with grouped tests. The args should reflect the list of - # suites as otherwise filters would break. - def ExpandTestGroups(name): - if name in TEST_MAP: - return [suite for suite in TEST_MAP[name]] - else: - return [name] - args = reduce(lambda x, y: x + y, - [ExpandTestGroups(arg) for arg in args], - []) - - args_suites = OrderedDict() # Used as set - for arg in args: - args_suites[arg.split('/')[0]] = True - suite_paths = [ s for s in args_suites if s in suite_paths ] - - suites = [] - for root in suite_paths: - suite = testsuite.TestSuite.LoadTestSuite( - os.path.join(BASE_DIR, "test", root)) - if suite: - suites.append(suite) - - if options.download_data or options.download_data_only: - for s in suites: - s.DownloadData() - - if options.download_data_only: - return exit_code - - for s in suites: - s.PrepareSources() - - for (arch, mode) in options.arch_and_mode: - try: - code = Execute(arch, mode, args, options, suites) - except KeyboardInterrupt: - return 2 - exit_code = exit_code or code - return exit_code - - -def Execute(arch, mode, args, options, suites): - print(">>> Running tests for %s.%s" % (arch, mode)) - - shell_dir = options.shell_dir - if not shell_dir: - if options.auto_detect: - # If an output dir with a build was passed, test directly in that - # directory. - shell_dir = os.path.join(BASE_DIR, options.outdir) - elif options.buildbot: - # TODO(machenbach): Get rid of different output folder location on - # buildbot. Currently this is capitalized Release and Debug. - shell_dir = os.path.join(BASE_DIR, options.outdir, mode) - mode = BuildbotToV8Mode(mode) - else: - shell_dir = os.path.join( - BASE_DIR, - options.outdir, - "%s.%s" % (arch, MODES[mode]["output_folder"]), - ) - if not os.path.exists(shell_dir): - raise Exception('Could not find shell_dir: "%s"' % shell_dir) - - # Populate context object. - mode_flags = MODES[mode]["flags"] - - # Simulators are slow, therefore allow a longer timeout. - if arch in SLOW_ARCHS: - options.timeout *= 2 - - options.timeout *= MODES[mode]["timeout_scalefactor"] - - if options.predictable: - # Predictable mode is slower. - options.timeout *= 2 - - ctx = context.Context(arch, MODES[mode]["execution_mode"], shell_dir, - mode_flags, options.verbose, - options.timeout, - options.isolates, - options.command_prefix, - options.extra_flags, - options.no_i18n, - options.random_seed, - options.no_sorting, - options.rerun_failures_count, - options.rerun_failures_max, - options.predictable, - options.no_harness, - use_perf_data=not options.swarming, - sancov_dir=options.sancov_dir) - - # TODO(all): Combine "simulator" and "simulator_run". - # TODO(machenbach): In GN we can derive simulator run from - # target_arch != v8_target_arch in the dumped build config. - simulator_run = not options.dont_skip_simulator_slow_tests and \ - arch in ['arm64', 'arm', 'mipsel', 'mips', 'mips64', 'mips64el', \ - 'ppc', 'ppc64', 's390', 's390x'] and \ - bool(ARCH_GUESS) and arch != ARCH_GUESS - # Find available test suites and read test cases from them. - variables = { - "arch": arch, - "asan": options.asan, - "deopt_fuzzer": False, - "gc_stress": options.gc_stress, - "gcov_coverage": options.gcov_coverage, - "isolates": options.isolates, - "mode": MODES[mode]["status_mode"], - "no_i18n": options.no_i18n, - "no_snap": options.no_snap, - "simulator_run": simulator_run, - "simulator": utils.UseSimulator(arch), - "system": utils.GuessOS(), - "tsan": options.tsan, - "msan": options.msan, - "dcheck_always_on": options.dcheck_always_on, - "novfp3": options.novfp3, - "predictable": options.predictable, - "byteorder": sys.byteorder, - "no_harness": options.no_harness, - "ubsan_vptr": options.ubsan_vptr, - } - all_tests = [] - num_tests = 0 - for s in suites: - s.ReadStatusFile(variables) - s.ReadTestCases(ctx) - if len(args) > 0: - s.FilterTestCasesByArgs(args) - all_tests += s.tests - - # First filtering by status applying the generic rules (independent of - # variants). - s.FilterTestCasesByStatus(options.warn_unused, options.slow_tests, - options.pass_fail_tests) - - if options.cat: - verbose.PrintTestSource(s.tests) - continue - variant_gen = s.CreateVariantGenerator(VARIANTS) - variant_tests = [ t.CopyAddingFlags(v, flags) - for t in s.tests - for v in variant_gen.FilterVariantsByTest(t) - for flags in variant_gen.GetFlagSets(t, v) ] - - if options.random_seed_stress_count > 1: - # Duplicate test for random seed stress mode. - def iter_seed_flags(): - for i in range(0, options.random_seed_stress_count): - # Use given random seed for all runs (set by default in execution.py) - # or a new random seed if none is specified. - if options.random_seed: - yield [] - else: - yield ["--random-seed=%d" % RandomSeed()] - s.tests = [ - t.CopyAddingFlags(t.variant, flags) - for t in variant_tests - for flags in iter_seed_flags() - ] - else: - s.tests = variant_tests - - # Second filtering by status applying the variant-dependent rules. - s.FilterTestCasesByStatus(options.warn_unused, options.slow_tests, - options.pass_fail_tests, variants=True) - - s.tests = ShardTests(s.tests, options) - num_tests += len(s.tests) - - if options.cat: - return 0 # We're done here. - - if options.report: - verbose.PrintReport(all_tests) - - # Run the tests, either locally or distributed on the network. - start_time = time.time() - progress_indicator = progress.IndicatorNotifier() - progress_indicator.Register(progress.PROGRESS_INDICATORS[options.progress]()) - if options.junitout: - progress_indicator.Register(progress.JUnitTestProgressIndicator( - options.junitout, options.junittestsuite)) - if options.json_test_results: - progress_indicator.Register(progress.JsonTestProgressIndicator( - options.json_test_results, arch, MODES[mode]["execution_mode"], - ctx.random_seed)) - if options.flakiness_results: - progress_indicator.Register(progress.FlakinessTestProgressIndicator( - options.flakiness_results)) - - run_networked = not options.no_network - if not run_networked: - if options.verbose: - print("Network distribution disabled, running tests locally.") - elif utils.GuessOS() != "linux": - print("Network distribution is only supported on Linux, sorry!") - run_networked = False - peers = [] - if run_networked: - peers = network_execution.GetPeers() - if not peers: - print("No connection to distribution server; running tests locally.") - run_networked = False - elif len(peers) == 1: - print("No other peers on the network; running tests locally.") - run_networked = False - elif num_tests <= 100: - print("Less than 100 tests, running them locally.") - run_networked = False - - if run_networked: - runner = network_execution.NetworkedRunner(suites, progress_indicator, - ctx, peers, BASE_DIR) - else: - runner = execution.Runner(suites, progress_indicator, ctx) - - exit_code = runner.Run(options.j) - overall_duration = time.time() - start_time - - if options.time: - verbose.PrintTestDurations(suites, overall_duration) - - if num_tests == 0: - print("Warning: no tests were run!") - - if exit_code == 1 and options.json_test_results: - print("Force exit code 0 after failures. Json test results file generated " - "with failure information.") - exit_code = 0 - - if options.sancov_dir: - # If tests ran with sanitizer coverage, merge coverage files in the end. - try: - print "Merging sancov files." - subprocess.check_call([ - sys.executable, - join(BASE_DIR, "tools", "sanitizers", "sancov_merger.py"), - "--coverage-dir=%s" % options.sancov_dir]) - except: - print >> sys.stderr, "Error: Merging sancov files failed." - exit_code = 1 - return exit_code +from testrunner import standard_runner if __name__ == "__main__": - sys.exit(Main()) + sys.exit(standard_runner.StandardTestRunner().execute()) diff --git a/deps/v8/tools/run-valgrind.gyp b/deps/v8/tools/run-valgrind.gyp deleted file mode 100644 index 02dd26d22ca..00000000000 --- a/deps/v8/tools/run-valgrind.gyp +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2016 the V8 project authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -{ - 'conditions': [ - ['test_isolation_mode != "noop"', { - 'targets': [ - { - 'target_name': 'run_valgrind_run', - 'type': 'none', - 'dependencies': [ - '../src/d8.gyp:d8_run', - ], - 'includes': [ - '../gypfiles/features.gypi', - '../gypfiles/isolate.gypi', - ], - 'sources': [ - 'run-valgrind.isolate', - ], - }, - ], - }], - ], -} diff --git a/deps/v8/tools/run-valgrind.isolate b/deps/v8/tools/run-valgrind.isolate deleted file mode 100644 index 5947409e175..00000000000 --- a/deps/v8/tools/run-valgrind.isolate +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright 2016 the V8 project authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. -{ - 'variables': { - 'command': [ - 'run-valgrind.py', - ], - 'files': [ - 'run-valgrind.py', - ], - }, - 'conditions': [ - ['has_valgrind==1', { - 'variables': { - 'files': [ - # This assumes vagrind binaries have been fetched as a custom deps - # into v8/third_party/valgrind. It is not clear on which target - # machine this will run, but grabbing both is cheap. - '../third_party/valgrind/linux_x86/', - '../third_party/valgrind/linux_x64/', - ], - }, - }], - ], - 'includes': [ - '../src/d8.isolate', - ], -} diff --git a/deps/v8/tools/run-valgrind.py b/deps/v8/tools/run-valgrind.py deleted file mode 100755 index e3f84f58fed..00000000000 --- a/deps/v8/tools/run-valgrind.py +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2009 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Simple wrapper for running valgrind and checking the output on -# stderr for memory leaks. -# Uses valgrind from third_party/valgrind. Assumes the executable is passed -# with a path relative to the v8 root. - - -from os import path -import platform -import re -import subprocess -import sys - -V8_ROOT = path.dirname(path.dirname(path.abspath(__file__))) -MACHINE = 'linux_x64' if platform.machine() == 'x86_64' else 'linux_x86' -VALGRIND_ROOT = path.join(V8_ROOT, 'third_party', 'valgrind', MACHINE) -VALGRIND_BIN = path.join(VALGRIND_ROOT, 'bin', 'valgrind') -VALGRIND_LIB = path.join(VALGRIND_ROOT, 'lib', 'valgrind') - -VALGRIND_ARGUMENTS = [ - VALGRIND_BIN, - '--error-exitcode=1', - '--leak-check=full', - '--smc-check=all', -] - -if len(sys.argv) < 2: - print 'Please provide an executable to analyze.' - sys.exit(1) - -executable = path.join(V8_ROOT, sys.argv[1]) -if not path.exists(executable): - print 'Cannot find the file specified: %s' % executable - sys.exit(1) - -# Compute the command line. -command = VALGRIND_ARGUMENTS + [executable] + sys.argv[2:] - -# Run valgrind. -process = subprocess.Popen( - command, - stderr=subprocess.PIPE, - env={'VALGRIND_LIB': VALGRIND_LIB} -) -code = process.wait(); -errors = process.stderr.readlines(); - -# If valgrind produced an error, we report that to the user. -if code != 0: - sys.stderr.writelines(errors) - sys.exit(code) - -# Look through the leak details and make sure that we don't -# have any definitely, indirectly, and possibly lost bytes. -LEAK_RE = r"(?:definitely|indirectly|possibly) lost: " -LEAK_LINE_MATCHER = re.compile(LEAK_RE) -LEAK_OKAY_MATCHER = re.compile(r"lost: 0 bytes in 0 blocks") -leaks = [] -for line in errors: - if LEAK_LINE_MATCHER.search(line): - leaks.append(line) - if not LEAK_OKAY_MATCHER.search(line): - sys.stderr.writelines(errors) - sys.exit(1) - -# Make sure we found between 2 and 3 leak lines. -if len(leaks) < 2 or len(leaks) > 3: - sys.stderr.writelines(errors) - sys.stderr.write('\n\n#### Malformed valgrind output.\n#### Exiting.\n') - sys.exit(1) - -# No leaks found. -sys.stderr.writelines(errors) -sys.exit(0) diff --git a/deps/v8/tools/testrunner/base_runner.py b/deps/v8/tools/testrunner/base_runner.py new file mode 100644 index 00000000000..d195a508c0c --- /dev/null +++ b/deps/v8/tools/testrunner/base_runner.py @@ -0,0 +1,392 @@ +# Copyright 2017 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + + +import json +import optparse +import os +import sys + + +# Add testrunner to the path. +sys.path.insert( + 0, + os.path.dirname( + os.path.dirname(os.path.abspath(__file__)))) + + +from local import utils + + +BASE_DIR = ( + os.path.dirname( + os.path.dirname( + os.path.dirname( + os.path.abspath(__file__))))) + +DEFAULT_OUT_GN = 'out.gn' + +ARCH_GUESS = utils.DefaultArch() + +DEBUG_FLAGS = ["--nohard-abort", "--enable-slow-asserts", "--verify-heap"] +RELEASE_FLAGS = ["--nohard-abort"] +MODES = { + "debug": { + "flags": DEBUG_FLAGS, + "timeout_scalefactor": 4, + "status_mode": "debug", + "execution_mode": "debug", + "output_folder": "debug", + }, + "optdebug": { + "flags": DEBUG_FLAGS, + "timeout_scalefactor": 4, + "status_mode": "debug", + "execution_mode": "debug", + "output_folder": "optdebug", + }, + "release": { + "flags": RELEASE_FLAGS, + "timeout_scalefactor": 1, + "status_mode": "release", + "execution_mode": "release", + "output_folder": "release", + }, + # Normal trybot release configuration. There, dchecks are always on which + # implies debug is set. Hence, the status file needs to assume debug-like + # behavior/timeouts. + "tryrelease": { + "flags": RELEASE_FLAGS, + "timeout_scalefactor": 1, + "status_mode": "debug", + "execution_mode": "release", + "output_folder": "release", + }, + # This mode requires v8 to be compiled with dchecks and slow dchecks. + "slowrelease": { + "flags": RELEASE_FLAGS + ["--enable-slow-asserts"], + "timeout_scalefactor": 2, + "status_mode": "debug", + "execution_mode": "release", + "output_folder": "release", + }, +} + +# Map of test name synonyms to lists of test suites. Should be ordered by +# expected runtimes (suites with slow test cases first). These groups are +# invoked in separate steps on the bots. +TEST_MAP = { + # This needs to stay in sync with test/bot_default.isolate. + "bot_default": [ + "debugger", + "mjsunit", + "cctest", + "wasm-spec-tests", + "inspector", + "webkit", + "mkgrokdump", + "fuzzer", + "message", + "preparser", + "intl", + "unittests", + ], + # This needs to stay in sync with test/default.isolate. + "default": [ + "debugger", + "mjsunit", + "cctest", + "wasm-spec-tests", + "inspector", + "mkgrokdump", + "fuzzer", + "message", + "preparser", + "intl", + "unittests", + ], + # This needs to stay in sync with test/optimize_for_size.isolate. + "optimize_for_size": [ + "debugger", + "mjsunit", + "cctest", + "inspector", + "webkit", + "intl", + ], + "unittests": [ + "unittests", + ], +} + + +class TestRunnerError(Exception): + pass + + +class BuildConfig(object): + def __init__(self, build_config): + # In V8 land, GN's x86 is called ia32. + if build_config['v8_target_cpu'] == 'x86': + self.arch = 'ia32' + else: + self.arch = build_config['v8_target_cpu'] + + self.mode = 'debug' if build_config['is_debug'] else 'release' + self.asan = build_config['is_asan'] + self.cfi_vptr = build_config['is_cfi'] + self.dcheck_always_on = build_config['dcheck_always_on'] + self.gcov_coverage = build_config['is_gcov_coverage'] + self.msan = build_config['is_msan'] + self.no_i18n = not build_config['v8_enable_i18n_support'] + self.no_snap = not build_config['v8_use_snapshot'] + self.predictable = build_config['v8_enable_verify_predictable'] + self.tsan = build_config['is_tsan'] + self.ubsan_vptr = build_config['is_ubsan_vptr'] + + +class BaseTestRunner(object): + def __init__(self): + self.outdir = None + self.shell_dir = None + self.build_config = None + + def execute(self): + try: + parser = self._create_parser() + options, args = self._parse_args(parser) + + self._load_build_config(options) + + try: + self._process_default_options(options) + self._process_options(options) + except TestRunnerError: + parser.print_help() + raise + + self._setup_env() + return self._do_execute(options, args) + except TestRunnerError: + return 1 + + def _create_parser(self): + parser = optparse.OptionParser() + parser.usage = '%prog [options] [tests]' + parser.description = """TESTS: %s""" % (TEST_MAP["default"]) + self._add_parser_default_options(parser) + self._add_parser_options(parser) + return parser + + def _add_parser_default_options(self, parser): + parser.add_option("--gn", help="Scan out.gn for the last built" + " configuration", + default=False, action="store_true") + parser.add_option("--outdir", help="Base directory with compile output", + default="out") + parser.add_option("--buildbot", + help="Adapt to path structure used on buildbots", + default=False, action="store_true") + parser.add_option("--arch", + help="The architecture to run tests for: %s") + parser.add_option("-m", "--mode", + help="The test mode in which to run (uppercase for ninja" + " and buildbot builds): %s" % MODES.keys()) + parser.add_option("--shell", help="DEPRECATED! use --shell-dir", + default="") + parser.add_option("--shell-dir", help="Directory containing executables", + default="") + + def _add_parser_options(self, parser): + pass + + def _parse_args(self, parser): + options, args = parser.parse_args() + + if any(map(lambda v: v and ',' in v, + [options.arch, options.mode])): + print 'Multiple arch/mode are deprecated' + raise TestRunnerError() + + return options, args + + def _load_build_config(self, options): + for outdir in self._possible_outdirs(options): + try: + self.build_config = self._do_load_build_config( + outdir, options.mode, options.buildbot) + except TestRunnerError: + pass + + if not self.build_config: + print 'Failed to load build config' + raise TestRunnerError + + print 'Build found: %s' % self.outdir + + # Returns possible build paths in order: gn, outdir, outdir/arch.mode + def _possible_outdirs(self, options): + if options.gn: + yield self._get_gn_outdir() + return + + yield options.outdir + if options.arch and options.mode: + yield os.path.join(options.outdir, + '%s.%s' % (options.arch, options.mode)) + return + + def _get_gn_outdir(self): + gn_out_dir = os.path.join(BASE_DIR, DEFAULT_OUT_GN) + latest_timestamp = -1 + latest_config = None + for gn_config in os.listdir(gn_out_dir): + gn_config_dir = os.path.join(gn_out_dir, gn_config) + if not os.path.isdir(gn_config_dir): + continue + if os.path.getmtime(gn_config_dir) > latest_timestamp: + latest_timestamp = os.path.getmtime(gn_config_dir) + latest_config = gn_config + if latest_config: + print(">>> Latest GN build found: %s" % latest_config) + return os.path.join(DEFAULT_OUT_GN, latest_config) + + def _do_load_build_config(self, outdir, mode, is_buildbot): + if is_buildbot: + build_config_path = os.path.join( + BASE_DIR, outdir, mode, "v8_build_config.json") + else: + build_config_path = os.path.join( + BASE_DIR, outdir, "v8_build_config.json") + if not os.path.exists(build_config_path): + print('Missing build config in the output directory (%s)' % + build_config_path) + raise TestRunnerError() + + with open(build_config_path) as f: + try: + build_config_json = json.load(f) + except Exception: + print("%s exists but contains invalid json. Is your build up-to-date?" + % build_config_path) + raise TestRunnerError() + + # In auto-detect mode the outdir is always where we found the build + # config. + # This ensures that we'll also take the build products from there. + self.outdir = os.path.dirname(build_config_path) + + return BuildConfig(build_config_json) + + def _process_default_options(self, options): + # We don't use the mode for more path-magic. + # Therefore transform the buildbot mode here to fix build_config value. + if options.buildbot and options.mode: + options.mode = self._buildbot_to_v8_mode(options.mode) + + def check_consistency(name, option_val, cfg_val): + if option_val and option_val != cfg_val: + print('Attempted to set %s to %s while build config is %s.' % ( + name, option_val, cfg_val)) + raise TestRunnerError() + + check_consistency('arch', options.arch, self.build_config.arch) + check_consistency('mode', options.mode, self.build_config.mode) + + self._set_shell_dir(options) + + def _buildbot_to_v8_mode(self, config): + """Convert buildbot build configs to configs understood by the v8 runner. + + V8 configs are always lower case and without the additional _x64 suffix + for 64 bit builds on windows with ninja. + """ + mode = config[:-4] if config.endswith('_x64') else config + return mode.lower() + + def _set_shell_dir(self, options): + self.shell_dir = options.shell_dir + if not self.shell_dir: + # TODO(majeski): drop this option + if options.shell: + print "Warning: --shell is deprecated, use --shell-dir instead." + self.shell_dir = os.path.dirname(options.shell) + else: + # If an output dir with a build was passed, test directly in that + # directory. + self.shell_dir = os.path.join(BASE_DIR, self.outdir) + if not os.path.exists(self.shell_dir): + raise Exception('Could not find shell_dir: "%s"' % self.shell_dir) + + def _process_options(self, options): + pass + + def _setup_env(self): + # Use the v8 root as cwd as some test cases use "load" with relative paths. + os.chdir(BASE_DIR) + + # Many tests assume an English interface. + os.environ['LANG'] = 'en_US.UTF-8' + + symbolizer_option = self._get_external_symbolizer_option() + + if self.build_config.asan: + asan_options = [symbolizer_option, "allow_user_segv_handler=1"] + if not utils.GuessOS() in ['macos', 'windows']: + # LSAN is not available on mac and windows. + asan_options.append('detect_leaks=1') + os.environ['ASAN_OPTIONS'] = ":".join(asan_options) + + if self.build_config.cfi_vptr: + os.environ['UBSAN_OPTIONS'] = ":".join([ + 'print_stacktrace=1', + 'print_summary=1', + 'symbolize=1', + symbolizer_option, + ]) + + if self.build_config.ubsan_vptr: + os.environ['UBSAN_OPTIONS'] = ":".join([ + 'print_stacktrace=1', + symbolizer_option, + ]) + + if self.build_config.msan: + os.environ['MSAN_OPTIONS'] = symbolizer_option + + if self.build_config.tsan: + suppressions_file = os.path.join( + BASE_DIR, + 'tools', + 'sanitizers', + 'tsan_suppressions.txt') + os.environ['TSAN_OPTIONS'] = " ".join([ + symbolizer_option, + 'suppressions=%s' % suppressions_file, + 'exit_code=0', + 'report_thread_leaks=0', + 'history_size=7', + 'report_destroy_locked=0', + ]) + + def _get_external_symbolizer_option(self): + external_symbolizer_path = os.path.join( + BASE_DIR, + 'third_party', + 'llvm-build', + 'Release+Asserts', + 'bin', + 'llvm-symbolizer', + ) + + if utils.IsWindows(): + # Quote, because sanitizers might confuse colon as option separator. + external_symbolizer_path = '"%s.exe"' % external_symbolizer_path + + return 'external_symbolizer_path=%s' % external_symbolizer_path + + + # TODO(majeski): remove options & args parameters + def _do_execute(self, options, args): + raise NotImplementedError() diff --git a/deps/v8/tools/testrunner/deopt_fuzzer.py b/deps/v8/tools/testrunner/deopt_fuzzer.py new file mode 100755 index 00000000000..180ab552e43 --- /dev/null +++ b/deps/v8/tools/testrunner/deopt_fuzzer.py @@ -0,0 +1,379 @@ +#!/usr/bin/env python +# +# Copyright 2017 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + + +from os.path import join +import json +import math +import multiprocessing +import os +import random +import shlex +import sys +import time + +# Adds testrunner to the path hence it has to be imported at the beggining. +import base_runner + +from testrunner.local import execution +from testrunner.local import progress +from testrunner.local import testsuite +from testrunner.local import utils +from testrunner.local import verbose +from testrunner.objects import context + + +DEFAULT_TESTS = ["mjsunit", "webkit"] +TIMEOUT_DEFAULT = 60 +TIMEOUT_SCALEFACTOR = {"debug" : 4, + "release" : 1 } + +# Double the timeout for these: +SLOW_ARCHS = ["arm", + "mipsel"] +MAX_DEOPT = 1000000000 +DISTRIBUTION_MODES = ["smooth", "random"] + + +class DeoptFuzzer(base_runner.BaseTestRunner): + def __init__(self): + super(DeoptFuzzer, self).__init__() + + class RandomDistribution: + def __init__(self, seed=None): + seed = seed or random.randint(1, sys.maxint) + print "Using random distribution with seed %d" % seed + self._random = random.Random(seed) + + def Distribute(self, n, m): + if n > m: + n = m + return self._random.sample(xrange(1, m + 1), n) + + class SmoothDistribution: + """Distribute n numbers into the interval [1:m]. + F1: Factor of the first derivation of the distribution function. + F2: Factor of the second derivation of the distribution function. + With F1 and F2 set to 0, the distribution will be equal. + """ + def __init__(self, factor1=2.0, factor2=0.2): + self._factor1 = factor1 + self._factor2 = factor2 + + def Distribute(self, n, m): + if n > m: + n = m + if n <= 1: + return [ 1 ] + + result = [] + x = 0.0 + dx = 1.0 + ddx = self._factor1 + dddx = self._factor2 + for i in range(0, n): + result += [ x ] + x += dx + dx += ddx + ddx += dddx + + # Project the distribution into the interval [0:M]. + result = [ x * m / result[-1] for x in result ] + + # Equalize by n. The closer n is to m, the more equal will be the + # distribution. + for (i, x) in enumerate(result): + # The value of x if it was equally distributed. + equal_x = i / float(n - 1) * float(m - 1) + 1 + + # Difference factor between actual and equal distribution. + diff = 1 - (x / equal_x) + + # Equalize x dependent on the number of values to distribute. + result[i] = int(x + (i + 1) * diff) + return result + + + def _distribution(self, options): + if options.distribution_mode == "random": + return self.RandomDistribution(options.seed) + if options.distribution_mode == "smooth": + return self.SmoothDistribution(options.distribution_factor1, + options.distribution_factor2) + + + def _add_parser_options(self, parser): + parser.add_option("--command-prefix", + help="Prepended to each shell command used to run a test", + default="") + parser.add_option("--coverage", help=("Exponential test coverage " + "(range 0.0, 1.0) - 0.0: one test, 1.0 all tests (slow)"), + default=0.4, type="float") + parser.add_option("--coverage-lift", help=("Lifts test coverage for tests " + "with a small number of deopt points (range 0, inf)"), + default=20, type="int") + parser.add_option("--distribution-factor1", help=("Factor of the first " + "derivation of the distribution function"), default=2.0, + type="float") + parser.add_option("--distribution-factor2", help=("Factor of the second " + "derivation of the distribution function"), default=0.7, + type="float") + parser.add_option("--distribution-mode", help=("How to select deopt points " + "for a given test (smooth|random)"), + default="smooth") + parser.add_option("--dump-results-file", help=("Dump maximum number of " + "deopt points per test to a file")) + parser.add_option("--extra-flags", + help="Additional flags to pass to each test command", + default="") + parser.add_option("--isolates", help="Whether to test isolates", + default=False, action="store_true") + parser.add_option("-j", help="The number of parallel tasks to run", + default=0, type="int") + parser.add_option("-p", "--progress", + help=("The style of progress indicator" + " (verbose, dots, color, mono)"), + choices=progress.PROGRESS_INDICATORS.keys(), + default="mono") + parser.add_option("--shard-count", + help="Split testsuites into this number of shards", + default=1, type="int") + parser.add_option("--shard-run", + help="Run this shard from the split up tests.", + default=1, type="int") + parser.add_option("--seed", help="The seed for the random distribution", + type="int") + parser.add_option("-t", "--timeout", help="Timeout in seconds", + default= -1, type="int") + parser.add_option("-v", "--verbose", help="Verbose output", + default=False, action="store_true") + parser.add_option("--random-seed", default=0, dest="random_seed", + help="Default seed for initializing random generator") + return parser + + + def _process_options(self, options): + # Special processing of other options, sorted alphabetically. + options.command_prefix = shlex.split(options.command_prefix) + options.extra_flags = shlex.split(options.extra_flags) + if options.j == 0: + options.j = multiprocessing.cpu_count() + while options.random_seed == 0: + options.random_seed = random.SystemRandom().randint(-2147483648, + 2147483647) + if not options.distribution_mode in DISTRIBUTION_MODES: + print "Unknown distribution mode %s" % options.distribution_mode + return False + if options.distribution_factor1 < 0.0: + print ("Distribution factor1 %s is out of range. Defaulting to 0.0" + % options.distribution_factor1) + options.distribution_factor1 = 0.0 + if options.distribution_factor2 < 0.0: + print ("Distribution factor2 %s is out of range. Defaulting to 0.0" + % options.distribution_factor2) + options.distribution_factor2 = 0.0 + if options.coverage < 0.0 or options.coverage > 1.0: + print ("Coverage %s is out of range. Defaulting to 0.4" + % options.coverage) + options.coverage = 0.4 + if options.coverage_lift < 0: + print ("Coverage lift %s is out of range. Defaulting to 0" + % options.coverage_lift) + options.coverage_lift = 0 + return True + + def _shard_tests(self, tests, shard_count, shard_run): + if shard_count < 2: + return tests + if shard_run < 1 or shard_run > shard_count: + print "shard-run not a valid number, should be in [1:shard-count]" + print "defaulting back to running all tests" + return tests + count = 0 + shard = [] + for test in tests: + if count % shard_count == shard_run - 1: + shard.append(test) + count += 1 + return shard + + def _do_execute(self, options, args): + suite_paths = utils.GetSuitePaths(join(base_runner.BASE_DIR, "test")) + + if len(args) == 0: + suite_paths = [ s for s in suite_paths if s in DEFAULT_TESTS ] + else: + args_suites = set() + for arg in args: + suite = arg.split(os.path.sep)[0] + if not suite in args_suites: + args_suites.add(suite) + suite_paths = [ s for s in suite_paths if s in args_suites ] + + suites = [] + for root in suite_paths: + suite = testsuite.TestSuite.LoadTestSuite( + os.path.join(base_runner.BASE_DIR, "test", root)) + if suite: + suites.append(suite) + + try: + return self._execute(args, options, suites) + except KeyboardInterrupt: + return 2 + + + def _calculate_n_tests(self, m, options): + """Calculates the number of tests from m deopt points with exponential + coverage. + The coverage is expected to be between 0.0 and 1.0. + The 'coverage lift' lifts the coverage for tests with smaller m values. + """ + c = float(options.coverage) + l = float(options.coverage_lift) + return int(math.pow(m, (m * c + l) / (m + l))) + + + def _execute(self, args, options, suites): + print(">>> Running tests for %s.%s" % (self.build_config.arch, + self.build_config.mode)) + + dist = self._distribution(options) + + # Populate context object. + mode_flags = base_runner.MODES[self.build_config.mode]['flags'] + timeout = options.timeout + if timeout == -1: + # Simulators are slow, therefore allow a longer default timeout. + if self.build_config.arch in SLOW_ARCHS: + timeout = 2 * TIMEOUT_DEFAULT; + else: + timeout = TIMEOUT_DEFAULT; + + timeout *= TIMEOUT_SCALEFACTOR[self.build_config.mode] + ctx = context.Context(self.build_config.arch, + self.build_config.mode, + self.shell_dir, + mode_flags, options.verbose, + timeout, options.isolates, + options.command_prefix, + options.extra_flags, + False, # Keep i18n on by default. + options.random_seed, + True, # No sorting of test cases. + 0, # Don't rerun failing tests. + 0, # No use of a rerun-failing-tests maximum. + False, # No predictable mode. + False, # No no_harness mode. + False, # Don't use perf data. + False) # Coverage not supported. + + # Find available test suites and read test cases from them. + variables = { + "arch": self.build_config.arch, + "asan": self.build_config.asan, + "byteorder": sys.byteorder, + "dcheck_always_on": self.build_config.dcheck_always_on, + "deopt_fuzzer": True, + "gc_stress": False, + "gcov_coverage": self.build_config.gcov_coverage, + "isolates": options.isolates, + "mode": base_runner.MODES[self.build_config.mode]["status_mode"], + "msan": self.build_config.msan, + "no_harness": False, + "no_i18n": self.build_config.no_i18n, + "no_snap": self.build_config.no_snap, + "novfp3": False, + "predictable": self.build_config.predictable, + "simulator": utils.UseSimulator(self.build_config.arch), + "simulator_run": False, + "system": utils.GuessOS(), + "tsan": self.build_config.tsan, + "ubsan_vptr": self.build_config.ubsan_vptr, + } + num_tests = 0 + test_id = 0 + + # Remember test case prototypes for the fuzzing phase. + test_backup = dict((s, []) for s in suites) + + for s in suites: + s.ReadStatusFile(variables) + s.ReadTestCases(ctx) + if len(args) > 0: + s.FilterTestCasesByArgs(args) + s.FilterTestCasesByStatus(False) + test_backup[s] = s.tests + analysis_flags = ["--deopt-every-n-times", "%d" % MAX_DEOPT, + "--print-deopt-stress"] + s.tests = [t.CopyAddingFlags(t.variant, analysis_flags) for t in s.tests] + num_tests += len(s.tests) + for t in s.tests: + t.id = test_id + test_id += 1 + + if num_tests == 0: + print "No tests to run." + return 0 + + print(">>> Collection phase") + progress_indicator = progress.PROGRESS_INDICATORS[options.progress]() + runner = execution.Runner(suites, progress_indicator, ctx) + + exit_code = runner.Run(options.j) + + print(">>> Analysis phase") + num_tests = 0 + test_id = 0 + for s in suites: + test_results = {} + for t in s.tests: + for line in t.output.stdout.splitlines(): + if line.startswith("=== Stress deopt counter: "): + test_results[t.path] = MAX_DEOPT - int(line.split(" ")[-1]) + for t in s.tests: + if t.path not in test_results: + print "Missing results for %s" % t.path + if options.dump_results_file: + results_dict = dict((t.path, n) for (t, n) in test_results.iteritems()) + with file("%s.%d.txt" % (options.dump_results_file, time.time()), + "w") as f: + f.write(json.dumps(results_dict)) + + # Reset tests and redistribute the prototypes from the collection phase. + s.tests = [] + if options.verbose: + print "Test distributions:" + for t in test_backup[s]: + max_deopt = test_results.get(t.path, 0) + if max_deopt == 0: + continue + n_deopt = self._calculate_n_tests(max_deopt, options) + distribution = dist.Distribute(n_deopt, max_deopt) + if options.verbose: + print "%s %s" % (t.path, distribution) + for i in distribution: + fuzzing_flags = ["--deopt-every-n-times", "%d" % i] + s.tests.append(t.CopyAddingFlags(t.variant, fuzzing_flags)) + num_tests += len(s.tests) + for t in s.tests: + t.id = test_id + test_id += 1 + + if num_tests == 0: + print "No tests to run." + return 0 + + print(">>> Deopt fuzzing phase (%d test cases)" % num_tests) + progress_indicator = progress.PROGRESS_INDICATORS[options.progress]() + runner = execution.Runner(suites, progress_indicator, ctx) + + code = runner.Run(options.j) + return exit_code or code + + +if __name__ == '__main__': + sys.exit(DeoptFuzzer().execute()) diff --git a/deps/v8/tools/testrunner/local/commands.py b/deps/v8/tools/testrunner/local/commands.py index b2dc74e4d49..4afd450d2f7 100644 --- a/deps/v8/tools/testrunner/local/commands.py +++ b/deps/v8/tools/testrunner/local/commands.py @@ -106,7 +106,24 @@ def kill_process(process, timeout_result): print "Return code: %d" % tk.returncode sys.stdout.flush() else: + if utils.GuessOS() == "macos": + # TODO(machenbach): Temporary output for investigating hanging test + # driver on mac. + print "Attempting to kill process %d - cmd %s" % (process.pid, args) + try: + print subprocess.check_output( + "ps -e | egrep 'd8|cctest|unittests'", shell=True) + except Exception: + pass + sys.stdout.flush() process.kill() + if utils.GuessOS() == "macos": + # TODO(machenbach): Temporary output for investigating hanging test + # driver on mac. This will probably not print much, since kill only + # sends the signal. + print "Return code after signalling the kill: %s" % process.returncode + sys.stdout.flush() + except OSError: sys.stderr.write('Error: Process %s already ended.\n' % process.pid) @@ -127,6 +144,9 @@ def kill_process(process, timeout_result): ) +# TODO(machenbach): Instead of passing args around, we should introduce an +# immutable Command class (that just represents the command with all flags and +# is pretty-printable) and a member method for running such a command. def Execute(args, verbose=False, timeout=None, env=None): args = [ c for c in args if c != "" ] return RunProcess(verbose, timeout, args, env or {}) diff --git a/deps/v8/tools/testrunner/local/testsuite.py b/deps/v8/tools/testrunner/local/testsuite.py index 3b8f956a7ff..3b622cbbf19 100644 --- a/deps/v8/tools/testrunner/local/testsuite.py +++ b/deps/v8/tools/testrunner/local/testsuite.py @@ -131,9 +131,6 @@ def PrepareSources(self): """ pass - def DownloadData(self): - pass - def ReadStatusFile(self, variables): with open(self.status_file()) as f: self.rules, self.wildcards = ( @@ -321,12 +318,17 @@ def ListTests(self, context): output = None for i in xrange(3): # Try 3 times in case of errors. - output = commands.Execute(context.command_prefix + - [shell, "--gtest_list_tests"] + - context.extra_flags) + cmd = ( + context.command_prefix + + [shell, "--gtest_list_tests"] + + context.extra_flags + ) + output = commands.Execute(cmd) if output.exit_code == 0: break - print "Test executable failed to list the tests (try %d).\n\nStdout:" % i + print "Test executable failed to list the tests (try %d).\n\nCmd:" % i + print ' '.join(cmd) + print "\nStdout:" print output.stdout print "\nStderr:" print output.stderr diff --git a/deps/v8/tools/testrunner/local/variants.py b/deps/v8/tools/testrunner/local/variants.py index 4d274abc569..9efa060bba5 100644 --- a/deps/v8/tools/testrunner/local/variants.py +++ b/deps/v8/tools/testrunner/local/variants.py @@ -6,25 +6,27 @@ ALL_VARIANT_FLAGS = { "default": [[]], "stress": [["--stress-opt", "--always-opt"]], + "stress_incremental_marking": [["--stress-incremental-marking"]], # No optimization means disable all optimizations. OptimizeFunctionOnNextCall # would not force optimization too. It turns into a Nop. Please see # https://chromium-review.googlesource.com/c/452620/ for more discussion. "nooptimization": [["--noopt"]], "stress_asm_wasm": [["--validate-asm", "--stress-validate-asm", "--suppress-asm-messages"]], - "wasm_traps": [["--wasm_guard_pages", "--wasm_trap_handler", "--invoke-weak-callbacks"]], + "wasm_traps": [["--wasm_trap_handler", "--invoke-weak-callbacks"]], } # FAST_VARIANTS implies no --always-opt. FAST_VARIANT_FLAGS = { "default": [[]], "stress": [["--stress-opt"]], + "stress_incremental_marking": [["--stress-incremental-marking"]], # No optimization means disable all optimizations. OptimizeFunctionOnNextCall # would not force optimization too. It turns into a Nop. Please see # https://chromium-review.googlesource.com/c/452620/ for more discussion. "nooptimization": [["--noopt"]], "stress_asm_wasm": [["--validate-asm", "--stress-validate-asm", "--suppress-asm-messages"]], - "wasm_traps": [["--wasm_guard_pages", "--wasm_trap_handler", "--invoke-weak-callbacks"]], + "wasm_traps": [["--wasm_trap_handler", "--invoke-weak-callbacks"]], } -ALL_VARIANTS = set(["default", "stress", "nooptimization", "stress_asm_wasm", - "wasm_traps"]) +ALL_VARIANTS = set(["default", "stress", "stress_incremental_marking", + "nooptimization", "stress_asm_wasm", "wasm_traps"]) diff --git a/deps/v8/tools/testrunner/network/endpoint.py b/deps/v8/tools/testrunner/network/endpoint.py index 516578ace49..1e2a27990a0 100644 --- a/deps/v8/tools/testrunner/network/endpoint.py +++ b/deps/v8/tools/testrunner/network/endpoint.py @@ -106,9 +106,6 @@ def Execute(workspace, ctx, tests, sock, server): suite.tests.append(t) suites = [ s for s in suites if len(s.tests) > 0 ] - for s in suites: - s.DownloadData() - progress_indicator = EndpointProgress(sock, server, ctx) runner = execution.Runner(suites, progress_indicator, ctx) try: diff --git a/deps/v8/tools/testrunner/standard_runner.py b/deps/v8/tools/testrunner/standard_runner.py new file mode 100755 index 00000000000..8d616b99fe7 --- /dev/null +++ b/deps/v8/tools/testrunner/standard_runner.py @@ -0,0 +1,595 @@ +#!/usr/bin/env python +# +# Copyright 2017 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + + +from collections import OrderedDict +from os.path import join +import multiprocessing +import os +import random +import shlex +import subprocess +import sys +import time + +# Adds testrunner to the path hence it has to be imported at the beggining. +import base_runner + +from testrunner.local import execution +from testrunner.local import progress +from testrunner.local import testsuite +from testrunner.local import utils +from testrunner.local import verbose +from testrunner.local.variants import ALL_VARIANTS +from testrunner.network import network_execution +from testrunner.objects import context + + +TIMEOUT_DEFAULT = 60 + +# Variants ordered by expected runtime (slowest first). +VARIANTS = ["default"] + +MORE_VARIANTS = [ + "stress", + "stress_incremental_marking", + "nooptimization", + "stress_asm_wasm", + "wasm_traps", +] + +EXHAUSTIVE_VARIANTS = MORE_VARIANTS + VARIANTS + +VARIANT_ALIASES = { + # The default for developer workstations. + "dev": VARIANTS, + # Additional variants, run on all bots. + "more": MORE_VARIANTS, + # TODO(machenbach): Deprecate this after the step is removed on infra side. + # Additional variants, run on a subset of bots. + "extra": [], +} + +GC_STRESS_FLAGS = ["--gc-interval=500", "--stress-compaction", + "--concurrent-recompilation-queue-length=64", + "--concurrent-recompilation-delay=500", + "--concurrent-recompilation"] + +# Double the timeout for these: +SLOW_ARCHS = ["arm", + "mips", + "mipsel", + "mips64", + "mips64el", + "s390", + "s390x", + "arm64"] + + +class StandardTestRunner(base_runner.BaseTestRunner): + def __init__(self): + super(StandardTestRunner, self).__init__() + + self.sancov_dir = None + + def _do_execute(self, options, args): + if options.swarming: + # Swarming doesn't print how isolated commands are called. Lets make + # this less cryptic by printing it ourselves. + print ' '.join(sys.argv) + + if utils.GuessOS() == "macos": + # TODO(machenbach): Temporary output for investigating hanging test + # driver on mac. + print "V8 related processes running on this host:" + try: + print subprocess.check_output( + "ps -e | egrep 'd8|cctest|unittests'", shell=True) + except Exception: + pass + + suite_paths = utils.GetSuitePaths(join(base_runner.BASE_DIR, "test")) + + # Use default tests if no test configuration was provided at the cmd line. + if len(args) == 0: + args = ["default"] + + # Expand arguments with grouped tests. The args should reflect the list + # of suites as otherwise filters would break. + def ExpandTestGroups(name): + if name in base_runner.TEST_MAP: + return [suite for suite in base_runner.TEST_MAP[name]] + else: + return [name] + args = reduce(lambda x, y: x + y, + [ExpandTestGroups(arg) for arg in args], + []) + + args_suites = OrderedDict() # Used as set + for arg in args: + args_suites[arg.split('/')[0]] = True + suite_paths = [ s for s in args_suites if s in suite_paths ] + + suites = [] + for root in suite_paths: + suite = testsuite.TestSuite.LoadTestSuite( + os.path.join(base_runner.BASE_DIR, "test", root)) + if suite: + suites.append(suite) + + for s in suites: + s.PrepareSources() + + try: + return self._execute(args, options, suites) + except KeyboardInterrupt: + return 2 + + def _add_parser_options(self, parser): + parser.add_option("--sancov-dir", + help="Directory where to collect coverage data") + parser.add_option("--cfi-vptr", + help="Run tests with UBSAN cfi_vptr option.", + default=False, action="store_true") + parser.add_option("--novfp3", + help="Indicates that V8 was compiled without VFP3" + " support", + default=False, action="store_true") + parser.add_option("--cat", help="Print the source of the tests", + default=False, action="store_true") + parser.add_option("--slow-tests", + help="Regard slow tests (run|skip|dontcare)", + default="dontcare") + parser.add_option("--pass-fail-tests", + help="Regard pass|fail tests (run|skip|dontcare)", + default="dontcare") + parser.add_option("--gc-stress", + help="Switch on GC stress mode", + default=False, action="store_true") + parser.add_option("--command-prefix", + help="Prepended to each shell command used to run a" + " test", + default="") + parser.add_option("--extra-flags", + help="Additional flags to pass to each test command", + action="append", default=[]) + parser.add_option("--isolates", help="Whether to test isolates", + default=False, action="store_true") + parser.add_option("-j", help="The number of parallel tasks to run", + default=0, type="int") + parser.add_option("--no-harness", "--noharness", + help="Run without test harness of a given suite", + default=False, action="store_true") + parser.add_option("--network", help="Distribute tests on the network", + default=False, dest="network", action="store_true") + parser.add_option("--no-network", "--nonetwork", + help="Don't distribute tests on the network", + dest="network", action="store_false") + parser.add_option("--no-presubmit", "--nopresubmit", + help='Skip presubmit checks (deprecated)', + default=False, dest="no_presubmit", action="store_true") + parser.add_option("--no-sorting", "--nosorting", + help="Don't sort tests according to duration of last" + " run.", + default=False, dest="no_sorting", action="store_true") + parser.add_option("--no-variants", "--novariants", + help="Don't run any testing variants", + default=False, dest="no_variants", action="store_true") + parser.add_option("--variants", + help="Comma-separated list of testing variants;" + " default: \"%s\"" % ",".join(VARIANTS)) + parser.add_option("--exhaustive-variants", + default=False, action="store_true", + help="Use exhaustive set of default variants:" + " \"%s\"" % ",".join(EXHAUSTIVE_VARIANTS)) + parser.add_option("-p", "--progress", + help=("The style of progress indicator" + " (verbose, dots, color, mono)"), + choices=progress.PROGRESS_INDICATORS.keys(), + default="mono") + parser.add_option("--quickcheck", default=False, action="store_true", + help=("Quick check mode (skip slow tests)")) + parser.add_option("--report", help="Print a summary of the tests to be" + " run", + default=False, action="store_true") + parser.add_option("--json-test-results", + help="Path to a file for storing json results.") + parser.add_option("--flakiness-results", + help="Path to a file for storing flakiness json.") + parser.add_option("--rerun-failures-count", + help=("Number of times to rerun each failing test case." + " Very slow tests will be rerun only once."), + default=0, type="int") + parser.add_option("--rerun-failures-max", + help="Maximum number of failing test cases to rerun.", + default=100, type="int") + parser.add_option("--shard-count", + help="Split testsuites into this number of shards", + default=1, type="int") + parser.add_option("--shard-run", + help="Run this shard from the split up tests.", + default=1, type="int") + parser.add_option("--dont-skip-slow-simulator-tests", + help="Don't skip more slow tests when using a" + " simulator.", + default=False, action="store_true", + dest="dont_skip_simulator_slow_tests") + parser.add_option("--swarming", + help="Indicates running test driver on swarming.", + default=False, action="store_true") + parser.add_option("--time", help="Print timing information after running", + default=False, action="store_true") + parser.add_option("-t", "--timeout", help="Timeout in seconds", + default=TIMEOUT_DEFAULT, type="int") + parser.add_option("-v", "--verbose", help="Verbose output", + default=False, action="store_true") + parser.add_option("--valgrind", help="Run tests through valgrind", + default=False, action="store_true") + parser.add_option("--warn-unused", help="Report unused rules", + default=False, action="store_true") + parser.add_option("--junitout", help="File name of the JUnit output") + parser.add_option("--junittestsuite", + help="The testsuite name in the JUnit output file", + default="v8tests") + parser.add_option("--random-seed", default=0, dest="random_seed", + help="Default seed for initializing random generator", + type=int) + parser.add_option("--random-seed-stress-count", default=1, type="int", + dest="random_seed_stress_count", + help="Number of runs with different random seeds") + + def _process_options(self, options): + global VARIANTS + + if options.sancov_dir: + self.sancov_dir = options.sancov_dir + if not os.path.exists(self.sancov_dir): + print("sancov-dir %s doesn't exist" % self.sancov_dir) + raise base_runner.TestRunnerError() + + if options.buildbot: + options.network = False + if options.command_prefix and options.network: + print("Specifying --command-prefix disables network distribution, " + "running tests locally.") + options.network = False + options.command_prefix = shlex.split(options.command_prefix) + options.extra_flags = sum(map(shlex.split, options.extra_flags), []) + + if options.gc_stress: + options.extra_flags += GC_STRESS_FLAGS + + if self.build_config.asan: + options.extra_flags.append("--invoke-weak-callbacks") + options.extra_flags.append("--omit-quit") + + if options.novfp3: + options.extra_flags.append("--noenable-vfp3") + + if options.exhaustive_variants: + # This is used on many bots. It includes a larger set of default + # variants. + # Other options for manipulating variants still apply afterwards. + VARIANTS = EXHAUSTIVE_VARIANTS + + # TODO(machenbach): Figure out how to test a bigger subset of variants on + # msan. + if self.build_config.msan: + VARIANTS = ["default"] + + if options.j == 0: + options.j = multiprocessing.cpu_count() + + if options.random_seed_stress_count <= 1 and options.random_seed == 0: + options.random_seed = self._random_seed() + + def excl(*args): + """Returns true if zero or one of multiple arguments are true.""" + return reduce(lambda x, y: x + y, args) <= 1 + + if not excl(options.no_variants, bool(options.variants)): + print("Use only one of --no-variants or --variants.") + raise base_runner.TestRunnerError() + if options.quickcheck: + VARIANTS = ["default", "stress"] + options.slow_tests = "skip" + options.pass_fail_tests = "skip" + if options.no_variants: + VARIANTS = ["default"] + if options.variants: + VARIANTS = options.variants.split(",") + + # Resolve variant aliases. + VARIANTS = reduce( + list.__add__, + (VARIANT_ALIASES.get(v, [v]) for v in VARIANTS), + [], + ) + + if not set(VARIANTS).issubset(ALL_VARIANTS): + print "All variants must be in %s" % str(ALL_VARIANTS) + raise base_runner.TestRunnerError() + if self.build_config.predictable: + VARIANTS = ["default"] + options.extra_flags.append("--predictable") + options.extra_flags.append("--verify_predictable") + options.extra_flags.append("--no-inline-new") + + # Dedupe. + VARIANTS = list(set(VARIANTS)) + + if options.valgrind: + run_valgrind = os.path.join("tools", "run-valgrind.py") + # This is OK for distributed running, so we don't need to disable + # network. + options.command_prefix = (["python", "-u", run_valgrind] + + options.command_prefix) + def CheckTestMode(name, option): + if not option in ["run", "skip", "dontcare"]: + print "Unknown %s mode %s" % (name, option) + raise base_runner.TestRunnerError() + CheckTestMode("slow test", options.slow_tests) + CheckTestMode("pass|fail test", options.pass_fail_tests) + if self.build_config.no_i18n: + base_runner.TEST_MAP["bot_default"].remove("intl") + base_runner.TEST_MAP["default"].remove("intl") + + def _setup_env(self): + super(StandardTestRunner, self)._setup_env() + + symbolizer_option = self._get_external_symbolizer_option() + + if self.sancov_dir: + os.environ['ASAN_OPTIONS'] = ":".join([ + 'coverage=1', + 'coverage_dir=%s' % self.sancov_dir, + symbolizer_option, + "allow_user_segv_handler=1", + ]) + + def _random_seed(self): + seed = 0 + while not seed: + seed = random.SystemRandom().randint(-2147483648, 2147483647) + return seed + + def _execute(self, args, options, suites): + print(">>> Running tests for %s.%s" % (self.build_config.arch, + self.build_config.mode)) + + mode_options = base_runner.MODES[self.build_config.mode] + + # Populate context object. + mode_flags = mode_options["flags"] + + # Simulators are slow, therefore allow a longer timeout. + if self.build_config.arch in SLOW_ARCHS: + options.timeout *= 2 + + options.timeout *= mode_options["timeout_scalefactor"] + + if self.build_config.predictable: + # Predictable mode is slower. + options.timeout *= 2 + + ctx = context.Context(self.build_config.arch, + mode_options["execution_mode"], + self.shell_dir, + mode_flags, + options.verbose, + options.timeout, + options.isolates, + options.command_prefix, + options.extra_flags, + self.build_config.no_i18n, + options.random_seed, + options.no_sorting, + options.rerun_failures_count, + options.rerun_failures_max, + self.build_config.predictable, + options.no_harness, + use_perf_data=not options.swarming, + sancov_dir=self.sancov_dir) + + # TODO(all): Combine "simulator" and "simulator_run". + # TODO(machenbach): In GN we can derive simulator run from + # target_arch != v8_target_arch in the dumped build config. + simulator_run = ( + not options.dont_skip_simulator_slow_tests and + self.build_config.arch in [ + 'arm64', 'arm', 'mipsel', 'mips', 'mips64', 'mips64el', 'ppc', + 'ppc64', 's390', 's390x'] and + bool(base_runner.ARCH_GUESS) and + self.build_config.arch != base_runner.ARCH_GUESS) + # Find available test suites and read test cases from them. + variables = { + "arch": self.build_config.arch, + "asan": self.build_config.asan, + "byteorder": sys.byteorder, + "dcheck_always_on": self.build_config.dcheck_always_on, + "deopt_fuzzer": False, + "gc_stress": options.gc_stress, + "gcov_coverage": self.build_config.gcov_coverage, + "isolates": options.isolates, + "mode": mode_options["status_mode"], + "msan": self.build_config.msan, + "no_harness": options.no_harness, + "no_i18n": self.build_config.no_i18n, + "no_snap": self.build_config.no_snap, + "novfp3": options.novfp3, + "predictable": self.build_config.predictable, + "simulator": utils.UseSimulator(self.build_config.arch), + "simulator_run": simulator_run, + "system": utils.GuessOS(), + "tsan": self.build_config.tsan, + "ubsan_vptr": self.build_config.ubsan_vptr, + } + all_tests = [] + num_tests = 0 + for s in suites: + s.ReadStatusFile(variables) + s.ReadTestCases(ctx) + if len(args) > 0: + s.FilterTestCasesByArgs(args) + all_tests += s.tests + + # First filtering by status applying the generic rules (independent of + # variants). + s.FilterTestCasesByStatus(options.warn_unused, options.slow_tests, + options.pass_fail_tests) + + if options.cat: + verbose.PrintTestSource(s.tests) + continue + variant_gen = s.CreateVariantGenerator(VARIANTS) + variant_tests = [ t.CopyAddingFlags(v, flags) + for t in s.tests + for v in variant_gen.FilterVariantsByTest(t) + for flags in variant_gen.GetFlagSets(t, v) ] + + if options.random_seed_stress_count > 1: + # Duplicate test for random seed stress mode. + def iter_seed_flags(): + for _ in range(0, options.random_seed_stress_count): + # Use given random seed for all runs (set by default in + # execution.py) or a new random seed if none is specified. + if options.random_seed: + yield [] + else: + yield ["--random-seed=%d" % self._random_seed()] + s.tests = [ + t.CopyAddingFlags(t.variant, flags) + for t in variant_tests + for flags in iter_seed_flags() + ] + else: + s.tests = variant_tests + + # Second filtering by status applying the variant-dependent rules. + s.FilterTestCasesByStatus(options.warn_unused, options.slow_tests, + options.pass_fail_tests, variants=True) + + s.tests = self._shard_tests(s.tests, options) + num_tests += len(s.tests) + + if options.cat: + return 0 # We're done here. + + if options.report: + verbose.PrintReport(all_tests) + + # Run the tests, either locally or distributed on the network. + start_time = time.time() + progress_indicator = progress.IndicatorNotifier() + progress_indicator.Register( + progress.PROGRESS_INDICATORS[options.progress]()) + if options.junitout: + progress_indicator.Register(progress.JUnitTestProgressIndicator( + options.junitout, options.junittestsuite)) + if options.json_test_results: + progress_indicator.Register(progress.JsonTestProgressIndicator( + options.json_test_results, + self.build_config.arch, + mode_options["execution_mode"], + ctx.random_seed)) + if options.flakiness_results: + progress_indicator.Register(progress.FlakinessTestProgressIndicator( + options.flakiness_results)) + + run_networked = options.network + if not run_networked: + if options.verbose: + print("Network distribution disabled, running tests locally.") + elif utils.GuessOS() != "linux": + print("Network distribution is only supported on Linux, sorry!") + run_networked = False + peers = [] + if run_networked: + peers = network_execution.GetPeers() + if not peers: + print("No connection to distribution server; running tests locally.") + run_networked = False + elif len(peers) == 1: + print("No other peers on the network; running tests locally.") + run_networked = False + elif num_tests <= 100: + print("Less than 100 tests, running them locally.") + run_networked = False + + if run_networked: + runner = network_execution.NetworkedRunner( + suites, progress_indicator, ctx, peers, base_runner.BASE_DIR) + else: + runner = execution.Runner(suites, progress_indicator, ctx) + + exit_code = runner.Run(options.j) + overall_duration = time.time() - start_time + + if options.time: + verbose.PrintTestDurations(suites, overall_duration) + + if num_tests == 0: + print("Warning: no tests were run!") + + if exit_code == 1 and options.json_test_results: + print("Force exit code 0 after failures. Json test results file " + "generated with failure information.") + exit_code = 0 + + if self.sancov_dir: + # If tests ran with sanitizer coverage, merge coverage files in the end. + try: + print "Merging sancov files." + subprocess.check_call([ + sys.executable, + join( + base_runner.BASE_DIR, "tools", "sanitizers", "sancov_merger.py"), + "--coverage-dir=%s" % self.sancov_dir]) + except: + print >> sys.stderr, "Error: Merging sancov files failed." + exit_code = 1 + + return exit_code + + def _shard_tests(self, tests, options): + # Read gtest shard configuration from environment (e.g. set by swarming). + # If none is present, use values passed on the command line. + shard_count = int( + os.environ.get('GTEST_TOTAL_SHARDS', options.shard_count)) + shard_run = os.environ.get('GTEST_SHARD_INDEX') + if shard_run is not None: + # The v8 shard_run starts at 1, while GTEST_SHARD_INDEX starts at 0. + shard_run = int(shard_run) + 1 + else: + shard_run = options.shard_run + + if options.shard_count > 1: + # Log if a value was passed on the cmd line and it differs from the + # environment variables. + if options.shard_count != shard_count: + print("shard_count from cmd line differs from environment variable " + "GTEST_TOTAL_SHARDS") + if options.shard_run > 1 and options.shard_run != shard_run: + print("shard_run from cmd line differs from environment variable " + "GTEST_SHARD_INDEX") + + if shard_count < 2: + return tests + if shard_run < 1 or shard_run > shard_count: + print "shard-run not a valid number, should be in [1:shard-count]" + print "defaulting back to running all tests" + return tests + count = 0 + shard = [] + for test in tests: + if count % shard_count == shard_run - 1: + shard.append(test) + count += 1 + return shard + + +if __name__ == '__main__': + sys.exit(StandardTestRunner().execute()) diff --git a/deps/v8/tools/testrunner/testrunner.isolate b/deps/v8/tools/testrunner/testrunner.isolate index e29f1df98df..56667c20215 100644 --- a/deps/v8/tools/testrunner/testrunner.isolate +++ b/deps/v8/tools/testrunner/testrunner.isolate @@ -7,6 +7,7 @@ '../run-tests.py', ], 'files': [ + '<(PRODUCT_DIR)/v8_build_config.json', '../run-tests.py', './' ], @@ -20,12 +21,5 @@ ], }, }], - ['is_gn==1', { - 'variables': { - 'files': [ - '<(PRODUCT_DIR)/v8_build_config.json', - ], - }, - }], ], } diff --git a/deps/v8/tools/testrunner/utils/dump_build_config.py b/deps/v8/tools/testrunner/utils/dump_build_config.py index bd57b5f34e2..b691bb3dc8d 100644 --- a/deps/v8/tools/testrunner/utils/dump_build_config.py +++ b/deps/v8/tools/testrunner/utils/dump_build_config.py @@ -15,7 +15,7 @@ import os import sys -assert len(sys.argv) > 1 +assert len(sys.argv) > 2 def as_json(kv): assert '=' in kv @@ -23,4 +23,4 @@ def as_json(kv): return k, json.loads(v) with open(sys.argv[1], 'w') as f: - json.dump(dict(as_json(kv) for kv in sys.argv[2:]), f) + json.dump(dict(map(as_json, sys.argv[2:])), f) diff --git a/deps/v8/tools/testrunner/utils/dump_build_config_gyp.py b/deps/v8/tools/testrunner/utils/dump_build_config_gyp.py new file mode 100644 index 00000000000..920459d9296 --- /dev/null +++ b/deps/v8/tools/testrunner/utils/dump_build_config_gyp.py @@ -0,0 +1,47 @@ +# Copyright 2017 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""The same as dump_build_config.py but for gyp legacy. + +Expected to be called like: +dump_build_config.py path/to/file.json [key1=value1 ...] + +Raw gyp values are supported - they will be tranformed into valid json. +""" +# TODO(machenbach): Remove this when gyp is deprecated. + +import json +import os +import sys + +assert len(sys.argv) > 2 + + +GYP_GN_CONVERSION = { + 'is_component_build': { + '"shared_library"': 'true', + '"static_library"': 'false', + }, + 'is_debug': { + '"Debug"': 'true', + '"Release"': 'false', + }, +} + +DEFAULT_CONVERSION ={ + '0': 'false', + '1': 'true', + '"ia32"': '"x86"', +} + +def gyp_to_gn(key, value): + return GYP_GN_CONVERSION.get(key, DEFAULT_CONVERSION).get(value, value) + +def as_json(kv): + assert '=' in kv + k, v = kv.split('=', 1) + return k, json.loads(gyp_to_gn(k, v)) + +with open(sys.argv[1], 'w') as f: + json.dump(dict(map(as_json, sys.argv[2:])), f) diff --git a/deps/v8/tools/tick-processor.html b/deps/v8/tools/tick-processor.html index 3cb4a0b2c36..b841cc0bd32 100644 --- a/deps/v8/tools/tick-processor.html +++ b/deps/v8/tools/tick-processor.html @@ -50,6 +50,7 @@ +