From 1962ef043b66e3313c65b43d56bb98830b85ff49 Mon Sep 17 00:00:00 2001 From: "Node.js Jenkins CI" Date: Tue, 11 Dec 2018 06:55:39 +0000 Subject: [PATCH 01/13] doc: update README for node-v8 repository --- README.md | 607 +----------------------------------------------------- 1 file changed, 9 insertions(+), 598 deletions(-) diff --git a/README.md b/README.md index 1835c51cc6e..76c5b4d46ec 100644 --- a/README.md +++ b/README.md @@ -1,601 +1,12 @@ -

- - Node.js - -

+This is an automatically updated **experimental** +version of [Node.js](https://github.com/nodejs/node) +with the lkgr (last known good revision) of V8. -Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. For -more information on using Node.js, see the [Node.js Website][]. +The daily builds of this repo can be found at +[`v8-canary`](https://nodejs.org/download/v8-canary/). +**Do not use this in production!** -The Node.js project uses an [open governance model](./GOVERNANCE.md). The -[Node.js Foundation][] provides support for the project. +This repository is not owned by `@nodejs/v8`, but they might be able to +help with issues. -**This project is bound by a [Code of Conduct][].** - - -# Table of Contents - -* [Support](#support) -* [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 Keys](#release-keys) -* [Contributing to Node.js](#contributing-to-nodejs) - -## Support - -Node.js contributors have limited availability to address general support -questions. Please make sure you are using a [currently-supported version of -Node.js](https://github.com/nodejs/Release#release-schedule). - -When looking for support, please first search for your question in these venues: - -* [Node.js Website][] -* [Node.js Help][] -* [Open or closed issues in the Node.js GitHub organization](https://github.com/issues?utf8=%E2%9C%93&q=sort%3Aupdated-desc+org%3Anodejs+is%3Aissue) - -If you didn't find an answer in the resources above, try these unofficial -resources: - -* [Questions tagged 'node.js' on StackOverflow][] -* [#node.js channel on chat.freenode.net][]. See for more - information. -* [Node.js Discord Community](https://discordapp.com/invite/v7rrPdE) -* [Node.js Slack Community](https://node-js.slack.com/): Visit - [nodeslackers.com](http://www.nodeslackers.com/) to register. - -GitHub issues are for tracking enhancements and bugs, not general support. - -The open source license grants you the freedom to use Node.js. It does not -guarantee commitments of other people's time. Please be respectful and manage -your expectations. - -## Release Types - -* **Current**: Under active development. Code for the Current release is in the - branch for its major version number (for example, - [v10.x](https://github.com/nodejs/node/tree/v10.x)). Node.js releases a new - major version every 6 months, allowing for breaking changes. This happens in - April and October every year. Releases appearing each October have a support - life of 8 months. Releases appearing each April convert to LTS (see below) - each October. -* **LTS**: Releases that receive Long-term Support, with a focus on stability - and security. Every even-numbered major version will become an LTS release. - LTS releases receive 18 months of _Active LTS_ support and a further 12 months - of _Maintenance_. LTS release lines have alphabetically-ordered codenames, - beginning with v4 Argon. There are no breaking changes or feature additions, - except in some special circumstances. -* **Nightly**: Code from the Current branch built every 24-hours when there are - changes. Use with caution. - -Current and LTS releases follow [Semantic Versioning](https://semver.org). A -member of the Release Team [signs](#release-keys) each Current and LTS release. -For more information, see the -[Release README](https://github.com/nodejs/Release#readme). - -### Download - -Binaries, installers, and source tarballs are available at -. - -#### Current and LTS Releases - - -The [latest](https://nodejs.org/download/release/latest/) directory is an -alias for the latest Current release. The latest-_codename_ directory is an -alias for the latest release from an LTS line. For example, the -[latest-carbon](https://nodejs.org/download/release/latest-carbon/) directory -contains the latest Carbon (Node.js 8) release. - -#### Nightly Releases - - -Each directory name and filename contains a date (in UTC time) and the commit -SHA at the HEAD of the release. - -#### API Documentation - -Documentation for the latest Current release is at . -Version-specific documentation is available in each release directory in the -_docs_ subdirectory. Version-specific documentation is also at -. - - -### Verifying Binaries - -Download directories contain a `SHASUMS256.txt` file with SHA checksums for the -files. - -To download `SHASUMS256.txt` 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 - -``` - -For Current and LTS, the GPG detached signature of `SHASUMS256.txt` is in -`SHASUMS256.txt.sig`. You can use it with `gpg` to verify the integrity of -`SHASUM256.txt`. You will first need to import -[the GPG keys of individuals authorized to create releases](#release-keys). 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 -``` - -Then use `gpg --verify SHASUMS256.txt.sig SHASUMS256.txt` to verify -the file's signature. - -## Building Node.js - -See [BUILDING.md](BUILDING.md) for instructions on how to build Node.js from -source and a list of supported platforms. - -## Security - -For information on reporting security vulnerabilities in Node.js, see -[SECURITY.md](./SECURITY.md). - -## Current Project Team Members - -For 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) -* [apapirovski](https://github.com/apapirovski) - -**Anatoli Papirovski** <apapirovski@mac.com> (he/him) -* [ChALkeR](https://github.com/ChALkeR) - -**Сковорода Никита Андреевич** <chalkerx@gmail.com> (he/him) -* [cjihrig](https://github.com/cjihrig) - -**Colin Ihrig** <cjihrig@gmail.com> (he/him) -* [danbev](https://github.com/danbev) - -**Daniel Bevenius** <daniel.bevenius@gmail.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> -* [gabrielschulhof](https://github.com/gabrielschulhof) - -**Gabriel Schulhof** <gabriel.schulhof@intel.com> -* [jasnell](https://github.com/jasnell) - -**James M Snell** <jasnell@gmail.com> (he/him) -* [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) -* [MylesBorins](https://github.com/MylesBorins) - -**Myles Borins** <myles.borins@gmail.com> (he/him) -* [ofrobots](https://github.com/ofrobots) - -**Ali Ijaz Sheikh** <ofrobots@google.com> (he/him) -* [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) - -### TSC Emeriti - -* [bnoordhuis](https://github.com/bnoordhuis) - -**Ben Noordhuis** <info@bnoordhuis.nl> -* [chrisdickinson](https://github.com/chrisdickinson) - -**Chris Dickinson** <christopher.s.dickinson@gmail.com> -* [evanlucas](https://github.com/evanlucas) - -**Evan Lucas** <evanlucas@me.com> (he/him) -* [gibfahn](https://github.com/gibfahn) - -**Gibson Fahnestock** <gibfahn@gmail.com> (he/him) -* [indutny](https://github.com/indutny) - -**Fedor Indutny** <fedor.indutny@gmail.com> -* [isaacs](https://github.com/isaacs) - -**Isaac Z. Schlueter** <i@izs.me> -* [joshgav](https://github.com/joshgav) - -**Josh Gavant** <josh.gavant@outlook.com> -* [mscdex](https://github.com/mscdex) - -**Brian White** <mscdex@mscdex.net> -* [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) -* [TimothyGu](https://github.com/TimothyGu) - -**Tiancheng "Timothy" Gu** <timothygu99@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) - -### Collaborators - -* [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> -* [antsmartian](https://github.com/antsmartian) - -**Anto Aravinth** <anto.aravinth.cse@gmail.com> (he/him) -* [apapirovski](https://github.com/apapirovski) - -**Anatoli Papirovski** <apapirovski@mac.com> (he/him) -* [aqrln](https://github.com/aqrln) - -**Alexey Orlenko** <eaglexrlnk@gmail.com> (he/him) -* [bcoe](https://github.com/bcoe) - -**Ben Coe** <bencoe@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> -* [BethGriggs](https://github.com/BethGriggs) - -**Beth Griggs** <Bethany.Griggs@uk.ibm.com> (she/her) -* [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> -* [boneskull](https://github.com/boneskull) - -**Christopher Hiller** <boneskull@boneskull.com> (he/him) -* [brendanashworth](https://github.com/brendanashworth) - -**Brendan Ashworth** <brendan.ashworth@me.com> -* [BridgeAR](https://github.com/BridgeAR) - -**Ruben Bridgewater** <ruben@bridgewater.de> (he/him) -* [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> (he/him) -* [claudiorodriguez](https://github.com/claudiorodriguez) - -**Claudio Rodriguez** <cjrodr@yahoo.com> -* [codebytere](https://github.com/codebytere) - -**Shelley Vohr** <codebytere@gmail.com> (she/her) -* [danbev](https://github.com/danbev) - -**Daniel Bevenius** <daniel.bevenius@gmail.com> (he/him) -* [DavidCai1993](https://github.com/DavidCai1993) - -**David Cai** <davidcai1993@yahoo.com> (he/him) -* [davisjam](https://github.com/davisjam) - -**Jamie Davis** <davisjam@vt.edu> (he/him) -* [devsnek](https://github.com/devsnek) - -**Gus Caplan** <me@gus.host> (he/him) -* [digitalinfinity](https://github.com/digitalinfinity) - -**Hitesh Kanwathirtha** <digitalinfinity@gmail.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> -* [gdams](https://github.com/gdams) - -**George Adams** <george.adams@uk.ibm.com> (he/him) -* [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) -* [guybedford](https://github.com/guybedford) - -**Guy Bedford** <guybedford@gmail.com> (he/him) -* [hashseed](https://github.com/hashseed) - -**Yang Guo** <yangguo@chromium.org> (he/him) -* [hiroppy](https://github.com/hiroppy) - -**Yuta Hiroto** <hello@hiroppy.me> (he/him) -* [iarna](https://github.com/iarna) - -**Rebecca Turner** <me@re-becca.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> -* [jdalton](https://github.com/jdalton) - -**John-David Dalton** <john.david.dalton@gmail.com> -* [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> (he/him) -* [Leko](https://github.com/Leko) - -**Shingo Inoue** <leko.noor@gmail.com> (he/him) -* [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) -* [lundibundi](https://github.com/lundibundi) - -**Denys Otrishko** <shishugi@gmail.com> (he/him) -* [maclover7](https://github.com/maclover7) - -**Jon Moss** <me@jonathanmoss.me> (he/him) -* [mafintosh](https://github.com/mafintosh) -**Mathias Buus** <mathiasbuus@gmail.com> (he/him) -* [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) -* [misterdjules](https://github.com/misterdjules) - -**Julien Gilli** <jgilli@nodejs.org> -* [mmarchini](https://github.com/mmarchini) - -**Matheus Marchini** <mat@mmarchini.me> -* [MoonBall](https://github.com/MoonBall) - -**Chen Gang** <gangc.cxy@foxmail.com> -* [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> (he/him) -* [ofrobots](https://github.com/ofrobots) - -**Ali Ijaz Sheikh** <ofrobots@google.com> (he/him) -* [orangemocha](https://github.com/orangemocha) - -**Alexis Campailla** <orangemocha@nodejs.org> -* [othiym23](https://github.com/othiym23) - -**Forrest L Norvell** <ogd@aoaioxxysz.net> (he/him) -* [oyyd](https://github.com/oyyd) - -**Ouyang Yadong** <oyydoibh@gmail.com> (he/him) -* [pmq20](https://github.com/pmq20) - -**Minqi Pan** <pmq2001@gmail.com> -* [princejwesley](https://github.com/princejwesley) - -**Prince John Wesley** <princejohnwesley@gmail.com> -* [psmarshall](https://github.com/psmarshall) - -**Peter Marshall** <petermarshall@chromium.org> (he/him) -* [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> -* [ronkorving](https://github.com/ronkorving) - -**Ron Korving** <ron@ronkorving.nl> -* [RReverser](https://github.com/RReverser) - -**Ingvar Stepanyan** <me@rreverser.com> -* [rubys](https://github.com/rubys) - -**Sam Ruby** <rubys@intertwingly.net> -* [rvagg](https://github.com/rvagg) - -**Rod Vagg** <rod@vagg.org> -* [ryzokuken](https://github.com/ryzokuken) - -**Ujjwal Sharma** <usharma1998@gmail.com> (he/him) -* [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) -* [shisama](https://github.com/shisama) - -**Masashi Hirano** <shisama07@gmail.com> (he/him) -* [silverwind](https://github.com/silverwind) - -**Roman Reiss** <me@silverwind.io> -* [srl295](https://github.com/srl295) - -**Steven R Loomis** <srloomis@us.ibm.com> -* [starkwang](https://github.com/starkwang) - -**Weijia Wang** <starkwang@126.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) - -**Tiancheng "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> -* [trivikr](https://github.com/trivikr) - -**Trivikram Kamat** <trivikr.dev@gmail.com> -* [Trott](https://github.com/Trott) - -**Rich Trott** <rtrott@gmail.com> (he/him) -* [vdeturckheim](https://github.com/vdeturckheim) - -**Vladimir de Turckheim** <vlad2t@hotmail.com> (he/him) -* [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) -* [watson](https://github.com/watson) - -**Thomas Watson** <w@tson.dk> -* [whitlockjc](https://github.com/whitlockjc) - -**Jeremy Whitlock** <jwhitlock@apache.org> -* [XadillaX](https://github.com/XadillaX) - -**Khaidi Chu** <i@2333.moe> (he/him) -* [yhwang](https://github.com/yhwang) - -**Yihong Wang** <yh.wang@ibm.com> -* [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 - -* [imran-iq](https://github.com/imran-iq) - -**Imran Iqbal** <imran@imraniqbal.org> -* [isaacs](https://github.com/isaacs) - -**Isaac Z. Schlueter** <i@izs.me> -* [lxe](https://github.com/lxe) - -**Aleksey Smolenchuk** <lxe@lxe.co> -* [matthewloring](https://github.com/matthewloring) - -**Matthew Loring** <mattloring@google.com> -* [micnic](https://github.com/micnic) - -**Nicu Micleușanu** <micnic90@gmail.com> (he/him) -* [mikeal](https://github.com/mikeal) - -**Mikeal Rogers** <mikeal.rogers@gmail.com> -* [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> -* [phillipj](https://github.com/phillipj) - -**Phillip Johnsen** <johphi@gmail.com> -* [piscisaureus](https://github.com/piscisaureus) - -**Bert Belder** <bertbelder@gmail.com> -* [rlidwka](https://github.com/rlidwka) - -**Alex Kocharin** <alex@kocharin.ru> -* [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> -* [tellnes](https://github.com/tellnes) - -**Christian Tellnes** <christian@tellnes.no> -* [tunniclm](https://github.com/tunniclm) - -**Mike Tunnicliffe** <m.j.tunnicliffe@gmail.com> - -Collaborators follow the [COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md) in -maintaining the Node.js project. - -### Release Keys - -GPG keys used to sign Node.js releases: - -* **Beth Griggs** <bethany.griggs@uk.ibm.com> -`4ED778F539E3634C779C87C6D7062848A1AB005C` -* **Colin Ihrig** <cjihrig@gmail.com> -`94AE36675C464D64BAFA68DD7434390BDBE9B9C5` -* **Evan Lucas** <evanlucas@me.com> -`B9AE9905FFD7803F25714661B63B535A4C206CA9` -* **Gibson Fahnestock** <gibfahn@gmail.com> -`77984A986EBC2AA786BC0F66B01FBB92821C587A` -* **James M Snell** <jasnell@keybase.io> -`71DCFD284A79C3B38668286BC97EC7A07EDE3FC1` -* **Jeremiah Senkpiel** <fishrock@keybase.io> -`FD3A5288F042B6850C66B31F09FE44734EB7990E` -* **Michaël Zasso** <targos@protonmail.com> -`8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600` -* **Myles Borins** <myles.borins@gmail.com> -`C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8` -* **Rod Vagg** <rod@vagg.org> -`DD8F2338BAE7501E3DD5AC78C273792F7D83545D` -* **Ruben Bridgewater** <ruben@bridgewater.de> -`A48C2BEE680E841632CD4E44F07496B3EB3C1762` - -To import the full set of trusted release keys: - -```shell -gpg --keyserver pool.sks-keyservers.net --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C -gpg --keyserver pool.sks-keyservers.net --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 -gpg --keyserver pool.sks-keyservers.net --recv-keys B9AE9905FFD7803F25714661B63B535A4C206CA9 -gpg --keyserver pool.sks-keyservers.net --recv-keys 77984A986EBC2AA786BC0F66B01FBB92821C587A -gpg --keyserver pool.sks-keyservers.net --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 -gpg --keyserver pool.sks-keyservers.net --recv-keys FD3A5288F042B6850C66B31F09FE44734EB7990E -gpg --keyserver pool.sks-keyservers.net --recv-keys 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 -gpg --keyserver pool.sks-keyservers.net --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 -gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D -gpg --keyserver pool.sks-keyservers.net --recv-keys A48C2BEE680E841632CD4E44F07496B3EB3C1762 -``` - -See the section above on [Verifying Binaries](#verifying-binaries) for how to -use these keys to verify a downloaded file. - -Other keys used to sign some previous releases: - -* **Chris Dickinson** <christopher.s.dickinson@gmail.com> -`9554F04D7259F04124DE6B476D5A82AC7E37093B` -* **Isaac Z. Schlueter** <i@izs.me> -`93C7E9E91B49E432C2F75674B0A78B0A6C481CF6` -* **Italo A. Casas** <me@italoacasas.com> -`56730D5401028683275BD23C23EFEFE93C4CFFFE` -* **Julien Gilli** <jgilli@fastmail.fm> -`114F43EE0176B71C7BC219DD50A3051F888C628D` -* **Timothy J Fontaine** <tjfontaine@gmail.com> -`7937DFD2AB06298B2293C3187D33FF9D0246406D` - -## Contributing to Node.js - -* [Contributing to the project][] -* [Working Groups][] -* [Strategic Initiatives][] - -[Code of Conduct]: https://github.com/nodejs/admin/blob/master/CODE_OF_CONDUCT.md -[Contributing to the project]: CONTRIBUTING.md -[Node.js Help]: https://github.com/nodejs/help -[Node.js Foundation]: https://nodejs.org/en/foundation/ -[Node.js Website]: https://nodejs.org/en/ -[Questions tagged 'node.js' on StackOverflow]: https://stackoverflow.com/questions/tagged/node.js -[Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md -[Strategic Initiatives]: https://github.com/nodejs/TSC/blob/master/Strategic-Initiatives.md -[#node.js channel on chat.freenode.net]: https://webchat.freenode.net?channels=node.js&uio=d4 +This project is bound by a [Code of Conduct](https://github.com/nodejs/TSC/blob/master/CODE_OF_CONDUCT.md). From 87f751f277a2cf81904d5459f46b7ec746486cc3 Mon Sep 17 00:00:00 2001 From: "Node.js Jenkins CI" Date: Tue, 11 Dec 2018 06:56:04 +0000 Subject: [PATCH 02/13] deps: update V8 to 7.3.83 --- deps/v8/.clang-tidy | 6 +- deps/v8/.gitignore | 3 +- deps/v8/.vpython | 23 + deps/v8/AUTHORS | 4 +- deps/v8/BUILD.gn | 531 ++- deps/v8/ChangeLog | 3035 +++++++++++++ deps/v8/DEPS | 99 +- deps/v8/OWNERS | 3 - deps/v8/PRESUBMIT.py | 16 - deps/v8/benchmarks/micro/slice-perf.js | 83 + deps/v8/include/OWNERS | 1 + deps/v8/include/PRESUBMIT.py | 29 - deps/v8/include/v8-internal.h | 168 +- deps/v8/include/v8-platform.h | 29 +- deps/v8/include/v8-profiler.h | 32 + deps/v8/include/v8-util.h | 10 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8-wasm-trap-handler-posix.h | 31 + deps/v8/include/v8-wasm-trap-handler-win.h | 27 + deps/v8/include/v8.h | 601 ++- deps/v8/include/v8config.h | 4 + deps/v8/infra/config/cq.cfg | 45 +- deps/v8/infra/mb/mb_config.pyl | 66 +- deps/v8/infra/testing/builders.pyl | 113 +- deps/v8/snapshot_toolchain.gni | 11 +- deps/v8/src/DEPS | 2 + deps/v8/src/OWNERS | 1 - deps/v8/src/PRESUBMIT.py | 29 - deps/v8/src/accessors.cc | 13 +- deps/v8/src/address-map.cc | 13 +- deps/v8/src/address-map.h | 5 +- deps/v8/src/allocation-site-scopes-inl.h | 7 + deps/v8/src/allocation-site-scopes.h | 10 +- deps/v8/src/allocation.cc | 36 +- deps/v8/src/allocation.h | 11 +- deps/v8/src/api-arguments-inl.h | 28 +- deps/v8/src/api-arguments.cc | 42 +- deps/v8/src/api-arguments.h | 32 +- deps/v8/src/api-inl.h | 14 +- deps/v8/src/api-natives.cc | 45 +- deps/v8/src/api-natives.h | 1 + deps/v8/src/api.cc | 1023 +++-- deps/v8/src/api.h | 74 +- deps/v8/src/arguments-inl.h | 5 +- deps/v8/src/arguments.h | 44 +- deps/v8/src/arm/assembler-arm-inl.h | 9 +- deps/v8/src/arm/assembler-arm.cc | 148 +- deps/v8/src/arm/assembler-arm.h | 39 +- deps/v8/src/arm/code-stubs-arm.cc | 594 --- deps/v8/src/arm/code-stubs-arm.h | 31 - deps/v8/src/arm/constants-arm.h | 18 +- deps/v8/src/arm/deoptimizer-arm.cc | 2 - deps/v8/src/arm/disasm-arm.cc | 10 +- deps/v8/src/arm/frame-constants-arm.cc | 9 +- deps/v8/src/arm/frame-constants-arm.h | 6 + deps/v8/src/arm/interface-descriptors-arm.cc | 14 +- deps/v8/src/arm/macro-assembler-arm.cc | 179 +- deps/v8/src/arm/macro-assembler-arm.h | 51 +- deps/v8/src/arm/simulator-arm.cc | 51 +- deps/v8/src/arm64/assembler-arm64-inl.h | 26 +- deps/v8/src/arm64/assembler-arm64.cc | 59 +- deps/v8/src/arm64/assembler-arm64.h | 50 +- deps/v8/src/arm64/code-stubs-arm64.cc | 623 --- deps/v8/src/arm64/code-stubs-arm64.h | 28 - deps/v8/src/arm64/constants-arm64.h | 188 +- deps/v8/src/arm64/cpu-arm64.cc | 6 +- deps/v8/src/arm64/deoptimizer-arm64.cc | 14 +- deps/v8/src/arm64/disasm-arm64.cc | 5 +- deps/v8/src/arm64/frame-constants-arm64.h | 2 + .../src/arm64/instructions-arm64-constants.cc | 9 + deps/v8/src/arm64/instructions-arm64.cc | 8 +- deps/v8/src/arm64/instructions-arm64.h | 11 +- .../src/arm64/interface-descriptors-arm64.cc | 15 +- deps/v8/src/arm64/macro-assembler-arm64-inl.h | 8 +- deps/v8/src/arm64/macro-assembler-arm64.cc | 209 +- deps/v8/src/arm64/macro-assembler-arm64.h | 57 +- deps/v8/src/arm64/simulator-arm64.cc | 96 +- deps/v8/src/arm64/utils-arm64.cc | 2 +- deps/v8/src/arm64/utils-arm64.h | 2 +- deps/v8/src/asmjs/OWNERS | 1 - deps/v8/src/asmjs/asm-js.cc | 68 +- deps/v8/src/asmjs/asm-js.h | 3 +- deps/v8/src/asmjs/asm-parser.cc | 22 +- deps/v8/src/asmjs/asm-scanner.cc | 6 +- deps/v8/src/asmjs/switch-logic.cc | 65 - deps/v8/src/asmjs/switch-logic.h | 33 - deps/v8/src/assembler-arch-inl.h | 30 - deps/v8/src/assembler.cc | 222 +- deps/v8/src/assembler.h | 186 +- deps/v8/src/assert-scope.cc | 38 +- deps/v8/src/assert-scope.h | 39 +- deps/v8/src/ast/ast-traversal-visitor.h | 24 +- deps/v8/src/ast/ast-value-factory.cc | 11 +- deps/v8/src/ast/ast-value-factory.h | 23 +- deps/v8/src/ast/ast.cc | 28 +- deps/v8/src/ast/ast.h | 438 +- deps/v8/src/ast/context-slot-cache.cc | 84 - deps/v8/src/ast/context-slot-cache.h | 112 - deps/v8/src/ast/prettyprinter.cc | 41 +- deps/v8/src/ast/prettyprinter.h | 14 +- deps/v8/src/ast/scopes-inl.h | 66 - deps/v8/src/ast/scopes.cc | 756 +-- deps/v8/src/ast/scopes.h | 339 +- deps/v8/src/ast/variables.h | 1 - deps/v8/src/async-hooks-wrapper.cc | 5 + deps/v8/src/bailout-reason.h | 165 +- deps/v8/src/base/atomic-utils.h | 317 +- deps/v8/src/base/atomicops.h | 3 + .../src/base/atomicops_internals_portable.h | 8 + deps/v8/src/base/atomicops_internals_std.h | 10 + deps/v8/src/base/bounded-page-allocator.cc | 26 +- deps/v8/src/base/bounded-page-allocator.h | 12 +- deps/v8/src/base/build_config.h | 4 +- deps/v8/src/base/debug/stack_trace_win.cc | 16 + deps/v8/src/base/functional.h | 47 +- deps/v8/src/base/macros.h | 2 +- deps/v8/src/base/optional.h | 850 +++- deps/v8/src/base/page-allocator.cc | 4 + deps/v8/src/base/page-allocator.h | 2 + .../src/base/platform/condition-variable.cc | 2 +- .../v8/src/base/platform/condition-variable.h | 3 +- deps/v8/src/base/platform/mutex.h | 5 +- deps/v8/src/base/platform/platform-aix.cc | 20 +- deps/v8/src/base/platform/platform-cygwin.cc | 27 + deps/v8/src/base/platform/platform-fuchsia.cc | 8 +- deps/v8/src/base/platform/platform-posix.cc | 66 +- deps/v8/src/base/platform/platform-win32.cc | 31 +- deps/v8/src/base/platform/platform.h | 3 + deps/v8/src/base/platform/time.cc | 45 +- deps/v8/src/base/platform/time.h | 65 +- deps/v8/src/base/region-allocator.cc | 10 + deps/v8/src/base/region-allocator.h | 3 + deps/v8/src/base/threaded-list.h | 34 +- .../src/base/utils/random-number-generator.cc | 5 +- deps/v8/src/basic-block-profiler.cc | 2 +- deps/v8/src/bootstrapper.cc | 977 ++-- deps/v8/src/bootstrapper.h | 16 +- deps/v8/src/builtins/arm/builtins-arm.cc | 609 ++- deps/v8/src/builtins/arm64/builtins-arm64.cc | 713 ++- deps/v8/src/builtins/array-copywithin.tq | 14 +- deps/v8/src/builtins/array-foreach.tq | 29 +- deps/v8/src/builtins/array-join.tq | 547 +++ deps/v8/src/builtins/array-lastindexof.tq | 29 +- deps/v8/src/builtins/array-of.tq | 54 + deps/v8/src/builtins/array-reverse.tq | 63 +- deps/v8/src/builtins/array-slice.tq | 212 + deps/v8/src/builtins/array-splice.tq | 162 +- deps/v8/src/builtins/array-unshift.tq | 26 +- deps/v8/src/builtins/array.tq | 52 +- deps/v8/src/builtins/base.tq | 885 ++-- deps/v8/src/builtins/builtins-api.cc | 67 +- .../v8/src/builtins/builtins-arguments-gen.cc | 10 +- deps/v8/src/builtins/builtins-array-gen.cc | 702 +-- deps/v8/src/builtins/builtins-array-gen.h | 21 +- deps/v8/src/builtins/builtins-array.cc | 63 +- deps/v8/src/builtins/builtins-arraybuffer.cc | 5 +- .../builtins/builtins-async-function-gen.cc | 282 +- deps/v8/src/builtins/builtins-async-gen.cc | 294 +- .../builtins/builtins-async-generator-gen.cc | 33 +- deps/v8/src/builtins/builtins-call-gen.cc | 77 +- deps/v8/src/builtins/builtins-callsite.cc | 16 + .../src/builtins/builtins-collections-gen.cc | 697 ++- .../src/builtins/builtins-collections-gen.h | 26 + deps/v8/src/builtins/builtins-collections.cc | 1 + deps/v8/src/builtins/builtins-console-gen.cc | 1 + deps/v8/src/builtins/builtins-console.cc | 1 + .../src/builtins/builtins-constructor-gen.cc | 106 +- deps/v8/src/builtins/builtins-constructor.h | 7 +- .../src/builtins/builtins-conversion-gen.cc | 2 +- deps/v8/src/builtins/builtins-data-view-gen.h | 24 +- deps/v8/src/builtins/builtins-date.cc | 43 +- deps/v8/src/builtins/builtins-definitions.h | 147 +- deps/v8/src/builtins/builtins-descriptors.h | 3 +- deps/v8/src/builtins/builtins-error.cc | 9 +- deps/v8/src/builtins/builtins-function-gen.cc | 27 +- deps/v8/src/builtins/builtins-handler-gen.cc | 389 +- deps/v8/src/builtins/builtins-internal-gen.cc | 504 +- .../src/builtins/builtins-interpreter-gen.cc | 18 - deps/v8/src/builtins/builtins-intl-gen.cc | 14 +- deps/v8/src/builtins/builtins-intl.cc | 595 +-- deps/v8/src/builtins/builtins-iterator-gen.cc | 111 +- deps/v8/src/builtins/builtins-iterator-gen.h | 26 +- deps/v8/src/builtins/builtins-lazy-gen.cc | 66 +- .../builtins/builtins-microtask-queue-gen.cc | 497 ++ deps/v8/src/builtins/builtins-object-gen.cc | 52 +- deps/v8/src/builtins/builtins-object-gen.h | 14 + deps/v8/src/builtins/builtins-object.cc | 5 +- deps/v8/src/builtins/builtins-promise-gen.cc | 214 +- deps/v8/src/builtins/builtins-promise-gen.h | 16 +- deps/v8/src/builtins/builtins-promise.cc | 1 + deps/v8/src/builtins/builtins-proxy-gen.cc | 6 +- deps/v8/src/builtins/builtins-regexp-gen.cc | 415 +- deps/v8/src/builtins/builtins-regexp-gen.h | 44 +- .../builtins/builtins-sharedarraybuffer.cc | 4 +- deps/v8/src/builtins/builtins-string-gen.cc | 180 +- deps/v8/src/builtins/builtins-string-gen.h | 7 +- deps/v8/src/builtins/builtins-string.cc | 22 +- deps/v8/src/builtins/builtins-test-gen.h | 22 - deps/v8/src/builtins/builtins-trace.cc | 4 +- .../src/builtins/builtins-typed-array-gen.cc | 208 +- .../src/builtins/builtins-typed-array-gen.h | 43 +- deps/v8/src/builtins/builtins-utils.h | 54 +- deps/v8/src/builtins/builtins-wasm-gen.cc | 140 +- deps/v8/src/builtins/builtins-weak-refs.cc | 175 + deps/v8/src/builtins/builtins.cc | 285 +- deps/v8/src/builtins/builtins.h | 91 +- deps/v8/src/builtins/collections.tq | 57 + .../src/builtins/constants-table-builder.cc | 17 +- deps/v8/src/builtins/data-view.tq | 95 +- deps/v8/src/builtins/frames.tq | 150 + .../src/builtins/growable-fixed-array-gen.cc | 5 +- deps/v8/src/builtins/ia32/builtins-ia32.cc | 792 +++- deps/v8/src/builtins/iterator.tq | 44 + deps/v8/src/builtins/mips/builtins-mips.cc | 670 ++- .../v8/src/builtins/mips64/builtins-mips64.cc | 667 ++- deps/v8/src/builtins/object-fromentries.tq | 68 + deps/v8/src/builtins/object.tq | 12 + deps/v8/src/builtins/ppc/builtins-ppc.cc | 483 +- deps/v8/src/builtins/s390/builtins-s390.cc | 481 +- .../src/builtins/setup-builtins-internal.cc | 109 +- deps/v8/src/builtins/typed-array.tq | 34 +- deps/v8/src/builtins/x64/builtins-x64.cc | 660 ++- deps/v8/src/cancelable-task.cc | 36 +- deps/v8/src/cancelable-task.h | 135 +- deps/v8/src/char-predicates-inl.h | 97 +- deps/v8/src/char-predicates.cc | 6 +- deps/v8/src/char-predicates.h | 71 +- deps/v8/src/code-events.h | 70 +- deps/v8/src/code-factory.cc | 147 +- deps/v8/src/code-factory.h | 18 +- deps/v8/src/code-stub-assembler.cc | 1952 +++++--- deps/v8/src/code-stub-assembler.h | 629 ++- deps/v8/src/code-stubs-utils.h | 49 - deps/v8/src/code-stubs.cc | 466 -- deps/v8/src/code-stubs.h | 670 --- deps/v8/src/compilation-cache.cc | 16 +- deps/v8/src/compilation-statistics.cc | 6 +- .../compiler-dispatcher-job.cc | 19 - .../compiler-dispatcher-job.h | 80 - .../compiler-dispatcher-tracer.cc | 127 - .../compiler-dispatcher-tracer.h | 83 - .../compiler-dispatcher.cc | 464 +- .../compiler-dispatcher/compiler-dispatcher.h | 89 +- .../optimizing-compile-dispatcher.cc | 33 +- .../optimizing-compile-dispatcher.h | 8 +- .../unoptimized-compile-job.cc | 91 - .../unoptimized-compile-job.h | 71 - deps/v8/src/compiler.cc | 256 +- deps/v8/src/compiler.h | 14 +- deps/v8/src/compiler/OWNERS | 2 - deps/v8/src/compiler/access-builder.cc | 53 +- deps/v8/src/compiler/access-builder.h | 13 +- deps/v8/src/compiler/access-info.cc | 30 +- deps/v8/src/compiler/access-info.h | 7 +- deps/v8/src/compiler/allocation-builder-inl.h | 48 + deps/v8/src/compiler/allocation-builder.h | 22 +- deps/v8/src/compiler/backend/OWNERS | 4 + .../{ => backend}/arm/code-generator-arm.cc | 88 +- .../{ => backend}/arm/instruction-codes-arm.h | 6 +- .../arm/instruction-scheduler-arm.cc | 6 +- .../arm/instruction-selector-arm.cc | 59 +- .../arm/unwinding-info-writer-arm.cc | 8 +- .../arm/unwinding-info-writer-arm.h | 6 +- .../arm64/code-generator-arm64.cc | 87 +- .../arm64/instruction-codes-arm64.h | 6 +- .../arm64/instruction-scheduler-arm64.cc | 6 +- .../arm64/instruction-selector-arm64.cc | 74 +- .../arm64/unwinding-info-writer-arm64.cc | 8 +- .../arm64/unwinding-info-writer-arm64.h | 6 +- .../{ => backend}/code-generator-impl.h | 11 +- .../compiler/{ => backend}/code-generator.cc | 211 +- .../compiler/{ => backend}/code-generator.h | 14 +- .../compiler/{ => backend}/frame-elider.cc | 11 +- .../src/compiler/{ => backend}/frame-elider.h | 10 +- .../compiler/{ => backend}/gap-resolver.cc | 8 +- .../src/compiler/{ => backend}/gap-resolver.h | 8 +- .../{ => backend}/ia32/code-generator-ia32.cc | 421 +- .../ia32/instruction-codes-ia32.h | 6 +- .../ia32/instruction-scheduler-ia32.cc | 10 +- .../ia32/instruction-selector-ia32.cc | 120 +- .../{ => backend}/instruction-codes.h | 27 +- .../{ => backend}/instruction-scheduler.cc | 28 +- .../{ => backend}/instruction-scheduler.h | 30 +- .../{ => backend}/instruction-selector-impl.h | 12 +- .../{ => backend}/instruction-selector.cc | 117 +- .../{ => backend}/instruction-selector.h | 15 +- .../src/compiler/{ => backend}/instruction.cc | 277 +- .../src/compiler/{ => backend}/instruction.h | 144 +- .../compiler/{ => backend}/jump-threading.cc | 21 +- .../compiler/{ => backend}/jump-threading.h | 8 +- .../{ => backend}/live-range-separator.cc | 46 +- .../{ => backend}/live-range-separator.h | 9 +- .../v8/src/compiler/{ => backend}/mips/OWNERS | 0 .../{ => backend}/mips/code-generator-mips.cc | 314 +- .../mips/instruction-codes-mips.h | 7 +- .../mips/instruction-scheduler-mips.cc | 9 +- .../mips/instruction-selector-mips.cc | 202 +- .../src/compiler/{ => backend}/mips64/OWNERS | 0 .../mips64/code-generator-mips64.cc | 230 +- .../mips64/instruction-codes-mips64.h | 7 +- .../mips64/instruction-scheduler-mips64.cc | 7 +- .../mips64/instruction-selector-mips64.cc | 236 +- .../compiler/{ => backend}/move-optimizer.cc | 9 +- .../compiler/{ => backend}/move-optimizer.h | 8 +- deps/v8/src/compiler/{ => backend}/ppc/OWNERS | 0 .../{ => backend}/ppc/code-generator-ppc.cc | 416 +- .../backend/ppc/instruction-codes-ppc.h | 208 + .../ppc/instruction-scheduler-ppc.cc | 98 +- .../ppc/instruction-selector-ppc.cc | 447 +- .../register-allocator-verifier.cc | 11 +- .../register-allocator-verifier.h | 8 +- .../{ => backend}/register-allocator.cc | 397 +- .../{ => backend}/register-allocator.h | 50 +- .../v8/src/compiler/{ => backend}/s390/OWNERS | 0 .../{ => backend}/s390/code-generator-s390.cc | 1284 ++---- .../backend/s390/instruction-codes-s390.h | 217 + .../s390/instruction-scheduler-s390.cc | 12 +- .../s390/instruction-selector-s390.cc | 177 +- .../{ => backend}/unwinding-info-writer.h | 12 +- .../{ => backend}/x64/code-generator-x64.cc | 237 +- .../{ => backend}/x64/instruction-codes-x64.h | 17 +- .../x64/instruction-scheduler-x64.cc | 17 +- .../x64/instruction-selector-x64.cc | 320 +- .../x64/unwinding-info-writer-x64.cc | 4 +- .../x64/unwinding-info-writer-x64.h | 6 +- .../v8/src/compiler/bytecode-graph-builder.cc | 27 +- deps/v8/src/compiler/bytecode-graph-builder.h | 7 +- deps/v8/src/compiler/code-assembler.cc | 262 +- deps/v8/src/compiler/code-assembler.h | 195 +- deps/v8/src/compiler/common-node-cache.cc | 2 +- .../src/compiler/common-operator-reducer.cc | 16 +- .../v8/src/compiler/common-operator-reducer.h | 7 +- deps/v8/src/compiler/common-operator.cc | 42 +- deps/v8/src/compiler/common-operator.h | 12 +- .../src/compiler/compilation-dependencies.cc | 160 +- .../src/compiler/compilation-dependencies.h | 5 +- .../src/compiler/constant-folding-reducer.cc | 8 +- .../src/compiler/constant-folding-reducer.h | 6 +- .../src/compiler/effect-control-linearizer.cc | 264 +- .../src/compiler/effect-control-linearizer.h | 10 +- deps/v8/src/compiler/escape-analysis.cc | 2 +- deps/v8/src/compiler/frame-states.cc | 9 +- deps/v8/src/compiler/frame-states.h | 3 +- deps/v8/src/compiler/frame.cc | 1 - deps/v8/src/compiler/graph-assembler.h | 2 + deps/v8/src/compiler/graph-visualizer.cc | 81 +- deps/v8/src/compiler/graph-visualizer.h | 5 - deps/v8/src/compiler/js-call-reducer.cc | 1252 ++--- deps/v8/src/compiler/js-call-reducer.h | 43 +- .../src/compiler/js-context-specialization.cc | 4 +- .../src/compiler/js-context-specialization.h | 14 +- deps/v8/src/compiler/js-create-lowering.cc | 112 +- deps/v8/src/compiler/js-create-lowering.h | 10 +- deps/v8/src/compiler/js-generic-lowering.cc | 8 +- deps/v8/src/compiler/js-graph.cc | 15 +- deps/v8/src/compiler/js-graph.h | 1 + deps/v8/src/compiler/js-heap-broker.cc | 467 +- deps/v8/src/compiler/js-heap-broker.h | 192 +- deps/v8/src/compiler/js-heap-copy-reducer.cc | 37 + deps/v8/src/compiler/js-inlining-heuristic.cc | 49 +- deps/v8/src/compiler/js-inlining-heuristic.h | 6 +- deps/v8/src/compiler/js-inlining.cc | 23 +- deps/v8/src/compiler/js-inlining.h | 7 +- deps/v8/src/compiler/js-intrinsic-lowering.cc | 74 +- deps/v8/src/compiler/js-intrinsic-lowering.h | 10 +- .../js-native-context-specialization.cc | 437 +- .../js-native-context-specialization.h | 17 +- deps/v8/src/compiler/js-operator.cc | 120 +- deps/v8/src/compiler/js-operator.h | 7 + deps/v8/src/compiler/js-type-hint-lowering.cc | 1 + deps/v8/src/compiler/js-typed-lowering.cc | 221 +- deps/v8/src/compiler/js-typed-lowering.h | 13 +- deps/v8/src/compiler/linkage.cc | 12 +- deps/v8/src/compiler/linkage.h | 16 +- deps/v8/src/compiler/load-elimination.cc | 2 +- deps/v8/src/compiler/machine-operator.cc | 1 + deps/v8/src/compiler/machine-operator.h | 1 + deps/v8/src/compiler/node-properties.cc | 82 +- deps/v8/src/compiler/node-properties.h | 11 +- deps/v8/src/compiler/opcodes.h | 53 +- deps/v8/src/compiler/operation-typer.cc | 124 +- deps/v8/src/compiler/operation-typer.h | 5 +- deps/v8/src/compiler/operator-properties.cc | 7 + deps/v8/src/compiler/osr.cc | 10 +- deps/v8/src/compiler/pipeline.cc | 587 +-- deps/v8/src/compiler/pipeline.h | 24 +- .../src/compiler/ppc/instruction-codes-ppc.h | 188 - .../src/compiler/property-access-builder.cc | 7 +- .../v8/src/compiler/property-access-builder.h | 10 +- deps/v8/src/compiler/raw-machine-assembler.cc | 337 +- deps/v8/src/compiler/raw-machine-assembler.h | 43 +- .../v8/src/compiler/redundancy-elimination.cc | 10 +- deps/v8/src/compiler/representation-change.cc | 70 +- deps/v8/src/compiler/representation-change.h | 12 +- .../compiler/s390/instruction-codes-s390.h | 225 - deps/v8/src/compiler/schedule.cc | 25 +- deps/v8/src/compiler/scheduler.cc | 28 +- deps/v8/src/compiler/simd-scalar-lowering.cc | 9 + deps/v8/src/compiler/simplified-lowering.cc | 298 +- deps/v8/src/compiler/simplified-lowering.h | 5 +- .../compiler/simplified-operator-reducer.cc | 17 +- .../compiler/simplified-operator-reducer.h | 7 +- deps/v8/src/compiler/simplified-operator.cc | 102 +- deps/v8/src/compiler/simplified-operator.h | 12 +- deps/v8/src/compiler/type-cache.h | 7 +- .../v8/src/compiler/type-narrowing-reducer.cc | 6 +- deps/v8/src/compiler/type-narrowing-reducer.h | 3 +- deps/v8/src/compiler/typed-optimization.cc | 196 +- deps/v8/src/compiler/typed-optimization.h | 14 +- deps/v8/src/compiler/typer.cc | 68 +- deps/v8/src/compiler/typer.h | 6 +- deps/v8/src/compiler/types.cc | 24 +- deps/v8/src/compiler/types.h | 6 +- deps/v8/src/compiler/verifier.cc | 39 +- deps/v8/src/compiler/wasm-compiler.cc | 1084 +++-- deps/v8/src/compiler/wasm-compiler.h | 111 +- deps/v8/src/constant-pool.cc | 212 + deps/v8/src/constant-pool.h | 159 + deps/v8/src/constants-arch.h | 28 + deps/v8/src/contexts-inl.h | 95 +- deps/v8/src/contexts.cc | 73 +- deps/v8/src/contexts.h | 278 +- deps/v8/src/conversions.cc | 108 +- deps/v8/src/conversions.h | 19 +- deps/v8/src/counters.cc | 15 +- deps/v8/src/counters.h | 156 +- deps/v8/src/d8-platforms.cc | 309 ++ deps/v8/src/d8-platforms.h | 29 + deps/v8/src/d8.cc | 245 +- deps/v8/src/d8.h | 7 +- deps/v8/src/date.cc | 14 +- deps/v8/src/date.h | 5 +- deps/v8/src/dateparser-inl.h | 10 +- deps/v8/src/dateparser.cc | 8 +- deps/v8/src/dateparser.h | 17 +- deps/v8/src/debug/debug-coverage.cc | 90 +- deps/v8/src/debug/debug-coverage.h | 1 + deps/v8/src/debug/debug-evaluate.cc | 18 +- deps/v8/src/debug/debug-interface.h | 48 +- deps/v8/src/debug/debug-property-iterator.cc | 213 + deps/v8/src/debug/debug-property-iterator.h | 62 + deps/v8/src/debug/debug-scopes.cc | 36 +- deps/v8/src/debug/debug-type-profile.cc | 8 +- deps/v8/src/debug/debug-type-profile.h | 1 + deps/v8/src/debug/debug.cc | 132 +- deps/v8/src/debug/debug.h | 7 +- deps/v8/src/debug/ia32/debug-ia32.cc | 4 - deps/v8/src/debug/liveedit.cc | 44 +- deps/v8/src/deoptimize-reason.h | 2 + deps/v8/src/deoptimizer.cc | 319 +- deps/v8/src/deoptimizer.h | 102 +- deps/v8/src/detachable-vector.cc | 19 + deps/v8/src/detachable-vector.h | 109 +- deps/v8/src/disasm.h | 4 +- deps/v8/src/disassembler.cc | 70 +- deps/v8/src/elements-inl.h | 2 +- deps/v8/src/elements-kind.h | 6 +- deps/v8/src/elements.cc | 621 ++- deps/v8/src/elements.h | 52 +- deps/v8/src/execution.cc | 47 +- deps/v8/src/execution.h | 4 +- .../v8/src/extensions/statistics-extension.cc | 10 +- deps/v8/src/external-reference-table.cc | 160 +- deps/v8/src/external-reference-table.h | 45 +- deps/v8/src/external-reference.cc | 702 ++- deps/v8/src/external-reference.h | 38 +- deps/v8/src/feedback-vector-inl.h | 78 +- deps/v8/src/feedback-vector.cc | 197 +- deps/v8/src/feedback-vector.h | 82 +- deps/v8/src/field-index-inl.h | 8 +- deps/v8/src/field-index.h | 7 +- deps/v8/src/field-type.cc | 43 +- deps/v8/src/field-type.h | 42 +- deps/v8/src/flag-definitions.h | 201 +- deps/v8/src/flags.cc | 61 +- deps/v8/src/frame-constants.h | 4 +- deps/v8/src/frames-inl.h | 27 + deps/v8/src/frames.cc | 263 +- deps/v8/src/frames.h | 91 +- deps/v8/src/futex-emulation.cc | 90 +- deps/v8/src/futex-emulation.h | 18 +- deps/v8/src/gdb-jit.cc | 36 +- deps/v8/src/global-handles.cc | 140 +- deps/v8/src/global-handles.h | 70 +- deps/v8/src/globals.h | 293 +- deps/v8/src/handler-table.cc | 6 +- deps/v8/src/handler-table.h | 8 +- deps/v8/src/handles-inl.h | 77 +- deps/v8/src/handles.cc | 40 +- deps/v8/src/handles.h | 153 +- deps/v8/src/heap-symbols.h | 73 +- deps/v8/src/heap/array-buffer-collector.cc | 8 +- deps/v8/src/heap/array-buffer-tracker-inl.h | 24 +- deps/v8/src/heap/array-buffer-tracker.cc | 41 +- deps/v8/src/heap/array-buffer-tracker.h | 22 +- deps/v8/src/heap/barrier.h | 26 +- deps/v8/src/heap/code-stats.cc | 6 +- deps/v8/src/heap/concurrent-marking.cc | 358 +- deps/v8/src/heap/concurrent-marking.h | 19 +- deps/v8/src/heap/embedder-tracing.cc | 68 +- deps/v8/src/heap/embedder-tracing.h | 78 +- deps/v8/src/heap/factory-inl.h | 9 +- deps/v8/src/heap/factory.cc | 666 ++- deps/v8/src/heap/factory.h | 88 +- deps/v8/src/heap/gc-tracer.cc | 86 +- deps/v8/src/heap/gc-tracer.h | 8 +- deps/v8/src/heap/heap-inl.h | 215 +- deps/v8/src/heap/heap-write-barrier-inl.h | 72 +- deps/v8/src/heap/heap-write-barrier.h | 39 +- deps/v8/src/heap/heap.cc | 1046 +++-- deps/v8/src/heap/heap.h | 515 +-- deps/v8/src/heap/incremental-marking-inl.h | 14 +- deps/v8/src/heap/incremental-marking-job.cc | 47 +- deps/v8/src/heap/incremental-marking-job.h | 23 +- deps/v8/src/heap/incremental-marking.cc | 276 +- deps/v8/src/heap/incremental-marking.h | 24 +- deps/v8/src/heap/item-parallel-job.cc | 2 +- deps/v8/src/heap/mark-compact-inl.h | 173 +- deps/v8/src/heap/mark-compact.cc | 1205 +++-- deps/v8/src/heap/mark-compact.h | 164 +- deps/v8/src/heap/marking.h | 4 - deps/v8/src/heap/memory-reducer.cc | 1 + deps/v8/src/heap/object-stats.cc | 150 +- deps/v8/src/heap/object-stats.h | 3 +- deps/v8/src/heap/objects-visiting-inl.h | 93 +- deps/v8/src/heap/objects-visiting.cc | 90 +- deps/v8/src/heap/objects-visiting.h | 136 +- deps/v8/src/heap/remembered-set.h | 127 +- deps/v8/src/heap/scavenge-job.cc | 1 + deps/v8/src/heap/scavenger-inl.h | 220 +- deps/v8/src/heap/scavenger.cc | 118 +- deps/v8/src/heap/scavenger.h | 86 +- deps/v8/src/heap/setup-heap-internal.cc | 172 +- deps/v8/src/heap/slot-set.cc | 99 + deps/v8/src/heap/slot-set.h | 278 +- deps/v8/src/heap/spaces-inl.h | 34 +- deps/v8/src/heap/spaces.cc | 436 +- deps/v8/src/heap/spaces.h | 208 +- deps/v8/src/heap/store-buffer.cc | 18 +- deps/v8/src/heap/store-buffer.h | 6 +- deps/v8/src/heap/sweeper.cc | 39 +- deps/v8/src/heap/sweeper.h | 14 +- deps/v8/src/heap/worklist.h | 15 +- deps/v8/src/ia32/assembler-ia32-inl.h | 9 +- deps/v8/src/ia32/assembler-ia32.cc | 94 +- deps/v8/src/ia32/assembler-ia32.h | 85 +- deps/v8/src/ia32/code-stubs-ia32.cc | 514 --- deps/v8/src/ia32/constants-ia32.h | 4 - deps/v8/src/ia32/deoptimizer-ia32.cc | 7 +- deps/v8/src/ia32/frame-constants-ia32.h | 5 +- .../v8/src/ia32/interface-descriptors-ia32.cc | 16 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 485 +- deps/v8/src/ia32/macro-assembler-ia32.h | 139 +- deps/v8/src/ic/accessor-assembler.cc | 157 +- deps/v8/src/ic/accessor-assembler.h | 5 +- deps/v8/src/ic/call-optimization.cc | 12 +- deps/v8/src/ic/call-optimization.h | 8 +- deps/v8/src/ic/handler-configuration-inl.h | 3 +- deps/v8/src/ic/handler-configuration.cc | 14 +- deps/v8/src/ic/handler-configuration.h | 4 +- deps/v8/src/ic/ic-inl.h | 18 +- deps/v8/src/ic/ic-stats.cc | 13 +- deps/v8/src/ic/ic-stats.h | 6 +- deps/v8/src/ic/ic.cc | 131 +- deps/v8/src/ic/ic.h | 30 +- deps/v8/src/ic/keyed-store-generic.cc | 407 +- deps/v8/src/ic/keyed-store-generic.h | 2 +- deps/v8/src/ic/stub-cache.cc | 78 +- deps/v8/src/ic/stub-cache.h | 30 +- deps/v8/src/identity-map.cc | 66 +- deps/v8/src/identity-map.h | 54 +- deps/v8/src/inspector/BUILD.gn | 45 +- deps/v8/src/inspector/DEPS | 1 - deps/v8/src/inspector/OWNERS | 3 + deps/v8/src/inspector/PRESUBMIT.py | 67 - .../build/check_injected_script_source.py | 88 - .../build/closure-compiler.tar.gz.sha1 | 1 - .../v8/src/inspector/build/compile-scripts.py | 150 - .../build/generate_protocol_externs.py | 246 - deps/v8/src/inspector/build/rjsmin.py | 295 -- deps/v8/src/inspector/build/xxd.py | 28 - deps/v8/src/inspector/custom-preview.cc | 388 ++ deps/v8/src/inspector/custom-preview.h | 22 + .../src/inspector/injected-script-source.js | 1116 ----- deps/v8/src/inspector/injected-script.cc | 462 +- deps/v8/src/inspector/injected-script.h | 52 +- .../src/inspector/injected_script_externs.js | 122 - deps/v8/src/inspector/inspected-context.cc | 32 +- deps/v8/src/inspector/inspected-context.h | 10 +- .../inspector/inspector_protocol_config.json | 1 - deps/v8/src/inspector/js_protocol.json | 61 +- deps/v8/src/inspector/js_protocol.pdl | 34 +- deps/v8/src/inspector/string-util.cc | 4 +- deps/v8/src/inspector/string-util.h | 14 + deps/v8/src/inspector/v8-console-message.cc | 30 +- deps/v8/src/inspector/v8-console.cc | 5 +- .../src/inspector/v8-debugger-agent-impl.cc | 41 +- .../v8/src/inspector/v8-debugger-agent-impl.h | 2 - deps/v8/src/inspector/v8-debugger-script.cc | 5 +- deps/v8/src/inspector/v8-debugger.cc | 304 +- deps/v8/src/inspector/v8-debugger.h | 26 +- deps/v8/src/inspector/v8-function-call.cc | 115 - deps/v8/src/inspector/v8-function-call.h | 65 - .../inspector/v8-heap-profiler-agent-impl.cc | 15 +- .../src/inspector/v8-injected-script-host.cc | 427 -- .../src/inspector/v8-injected-script-host.h | 53 - deps/v8/src/inspector/v8-inspector-impl.cc | 21 +- deps/v8/src/inspector/v8-inspector-impl.h | 7 +- .../inspector/v8-inspector-session-impl.cc | 15 +- .../src/inspector/v8-inspector-session-impl.h | 4 +- .../src/inspector/v8-internal-value-type.cc | 75 - .../v8/src/inspector/v8-internal-value-type.h | 23 - .../v8/src/inspector/v8-runtime-agent-impl.cc | 123 +- deps/v8/src/inspector/v8-stack-trace-impl.cc | 8 +- deps/v8/src/inspector/v8-stack-trace-impl.h | 3 + deps/v8/src/inspector/v8-value-utils.cc | 103 - deps/v8/src/inspector/v8-value-utils.h | 3 - deps/v8/src/inspector/value-mirror.cc | 1607 +++++++ deps/v8/src/inspector/value-mirror.h | 78 + deps/v8/src/inspector/wasm-translation.cc | 97 +- deps/v8/src/inspector/wasm-translation.h | 9 +- deps/v8/src/instruction-stream.cc | 84 - deps/v8/src/instruction-stream.h | 39 - deps/v8/src/interface-descriptors.cc | 27 +- deps/v8/src/interface-descriptors.h | 85 +- .../interpreter/bytecode-array-accessor.cc | 4 +- .../src/interpreter/bytecode-array-accessor.h | 3 +- .../src/interpreter/bytecode-array-builder.cc | 14 +- .../src/interpreter/bytecode-array-builder.h | 10 +- .../src/interpreter/bytecode-array-writer.h | 2 + deps/v8/src/interpreter/bytecode-flags.cc | 1 - deps/v8/src/interpreter/bytecode-generator.cc | 206 +- deps/v8/src/interpreter/bytecode-generator.h | 18 +- deps/v8/src/interpreter/bytecodes.h | 13 +- .../src/interpreter/constant-array-builder.cc | 10 +- .../src/interpreter/constant-array-builder.h | 19 +- .../src/interpreter/interpreter-assembler.cc | 48 +- .../src/interpreter/interpreter-assembler.h | 9 +- .../src/interpreter/interpreter-generator.cc | 262 +- .../interpreter-intrinsics-generator.cc | 53 +- .../src/interpreter/interpreter-intrinsics.h | 45 +- deps/v8/src/interpreter/interpreter.cc | 100 +- deps/v8/src/interpreter/interpreter.h | 19 +- deps/v8/src/intl.cc | 420 -- deps/v8/src/intl.h | 82 - deps/v8/src/isolate-allocator.cc | 160 + deps/v8/src/isolate-allocator.h | 63 + deps/v8/src/isolate-data.h | 205 + deps/v8/src/isolate-inl.h | 32 +- deps/v8/src/isolate.cc | 1147 ++--- deps/v8/src/isolate.h | 543 +-- deps/v8/src/js/array.js | 65 +- deps/v8/src/js/intl.js | 450 -- deps/v8/src/js/macros.py | 34 +- deps/v8/src/json-parser.cc | 54 +- deps/v8/src/json-stringifier.cc | 33 +- deps/v8/src/keys.cc | 36 +- deps/v8/src/layout-descriptor-inl.h | 55 +- deps/v8/src/layout-descriptor.cc | 36 +- deps/v8/src/layout-descriptor.h | 42 +- .../default-foreground-task-runner.cc | 21 +- .../default-foreground-task-runner.h | 10 +- deps/v8/src/libplatform/default-platform.cc | 14 +- .../default-worker-threads-task-runner.cc | 6 +- deps/v8/src/libplatform/task-queue.cc | 10 +- .../src/libplatform/tracing/trace-buffer.cc | 6 +- .../libplatform/tracing/tracing-controller.cc | 12 +- deps/v8/src/libsampler/sampler.cc | 29 +- deps/v8/src/libsampler/sampler.h | 6 + deps/v8/src/locked-queue-inl.h | 8 +- deps/v8/src/log-utils.cc | 18 +- deps/v8/src/log-utils.h | 14 +- deps/v8/src/log.cc | 226 +- deps/v8/src/log.h | 118 +- deps/v8/src/lookup-cache-inl.h | 9 +- deps/v8/src/lookup-cache.cc | 2 +- deps/v8/src/lookup-cache.h | 16 +- deps/v8/src/lookup-inl.h | 42 +- deps/v8/src/lookup.cc | 116 +- deps/v8/src/lookup.h | 59 +- deps/v8/src/machine-type.h | 6 + deps/v8/src/macro-assembler.h | 22 +- deps/v8/src/map-updater.cc | 53 +- deps/v8/src/map-updater.h | 4 +- deps/v8/src/math-random.cc | 16 +- deps/v8/src/math-random.h | 6 +- deps/v8/src/maybe-handles-inl.h | 8 +- deps/v8/src/maybe-handles.h | 30 +- deps/v8/src/memcopy.cc | 74 + deps/v8/src/memcopy.h | 497 ++ deps/v8/src/message-template.h | 564 +++ deps/v8/src/messages.cc | 91 +- deps/v8/src/messages.h | 554 +-- deps/v8/src/microtask-queue.cc | 153 + deps/v8/src/microtask-queue.h | 78 + deps/v8/src/mips/assembler-mips-inl.h | 73 +- deps/v8/src/mips/assembler-mips.cc | 265 +- deps/v8/src/mips/assembler-mips.h | 75 +- deps/v8/src/mips/code-stubs-mips.cc | 596 --- deps/v8/src/mips/code-stubs-mips.h | 31 - deps/v8/src/mips/constants-mips.h | 6 +- deps/v8/src/mips/deoptimizer-mips.cc | 2 - deps/v8/src/mips/disasm-mips.cc | 22 +- deps/v8/src/mips/frame-constants-mips.h | 8 +- .../v8/src/mips/interface-descriptors-mips.cc | 14 +- deps/v8/src/mips/macro-assembler-mips.cc | 299 +- deps/v8/src/mips/macro-assembler-mips.h | 74 +- deps/v8/src/mips/simulator-mips.cc | 287 +- deps/v8/src/mips/simulator-mips.h | 90 + deps/v8/src/mips64/assembler-mips64-inl.h | 4 +- deps/v8/src/mips64/assembler-mips64.cc | 28 +- deps/v8/src/mips64/assembler-mips64.h | 26 +- deps/v8/src/mips64/code-stubs-mips64.cc | 602 --- deps/v8/src/mips64/code-stubs-mips64.h | 31 - deps/v8/src/mips64/deoptimizer-mips64.cc | 2 - deps/v8/src/mips64/frame-constants-mips64.h | 4 +- .../mips64/interface-descriptors-mips64.cc | 14 +- deps/v8/src/mips64/macro-assembler-mips64.cc | 204 +- deps/v8/src/mips64/macro-assembler-mips64.h | 65 +- deps/v8/src/mips64/simulator-mips64.cc | 353 +- deps/v8/src/mips64/simulator-mips64.h | 93 + deps/v8/src/objects-body-descriptors-inl.h | 329 +- deps/v8/src/objects-body-descriptors.h | 52 +- deps/v8/src/objects-debug.cc | 370 +- deps/v8/src/objects-definitions.h | 24 +- deps/v8/src/objects-inl.h | 934 +--- deps/v8/src/objects-printer.cc | 695 +-- deps/v8/src/objects.cc | 1991 ++++---- deps/v8/src/objects.h | 817 +--- deps/v8/src/objects/allocation-site-inl.h | 8 +- deps/v8/src/objects/allocation-site.h | 28 +- deps/v8/src/objects/api-callbacks-inl.h | 3 +- deps/v8/src/objects/api-callbacks.h | 61 +- deps/v8/src/objects/arguments-inl.h | 21 +- deps/v8/src/objects/arguments.h | 61 +- deps/v8/src/objects/bigint.cc | 132 +- deps/v8/src/objects/bigint.h | 75 +- deps/v8/src/objects/builtin-function-id.h | 7 + deps/v8/src/objects/code-inl.h | 241 +- deps/v8/src/objects/code.h | 262 +- deps/v8/src/objects/compilation-cache-inl.h | 28 +- deps/v8/src/objects/compilation-cache.h | 59 +- deps/v8/src/objects/data-handler-inl.h | 2 +- deps/v8/src/objects/data-handler.h | 24 +- deps/v8/src/objects/debug-objects-inl.h | 26 +- deps/v8/src/objects/debug-objects.cc | 8 +- deps/v8/src/objects/debug-objects.h | 43 +- deps/v8/src/objects/descriptor-array-inl.h | 215 + deps/v8/src/objects/descriptor-array.h | 149 +- deps/v8/src/objects/dictionary-inl.h | 213 + deps/v8/src/objects/dictionary.h | 49 +- deps/v8/src/objects/embedder-data-array-inl.h | 39 + deps/v8/src/objects/embedder-data-array.cc | 27 + deps/v8/src/objects/embedder-data-array.h | 78 + deps/v8/src/objects/embedder-data-slot-inl.h | 86 + deps/v8/src/objects/embedder-data-slot.h | 81 + deps/v8/src/objects/fixed-array-inl.h | 322 +- deps/v8/src/objects/fixed-array.h | 241 +- deps/v8/src/objects/frame-array-inl.h | 7 +- deps/v8/src/objects/frame-array.h | 13 +- deps/v8/src/objects/hash-table-inl.h | 31 +- deps/v8/src/objects/hash-table.h | 35 +- deps/v8/src/objects/heap-object-inl.h | 246 + deps/v8/src/objects/heap-object.h | 255 ++ deps/v8/src/objects/instance-type-inl.h | 82 + deps/v8/src/objects/instance-type.h | 575 +++ deps/v8/src/objects/intl-objects-inl.h | 29 - deps/v8/src/objects/intl-objects.cc | 1346 +++--- deps/v8/src/objects/intl-objects.h | 176 +- deps/v8/src/objects/js-array-buffer-inl.h | 36 +- deps/v8/src/objects/js-array-buffer.cc | 11 +- deps/v8/src/objects/js-array-buffer.h | 98 +- deps/v8/src/objects/js-array-inl.h | 9 +- deps/v8/src/objects/js-array.h | 64 +- deps/v8/src/objects/js-break-iterator-inl.h | 6 +- deps/v8/src/objects/js-break-iterator.cc | 127 +- deps/v8/src/objects/js-break-iterator.h | 51 +- deps/v8/src/objects/js-collator-inl.h | 4 +- deps/v8/src/objects/js-collator.cc | 223 +- deps/v8/src/objects/js-collator.h | 19 +- deps/v8/src/objects/js-collection-inl.h | 42 +- deps/v8/src/objects/js-collection.h | 65 +- deps/v8/src/objects/js-date-time-format-inl.h | 4 +- deps/v8/src/objects/js-date-time-format.cc | 378 +- deps/v8/src/objects/js-date-time-format.h | 27 +- deps/v8/src/objects/js-generator-inl.h | 26 +- deps/v8/src/objects/js-generator.h | 103 +- deps/v8/src/objects/js-list-format-inl.h | 6 +- deps/v8/src/objects/js-list-format.cc | 362 +- deps/v8/src/objects/js-list-format.h | 29 +- deps/v8/src/objects/js-locale-inl.h | 6 +- deps/v8/src/objects/js-locale.cc | 13 +- deps/v8/src/objects/js-locale.h | 45 +- deps/v8/src/objects/js-number-format-inl.h | 6 +- deps/v8/src/objects/js-number-format.cc | 229 +- deps/v8/src/objects/js-number-format.h | 38 +- deps/v8/src/objects/js-objects-inl.h | 215 +- deps/v8/src/objects/js-objects.h | 372 +- deps/v8/src/objects/js-plural-rules-inl.h | 19 +- deps/v8/src/objects/js-plural-rules.cc | 107 +- deps/v8/src/objects/js-plural-rules.h | 50 +- deps/v8/src/objects/js-promise-inl.h | 3 +- deps/v8/src/objects/js-promise.h | 19 +- deps/v8/src/objects/js-proxy-inl.h | 4 +- deps/v8/src/objects/js-proxy.h | 34 +- deps/v8/src/objects/js-regexp-inl.h | 13 +- .../objects/js-regexp-string-iterator-inl.h | 8 +- .../src/objects/js-regexp-string-iterator.h | 22 +- deps/v8/src/objects/js-regexp.h | 65 +- .../src/objects/js-relative-time-format-inl.h | 8 +- .../v8/src/objects/js-relative-time-format.cc | 177 +- deps/v8/src/objects/js-relative-time-format.h | 27 +- deps/v8/src/objects/js-segment-iterator-inl.h | 50 + deps/v8/src/objects/js-segment-iterator.cc | 282 ++ deps/v8/src/objects/js-segment-iterator.h | 110 + deps/v8/src/objects/js-segmenter-inl.h | 6 +- deps/v8/src/objects/js-segmenter.cc | 146 +- deps/v8/src/objects/js-segmenter.h | 27 +- deps/v8/src/objects/js-weak-refs-inl.h | 175 + deps/v8/src/objects/js-weak-refs.h | 172 + deps/v8/src/objects/literal-objects-inl.h | 20 +- deps/v8/src/objects/literal-objects.cc | 43 +- deps/v8/src/objects/literal-objects.h | 19 +- deps/v8/src/objects/managed.cc | 4 +- deps/v8/src/objects/managed.h | 2 +- deps/v8/src/objects/map-inl.h | 143 +- deps/v8/src/objects/map.h | 178 +- deps/v8/src/objects/maybe-object-inl.h | 92 +- deps/v8/src/objects/maybe-object.h | 114 +- deps/v8/src/objects/microtask-inl.h | 4 +- deps/v8/src/objects/microtask-queue.cc | 40 - deps/v8/src/objects/microtask-queue.h | 55 - deps/v8/src/objects/microtask.h | 30 +- deps/v8/src/objects/module-inl.h | 31 +- deps/v8/src/objects/module.cc | 10 +- deps/v8/src/objects/module.h | 110 +- deps/v8/src/objects/name-inl.h | 41 +- deps/v8/src/objects/name.h | 37 +- deps/v8/src/objects/object-macros-undef.h | 36 +- deps/v8/src/objects/object-macros.h | 312 +- deps/v8/src/objects/ordered-hash-table-inl.h | 125 +- deps/v8/src/objects/ordered-hash-table.cc | 254 +- deps/v8/src/objects/ordered-hash-table.h | 401 +- deps/v8/src/objects/promise-inl.h | 12 +- deps/v8/src/objects/promise.h | 88 +- deps/v8/src/objects/property-array-inl.h | 31 +- deps/v8/src/objects/property-array.h | 25 +- deps/v8/src/objects/property-cell-inl.h | 38 + deps/v8/src/objects/property-cell.h | 82 + .../objects/property-descriptor-object-inl.h | 3 +- .../src/objects/property-descriptor-object.h | 4 +- deps/v8/src/objects/prototype-info-inl.h | 12 +- deps/v8/src/objects/prototype-info.h | 41 +- deps/v8/src/objects/regexp-match-info.h | 23 +- deps/v8/src/objects/scope-info.cc | 56 +- deps/v8/src/objects/scope-info.h | 24 +- deps/v8/src/objects/script-inl.h | 17 +- deps/v8/src/objects/script.h | 50 +- .../v8/src/objects/shared-function-info-inl.h | 151 +- deps/v8/src/objects/shared-function-info.h | 242 +- deps/v8/src/objects/slots-atomic-inl.h | 100 + deps/v8/src/objects/slots-inl.h | 137 + deps/v8/src/objects/slots.h | 208 + .../{microtask-queue-inl.h => smi-inl.h} | 18 +- deps/v8/src/objects/smi.h | 114 + deps/v8/src/objects/stack-frame-info.h | 26 +- deps/v8/src/objects/string-inl.h | 195 +- deps/v8/src/objects/string-table-inl.h | 69 + deps/v8/src/objects/string-table.h | 24 +- deps/v8/src/objects/string.h | 212 +- deps/v8/src/objects/template-objects.h | 4 +- deps/v8/src/objects/templates-inl.h | 79 +- deps/v8/src/objects/templates.h | 172 +- deps/v8/src/optimized-compilation-info.cc | 32 +- deps/v8/src/optimized-compilation-info.h | 41 +- deps/v8/src/parsing/duplicate-finder.h | 36 - deps/v8/src/parsing/expression-classifier.h | 279 +- deps/v8/src/parsing/func-name-inferrer.cc | 33 +- deps/v8/src/parsing/func-name-inferrer.h | 65 +- deps/v8/src/parsing/keywords-gen.h | 177 + deps/v8/src/parsing/keywords.txt | 64 + deps/v8/src/parsing/parse-info.cc | 23 +- deps/v8/src/parsing/parse-info.h | 42 +- deps/v8/src/parsing/parser-base.h | 4045 ++++++++--------- deps/v8/src/parsing/parser.cc | 1294 +++--- deps/v8/src/parsing/parser.h | 313 +- deps/v8/src/parsing/pattern-rewriter.cc | 57 +- .../src/parsing/preparsed-scope-data-impl.h | 73 +- deps/v8/src/parsing/preparsed-scope-data.cc | 104 +- deps/v8/src/parsing/preparsed-scope-data.h | 12 +- deps/v8/src/parsing/preparser.cc | 347 +- deps/v8/src/parsing/preparser.h | 617 ++- deps/v8/src/parsing/rewriter.cc | 79 +- deps/v8/src/parsing/rewriter.h | 10 - .../src/parsing/scanner-character-streams.cc | 44 +- deps/v8/src/parsing/scanner-inl.h | 772 ++-- deps/v8/src/parsing/scanner.cc | 199 +- deps/v8/src/parsing/scanner.h | 236 +- deps/v8/src/parsing/token.cc | 29 +- deps/v8/src/parsing/token.h | 192 +- .../src/pending-compilation-error-handler.cc | 32 +- .../src/pending-compilation-error-handler.h | 33 +- deps/v8/src/perf-jit.cc | 27 +- deps/v8/src/perf-jit.h | 20 +- deps/v8/src/pointer-with-payload.h | 104 + deps/v8/src/ppc/assembler-ppc-inl.h | 4 +- deps/v8/src/ppc/assembler-ppc.cc | 14 +- deps/v8/src/ppc/assembler-ppc.h | 26 +- deps/v8/src/ppc/code-stubs-ppc.cc | 472 +- deps/v8/src/ppc/code-stubs-ppc.h | 31 - deps/v8/src/ppc/deoptimizer-ppc.cc | 2 - deps/v8/src/ppc/disasm-ppc.cc | 10 +- deps/v8/src/ppc/frame-constants-ppc.cc | 8 +- deps/v8/src/ppc/frame-constants-ppc.h | 2 +- deps/v8/src/ppc/interface-descriptors-ppc.cc | 14 +- deps/v8/src/ppc/macro-assembler-ppc.cc | 145 +- deps/v8/src/ppc/macro-assembler-ppc.h | 61 +- deps/v8/src/ppc/simulator-ppc.cc | 519 +-- deps/v8/src/ppc/simulator-ppc.h | 154 +- deps/v8/src/profiler/allocation-tracker.cc | 16 +- deps/v8/src/profiler/allocation-tracker.h | 2 +- deps/v8/src/profiler/cpu-profiler-inl.h | 6 +- deps/v8/src/profiler/cpu-profiler.cc | 127 +- deps/v8/src/profiler/cpu-profiler.h | 87 +- deps/v8/src/profiler/heap-profiler.cc | 2 +- .../src/profiler/heap-snapshot-generator.cc | 288 +- .../v8/src/profiler/heap-snapshot-generator.h | 66 +- deps/v8/src/profiler/profile-generator.cc | 2 +- deps/v8/src/profiler/profile-generator.h | 4 +- deps/v8/src/profiler/profiler-listener.cc | 50 +- deps/v8/src/profiler/profiler-listener.h | 38 +- .../v8/src/profiler/sampling-heap-profiler.cc | 74 +- deps/v8/src/profiler/sampling-heap-profiler.h | 101 +- deps/v8/src/profiler/strings-storage.cc | 8 +- deps/v8/src/profiler/strings-storage.h | 4 +- deps/v8/src/profiler/tick-sample.cc | 7 +- deps/v8/src/profiler/tracing-cpu-profiler.cc | 6 +- deps/v8/src/property-descriptor.cc | 4 +- deps/v8/src/property-details.h | 9 +- deps/v8/src/property.cc | 3 +- deps/v8/src/prototype-inl.h | 10 +- deps/v8/src/prototype.h | 8 +- deps/v8/src/ptr-compr.h | 24 + .../regexp/arm/regexp-macro-assembler-arm.cc | 34 +- .../regexp/arm/regexp-macro-assembler-arm.h | 4 +- .../arm64/regexp-macro-assembler-arm64.cc | 44 +- .../arm64/regexp-macro-assembler-arm64.h | 7 +- .../ia32/regexp-macro-assembler-ia32.cc | 32 +- .../regexp/ia32/regexp-macro-assembler-ia32.h | 5 +- deps/v8/src/regexp/interpreter-irregexp.cc | 2 +- deps/v8/src/regexp/jsregexp-inl.h | 4 + deps/v8/src/regexp/jsregexp.cc | 42 +- deps/v8/src/regexp/jsregexp.h | 34 +- .../mips/regexp-macro-assembler-mips.cc | 45 +- .../regexp/mips/regexp-macro-assembler-mips.h | 4 +- .../mips64/regexp-macro-assembler-mips64.cc | 45 +- .../mips64/regexp-macro-assembler-mips64.h | 3 +- .../regexp/ppc/regexp-macro-assembler-ppc.cc | 21 +- .../regexp/ppc/regexp-macro-assembler-ppc.h | 3 +- .../regexp-macro-assembler-irregexp-inl.h | 2 + deps/v8/src/regexp/regexp-macro-assembler.cc | 50 +- deps/v8/src/regexp/regexp-macro-assembler.h | 18 +- deps/v8/src/regexp/regexp-parser.cc | 15 +- deps/v8/src/regexp/regexp-utils.cc | 37 +- deps/v8/src/regexp/regexp-utils.h | 3 +- .../s390/regexp-macro-assembler-s390.cc | 31 +- .../regexp/s390/regexp-macro-assembler-s390.h | 3 +- .../regexp/x64/regexp-macro-assembler-x64.cc | 18 +- .../regexp/x64/regexp-macro-assembler-x64.h | 19 +- deps/v8/src/register-configuration.cc | 114 +- deps/v8/src/register-configuration.h | 28 +- deps/v8/src/reloc-info.cc | 43 +- deps/v8/src/reloc-info.h | 31 +- deps/v8/src/roots-inl.h | 79 +- deps/v8/src/roots.cc | 15 + deps/v8/src/roots.h | 327 +- deps/v8/src/runtime-profiler.cc | 70 +- deps/v8/src/runtime-profiler.h | 17 +- deps/v8/src/runtime/runtime-array.cc | 62 +- deps/v8/src/runtime/runtime-atomics.cc | 9 + deps/v8/src/runtime/runtime-classes.cc | 90 +- deps/v8/src/runtime/runtime-collections.cc | 1 + deps/v8/src/runtime/runtime-compiler.cc | 12 +- deps/v8/src/runtime/runtime-date.cc | 2 +- deps/v8/src/runtime/runtime-debug.cc | 37 +- deps/v8/src/runtime/runtime-forin.cc | 1 + deps/v8/src/runtime/runtime-function.cc | 4 +- deps/v8/src/runtime/runtime-futex.cc | 2 + deps/v8/src/runtime/runtime-generator.cc | 50 +- deps/v8/src/runtime/runtime-internal.cc | 81 +- deps/v8/src/runtime/runtime-interpreter.cc | 20 +- deps/v8/src/runtime/runtime-intl.cc | 82 +- deps/v8/src/runtime/runtime-literals.cc | 40 +- deps/v8/src/runtime/runtime-numbers.cc | 7 +- deps/v8/src/runtime/runtime-object.cc | 51 +- deps/v8/src/runtime/runtime-operators.cc | 1 + deps/v8/src/runtime/runtime-promise.cc | 90 +- deps/v8/src/runtime/runtime-proxy.cc | 1 + deps/v8/src/runtime/runtime-regexp.cc | 65 +- deps/v8/src/runtime/runtime-scopes.cc | 59 +- deps/v8/src/runtime/runtime-strings.cc | 58 +- deps/v8/src/runtime/runtime-symbol.cc | 5 +- deps/v8/src/runtime/runtime-test.cc | 95 +- deps/v8/src/runtime/runtime-typedarray.cc | 3 +- deps/v8/src/runtime/runtime-utils.h | 2 +- deps/v8/src/runtime/runtime-wasm.cc | 166 +- deps/v8/src/runtime/runtime-weak-refs.cc | 28 + deps/v8/src/runtime/runtime.cc | 13 +- deps/v8/src/runtime/runtime.h | 61 +- deps/v8/src/s390/assembler-s390-inl.h | 4 +- deps/v8/src/s390/assembler-s390.cc | 39 +- deps/v8/src/s390/assembler-s390.h | 21 +- deps/v8/src/s390/code-stubs-s390.cc | 470 +- deps/v8/src/s390/code-stubs-s390.h | 31 - deps/v8/src/s390/deoptimizer-s390.cc | 2 - deps/v8/src/s390/disasm-s390.cc | 8 +- deps/v8/src/s390/frame-constants-s390.cc | 8 +- deps/v8/src/s390/frame-constants-s390.h | 2 +- .../v8/src/s390/interface-descriptors-s390.cc | 14 +- deps/v8/src/s390/macro-assembler-s390.cc | 190 +- deps/v8/src/s390/macro-assembler-s390.h | 52 +- deps/v8/src/s390/simulator-s390.cc | 17 +- deps/v8/src/safepoint-table.cc | 2 +- deps/v8/src/safepoint-table.h | 5 +- deps/v8/src/setup-isolate.h | 2 +- deps/v8/src/signature.h | 12 +- deps/v8/src/simulator-base.cc | 5 +- deps/v8/src/simulator.h | 31 +- .../builtin-deserializer-allocator.cc | 176 - .../snapshot/builtin-deserializer-allocator.h | 127 - deps/v8/src/snapshot/builtin-deserializer.cc | 167 - deps/v8/src/snapshot/builtin-deserializer.h | 83 - .../snapshot/builtin-serializer-allocator.cc | 61 - .../snapshot/builtin-serializer-allocator.h | 50 - deps/v8/src/snapshot/builtin-serializer.cc | 110 - deps/v8/src/snapshot/builtin-serializer.h | 59 - deps/v8/src/snapshot/code-serializer.cc | 64 +- deps/v8/src/snapshot/code-serializer.h | 29 +- ...allocator.cc => deserializer-allocator.cc} | 111 +- ...r-allocator.h => deserializer-allocator.h} | 23 +- deps/v8/src/snapshot/deserializer.cc | 432 +- deps/v8/src/snapshot/deserializer.h | 66 +- deps/v8/src/snapshot/embedded-data.cc | 333 ++ deps/v8/src/snapshot/embedded-data.h | 134 + deps/v8/src/snapshot/embedded-empty.cc | 20 +- deps/v8/src/snapshot/embedded-file-writer.cc | 445 ++ deps/v8/src/snapshot/embedded-file-writer.h | 319 ++ deps/v8/src/snapshot/macros.h | 82 - deps/v8/src/snapshot/mksnapshot.cc | 223 +- deps/v8/src/snapshot/object-deserializer.cc | 34 +- deps/v8/src/snapshot/object-deserializer.h | 8 +- deps/v8/src/snapshot/partial-deserializer.cc | 5 +- deps/v8/src/snapshot/partial-deserializer.h | 2 +- deps/v8/src/snapshot/partial-serializer.cc | 156 +- deps/v8/src/snapshot/partial-serializer.h | 14 +- .../v8/src/snapshot/read-only-deserializer.cc | 60 + deps/v8/src/snapshot/read-only-deserializer.h | 34 + deps/v8/src/snapshot/read-only-serializer.cc | 105 + deps/v8/src/snapshot/read-only-serializer.h | 46 + deps/v8/src/snapshot/references.h | 4 +- deps/v8/src/snapshot/roots-serializer.cc | 67 + deps/v8/src/snapshot/roots-serializer.h | 64 + ...r-allocator.cc => serializer-allocator.cc} | 33 +- ...zer-allocator.h => serializer-allocator.h} | 16 +- deps/v8/src/snapshot/serializer-common.cc | 13 +- deps/v8/src/snapshot/serializer-common.h | 43 +- deps/v8/src/snapshot/serializer.cc | 325 +- deps/v8/src/snapshot/serializer.h | 102 +- deps/v8/src/snapshot/snapshot-common.cc | 453 +- deps/v8/src/snapshot/snapshot-external.cc | 6 +- deps/v8/src/snapshot/snapshot-source-sink.cc | 3 + deps/v8/src/snapshot/snapshot-source-sink.h | 2 + deps/v8/src/snapshot/snapshot.h | 125 +- deps/v8/src/snapshot/startup-deserializer.cc | 74 +- deps/v8/src/snapshot/startup-deserializer.h | 15 +- deps/v8/src/snapshot/startup-serializer.cc | 140 +- deps/v8/src/snapshot/startup-serializer.h | 82 +- deps/v8/src/source-position-table.cc | 8 +- deps/v8/src/source-position-table.h | 4 +- deps/v8/src/source-position.cc | 10 +- deps/v8/src/source-position.h | 4 +- deps/v8/src/string-builder-inl.h | 27 +- deps/v8/src/string-builder.cc | 24 +- deps/v8/src/string-constants.h | 1 + deps/v8/src/string-hasher-inl.h | 99 +- deps/v8/src/string-hasher.h | 11 +- deps/v8/src/string-stream.cc | 41 +- deps/v8/src/string-stream.h | 22 +- deps/v8/src/task-utils.cc | 64 + deps/v8/src/task-utils.h | 33 + deps/v8/src/thread-id.cc | 47 + deps/v8/src/thread-id.h | 73 + deps/v8/src/torque-assembler.h | 58 - deps/v8/src/torque/ast.h | 235 +- deps/v8/src/torque/cfg.cc | 89 +- deps/v8/src/torque/cfg.h | 45 +- deps/v8/src/torque/csa-generator.cc | 401 +- deps/v8/src/torque/csa-generator.h | 13 + deps/v8/src/torque/declarable.cc | 103 +- deps/v8/src/torque/declarable.h | 391 +- deps/v8/src/torque/declaration-visitor.cc | 580 +-- deps/v8/src/torque/declaration-visitor.h | 140 +- deps/v8/src/torque/declarations.cc | 404 +- deps/v8/src/torque/declarations.h | 273 +- deps/v8/src/torque/file-visitor.cc | 60 +- deps/v8/src/torque/file-visitor.h | 56 +- deps/v8/src/torque/global-context.h | 129 +- deps/v8/src/torque/implementation-visitor.cc | 1609 ++++--- deps/v8/src/torque/implementation-visitor.h | 246 +- deps/v8/src/torque/instructions.cc | 103 +- deps/v8/src/torque/instructions.h | 91 +- deps/v8/src/torque/scope.cc | 51 - deps/v8/src/torque/scope.h | 169 - deps/v8/src/torque/source-positions.h | 6 + deps/v8/src/torque/torque-parser.cc | 325 +- deps/v8/src/torque/torque.cc | 33 +- deps/v8/src/torque/type-oracle.h | 87 +- deps/v8/src/torque/types.cc | 55 +- deps/v8/src/torque/types.h | 129 +- deps/v8/src/torque/utils.cc | 21 +- deps/v8/src/torque/utils.h | 15 +- deps/v8/src/tracing/OWNER | 1 + deps/v8/src/tracing/traced-value.cc | 24 +- deps/v8/src/transitions-inl.h | 104 +- deps/v8/src/transitions.cc | 185 +- deps/v8/src/transitions.h | 129 +- deps/v8/src/trap-handler/DEPS | 7 + ...nside-linux.cc => handler-inside-posix.cc} | 54 +- .../src/trap-handler/handler-inside-posix.h | 31 + .../v8/src/trap-handler/handler-inside-win.cc | 77 + deps/v8/src/trap-handler/handler-inside-win.h | 27 + deps/v8/src/trap-handler/handler-inside.cc | 20 +- ...side-linux.cc => handler-outside-posix.cc} | 25 +- .../src/trap-handler/handler-outside-win.cc | 39 +- deps/v8/src/trap-handler/handler-outside.cc | 17 +- deps/v8/src/trap-handler/handler-shared.cc | 19 +- .../src/trap-handler/trap-handler-internal.h | 13 +- deps/v8/src/trap-handler/trap-handler.h | 38 +- deps/v8/src/turbo-assembler.cc | 53 +- deps/v8/src/turbo-assembler.h | 26 +- deps/v8/src/type-hints.cc | 2 + deps/v8/src/type-hints.h | 1 + deps/v8/src/unicode-cache-inl.h | 43 - deps/v8/src/unicode-cache.h | 17 +- deps/v8/src/unicode-decoder.h | 2 +- deps/v8/src/unoptimized-compilation-info.h | 9 +- deps/v8/src/unwinder.cc | 98 + deps/v8/src/uri.cc | 27 +- deps/v8/src/utils-inl.h | 16 +- deps/v8/src/utils.cc | 66 +- deps/v8/src/utils.h | 557 +-- deps/v8/src/v8threads.cc | 5 +- deps/v8/src/v8threads.h | 2 +- deps/v8/src/value-serializer.cc | 70 +- deps/v8/src/value-serializer.h | 26 +- deps/v8/src/vector.h | 15 +- deps/v8/src/visitors.h | 42 +- deps/v8/src/wasm/OWNERS | 3 - .../wasm/baseline/arm/liftoff-assembler-arm.h | 1379 +++++- .../baseline/arm64/liftoff-assembler-arm64.h | 29 +- .../baseline/ia32/liftoff-assembler-ia32.h | 93 +- .../wasm/baseline/liftoff-assembler-defs.h | 27 +- .../v8/src/wasm/baseline/liftoff-assembler.cc | 49 +- deps/v8/src/wasm/baseline/liftoff-assembler.h | 27 +- deps/v8/src/wasm/baseline/liftoff-compiler.cc | 448 +- deps/v8/src/wasm/baseline/liftoff-compiler.h | 16 +- deps/v8/src/wasm/baseline/liftoff-register.h | 11 +- .../baseline/mips/liftoff-assembler-mips.h | 36 +- .../mips64/liftoff-assembler-mips64.h | 15 +- .../wasm/baseline/ppc/liftoff-assembler-ppc.h | 8 +- .../baseline/s390/liftoff-assembler-s390.h | 8 +- .../wasm/baseline/x64/liftoff-assembler-x64.h | 42 +- deps/v8/src/wasm/compilation-environment.h | 101 + deps/v8/src/wasm/decoder.h | 85 +- deps/v8/src/wasm/function-body-decoder-impl.h | 539 ++- deps/v8/src/wasm/function-body-decoder.cc | 809 +--- deps/v8/src/wasm/function-body-decoder.h | 13 - deps/v8/src/wasm/function-compiler.cc | 131 +- deps/v8/src/wasm/function-compiler.h | 93 +- deps/v8/src/wasm/graph-builder-interface.cc | 884 ++++ deps/v8/src/wasm/graph-builder-interface.h | 36 + deps/v8/src/wasm/jump-table-assembler.cc | 16 +- deps/v8/src/wasm/module-compiler.cc | 1235 ++--- deps/v8/src/wasm/module-compiler.h | 67 +- deps/v8/src/wasm/module-decoder.cc | 388 +- deps/v8/src/wasm/module-decoder.h | 2 +- deps/v8/src/wasm/signature-map.cc | 20 +- deps/v8/src/wasm/signature-map.h | 3 - deps/v8/src/wasm/streaming-decoder.cc | 263 +- deps/v8/src/wasm/streaming-decoder.h | 157 +- deps/v8/src/wasm/value-type.h | 6 + deps/v8/src/wasm/wasm-code-manager.cc | 279 +- deps/v8/src/wasm/wasm-code-manager.h | 94 +- deps/v8/src/wasm/wasm-constants.h | 22 +- deps/v8/src/wasm/wasm-debug.cc | 17 +- deps/v8/src/wasm/wasm-engine.cc | 119 +- deps/v8/src/wasm/wasm-engine.h | 19 +- deps/v8/src/wasm/wasm-external-refs.cc | 9 + deps/v8/src/wasm/wasm-external-refs.h | 4 + deps/v8/src/wasm/wasm-feature-flags.h | 4 +- .../src/wasm/wasm-import-wrapper-cache-inl.h | 57 + deps/v8/src/wasm/wasm-interpreter.cc | 61 +- deps/v8/src/wasm/wasm-js.cc | 268 +- deps/v8/src/wasm/wasm-js.h | 4 + deps/v8/src/wasm/wasm-limits.h | 17 +- deps/v8/src/wasm/wasm-linkage.h | 46 +- deps/v8/src/wasm/wasm-memory.cc | 29 +- deps/v8/src/wasm/wasm-memory.h | 12 + deps/v8/src/wasm/wasm-module.cc | 22 +- deps/v8/src/wasm/wasm-module.h | 20 +- deps/v8/src/wasm/wasm-objects-inl.h | 135 +- deps/v8/src/wasm/wasm-objects.cc | 312 +- deps/v8/src/wasm/wasm-objects.h | 246 +- deps/v8/src/wasm/wasm-opcodes.cc | 29 +- deps/v8/src/wasm/wasm-opcodes.h | 363 +- deps/v8/src/wasm/wasm-result.cc | 23 +- deps/v8/src/wasm/wasm-result.h | 91 +- deps/v8/src/wasm/wasm-serialization.cc | 151 +- deps/v8/src/wasm/wasm-serialization.h | 7 +- deps/v8/src/wasm/wasm-text.cc | 2 +- deps/v8/src/x64/assembler-x64-inl.h | 7 +- deps/v8/src/x64/assembler-x64.cc | 32 +- deps/v8/src/x64/assembler-x64.h | 25 +- deps/v8/src/x64/code-stubs-x64.cc | 581 --- deps/v8/src/x64/deoptimizer-x64.cc | 3 - deps/v8/src/x64/disasm-x64.cc | 2 +- deps/v8/src/x64/frame-constants-x64.cc | 5 +- deps/v8/src/x64/frame-constants-x64.h | 16 +- deps/v8/src/x64/interface-descriptors-x64.cc | 14 +- deps/v8/src/x64/macro-assembler-x64.cc | 401 +- deps/v8/src/x64/macro-assembler-x64.h | 82 +- deps/v8/src/zone/accounting-allocator.cc | 8 +- deps/v8/src/zone/zone-chunk-list.h | 2 +- deps/v8/src/zone/zone-handle-set.h | 37 +- deps/v8/src/zone/zone-list-inl.h | 2 +- deps/v8/src/zone/zone.cc | 9 +- deps/v8/src/zone/zone.h | 75 +- deps/v8/test/BUILD.gn | 3 + deps/v8/test/cctest/BUILD.gn | 46 +- deps/v8/test/cctest/cctest.h | 5 - deps/v8/test/cctest/cctest.status | 63 +- .../cctest/compiler/code-assembler-tester.h | 8 +- deps/v8/test/cctest/compiler/codegen-tester.h | 2 +- .../test/cctest/compiler/function-tester.cc | 11 +- .../cctest/compiler/graph-builder-tester.h | 2 +- .../compiler/test-basic-block-profiler.cc | 12 +- .../cctest/compiler/test-code-assembler.cc | 22 + .../cctest/compiler/test-code-generator.cc | 41 +- .../test/cctest/compiler/test-gap-resolver.cc | 20 +- .../compiler/test-instruction-scheduler.cc | 12 +- .../test/cctest/compiler/test-instruction.cc | 4 +- .../test-js-context-specialization.cc | 48 +- .../cctest/compiler/test-jump-threading.cc | 7 +- deps/v8/test/cctest/compiler/test-linkage.cc | 1 - .../cctest/compiler/test-multiple-return.cc | 6 +- .../compiler/test-representation-change.cc | 48 +- .../test-run-bytecode-graph-builder.cc | 31 - .../cctest/compiler/test-run-load-store.cc | 197 +- .../test/cctest/compiler/test-run-machops.cc | 6 +- .../cctest/compiler/test-run-retpoline.cc | 1 + .../v8/test/cctest/compiler/test-run-stubs.cc | 240 - .../cctest/compiler/test-run-tail-calls.cc | 1 + .../compiler/test-run-unwinding-info.cc | 1 - deps/v8/test/cctest/heap/heap-tester.h | 3 +- deps/v8/test/cctest/heap/heap-utils.cc | 24 +- deps/v8/test/cctest/heap/test-alloc.cc | 2 +- .../cctest/heap/test-array-buffer-tracker.cc | 12 +- deps/v8/test/cctest/heap/test-compaction.cc | 33 +- .../test/cctest/heap/test-embedder-tracing.cc | 7 +- deps/v8/test/cctest/heap/test-heap.cc | 339 +- .../cctest/heap/test-invalidated-slots.cc | 54 +- deps/v8/test/cctest/heap/test-lab.cc | 1 - deps/v8/test/cctest/heap/test-mark-compact.cc | 17 +- .../test/cctest/heap/test-page-promotion.cc | 10 +- deps/v8/test/cctest/heap/test-spaces.cc | 72 +- .../test/cctest/heap/test-weak-references.cc | 37 +- .../bytecode-expectations-printer.cc | 4 +- .../bytecode-expectations-printer.h | 4 +- .../AsyncGenerators.golden | 50 +- .../CompoundExpressions.golden | 22 +- .../CountOperators.golden | 40 +- .../bytecode_expectations/Delete.golden | 35 +- .../bytecode_expectations/DoExpression.golden | 71 - .../bytecode_expectations/ForAwaitOf.golden | 1101 ++--- .../bytecode_expectations/ForIn.golden | 6 +- .../bytecode_expectations/ForOf.golden | 12 +- .../bytecode_expectations/ForOfLoop.golden | 413 +- .../GenerateTestUndetectable.golden | 64 +- .../IIFEWithOneshotOpt.golden | 161 + .../IIFEWithoutOneshotOpt.golden | 5 +- .../ObjectLiterals.golden | 80 +- .../PrivateClassFields.golden | 12 +- .../PropertyLoadStoreWithoutOneShot.golden | 10 +- .../StandardForLoop.golden | 208 +- .../TopLevelObjectLiterals.golden | 5 +- .../WithStatement.golden | 5 +- .../generate-bytecode-expectations.cc | 22 +- .../cctest/interpreter/interpreter-tester.h | 2 +- .../interpreter/test-bytecode-generator.cc | 48 +- .../cctest/interpreter/test-interpreter.cc | 165 +- .../cctest/parsing/test-parse-decision.cc | 3 +- deps/v8/test/cctest/parsing/test-preparser.cc | 6 +- .../cctest/parsing/test-scanner-streams.cc | 2 +- deps/v8/test/cctest/parsing/test-scanner.cc | 34 +- deps/v8/test/cctest/profiler-extension.cc | 7 +- .../v8/test/cctest/test-accessor-assembler.cc | 13 +- deps/v8/test/cctest/test-accessors.cc | 2 +- deps/v8/test/cctest/test-api-interceptors.cc | 3 +- deps/v8/test/cctest/test-api.cc | 973 ++-- deps/v8/test/cctest/test-assembler-arm.cc | 2 +- deps/v8/test/cctest/test-assembler-arm64.cc | 39 +- deps/v8/test/cctest/test-assembler-mips.cc | 1 - deps/v8/test/cctest/test-assembler-mips64.cc | 1 - .../test/cctest/test-code-stub-assembler.cc | 117 +- deps/v8/test/cctest/test-code-stubs-arm.cc | 166 - deps/v8/test/cctest/test-code-stubs-arm64.cc | 180 - deps/v8/test/cctest/test-code-stubs-ia32.cc | 148 - deps/v8/test/cctest/test-code-stubs-mips.cc | 181 - deps/v8/test/cctest/test-code-stubs-mips64.cc | 179 - deps/v8/test/cctest/test-code-stubs-x64.cc | 147 - deps/v8/test/cctest/test-code-stubs.cc | 204 - deps/v8/test/cctest/test-code-stubs.h | 59 - deps/v8/test/cctest/test-compiler.cc | 71 +- deps/v8/test/cctest/test-constantpool.cc | 6 +- deps/v8/test/cctest/test-conversions.cc | 341 +- deps/v8/test/cctest/test-cpu-profiler.cc | 148 +- deps/v8/test/cctest/test-date.cc | 23 - deps/v8/test/cctest/test-debug.cc | 23 +- deps/v8/test/cctest/test-decls.cc | 2 - deps/v8/test/cctest/test-dictionary.cc | 19 +- deps/v8/test/cctest/test-disasm-arm.cc | 9 +- deps/v8/test/cctest/test-disasm-arm64.cc | 20 +- deps/v8/test/cctest/test-disasm-mips.cc | 8 +- deps/v8/test/cctest/test-elements-kind.cc | 4 +- deps/v8/test/cctest/test-factory.cc | 46 + deps/v8/test/cctest/test-feedback-vector.cc | 28 +- .../test/cctest/test-field-type-tracking.cc | 52 +- deps/v8/test/cctest/test-flags.cc | 66 +- .../test/cctest/test-func-name-inference.cc | 2 +- deps/v8/test/cctest/test-fuzz-arm64.cc | 20 +- deps/v8/test/cctest/test-heap-profiler.cc | 79 +- deps/v8/test/cctest/test-icache.cc | 206 + deps/v8/test/cctest/test-identity-map.cc | 7 +- .../cctest/test-inobject-slack-tracking.cc | 22 +- deps/v8/test/cctest/test-intl.cc | 63 +- .../test-isolate-independent-builtins.cc | 206 - deps/v8/test/cctest/test-js-weak-refs.cc | 319 ++ deps/v8/test/cctest/test-log-stack-tracer.cc | 7 +- deps/v8/test/cctest/test-log.cc | 317 +- .../test/cctest/test-macro-assembler-mips.cc | 6 +- .../cctest/test-macro-assembler-mips64.cc | 1 - .../test/cctest/test-macro-assembler-x64.cc | 48 +- deps/v8/test/cctest/test-mementos.cc | 2 +- deps/v8/test/cctest/test-object.cc | 60 +- deps/v8/test/cctest/test-orderedhashtable.cc | 411 ++ deps/v8/test/cctest/test-parsing.cc | 596 ++- deps/v8/test/cctest/test-poison-disasm-arm.cc | 220 +- deps/v8/test/cctest/test-profile-generator.cc | 2 + deps/v8/test/cctest/test-regexp.cc | 25 +- deps/v8/test/cctest/test-roots.cc | 12 +- deps/v8/test/cctest/test-serialize.cc | 450 +- .../cctest/test-smi-lexicographic-compare.cc | 15 +- deps/v8/test/cctest/test-strings.cc | 36 +- .../test/cctest/test-sync-primitives-arm.cc | 6 +- .../test/cctest/test-sync-primitives-arm64.cc | 6 +- .../v8/test/cctest/test-thread-termination.cc | 80 +- deps/v8/test/cctest/test-traced-value.cc | 28 +- deps/v8/test/cctest/test-transitions.cc | 57 +- deps/v8/test/cctest/test-transitions.h | 2 +- deps/v8/test/cctest/test-unboxed-doubles.cc | 71 +- deps/v8/test/cctest/test-unwinder.cc | 543 +++ deps/v8/test/cctest/test-usecounters.cc | 118 + deps/v8/test/cctest/test-utils-arm64.cc | 16 +- deps/v8/test/cctest/test-utils-arm64.h | 7 +- deps/v8/test/cctest/torque/test-torque.cc | 155 +- deps/v8/test/cctest/trace-extension.cc | 40 +- deps/v8/test/cctest/wasm/OWNERS | 2 - .../cctest/wasm/test-jump-table-assembler.cc | 87 +- .../cctest/wasm/test-run-wasm-interpreter.cc | 6 +- .../test/cctest/wasm/test-run-wasm-module.cc | 12 +- .../v8/test/cctest/wasm/test-run-wasm-simd.cc | 50 +- deps/v8/test/cctest/wasm/test-run-wasm.cc | 34 +- .../cctest/wasm/test-streaming-compilation.cc | 119 +- .../test/cctest/wasm/test-wasm-breakpoints.cc | 8 +- deps/v8/test/cctest/wasm/test-wasm-codegen.cc | 12 +- .../wasm/test-wasm-import-wrapper-cache.cc | 127 + .../cctest/wasm/test-wasm-serialization.cc | 32 +- .../cctest/wasm/test-wasm-shared-engine.cc | 6 +- deps/v8/test/cctest/wasm/wasm-run-utils.cc | 48 +- deps/v8/test/cctest/wasm/wasm-run-utils.h | 11 +- deps/v8/test/common/assembler-tester.h | 29 +- deps/v8/test/common/wasm/test-signatures.h | 3 +- deps/v8/test/common/wasm/wasm-macro-gen.h | 32 +- .../v8/test/common/wasm/wasm-module-runner.cc | 39 +- deps/v8/test/common/wasm/wasm-module-runner.h | 43 +- .../evaluate-across-microtasks.js | 2 +- .../es6/debug-promises/proxy-as-promise.js | 2 +- .../reject-in-constructor-opt.js | 8 +- .../es8/async-debug-builtin-predictions.js | 2 +- .../es8/async-debug-caught-exception-cases.js | 2 +- .../debug/es8/async-debug-caught-exception.js | 14 +- .../es8/async-debug-step-abort-at-break.js | 2 +- .../es8/async-debug-step-continue-at-break.js | 8 +- .../debug/es8/async-debug-step-in-and-out.js | 8 +- .../debug/es8/async-debug-step-in-out-out.js | 2 +- .../debugger/debug/es8/async-debug-step-in.js | 8 +- .../debug/es8/async-debug-step-nested.js | 8 +- .../es8/async-debug-step-next-constant.js | 8 +- .../debug/es8/async-debug-step-next.js | 8 +- .../debug/es8/async-debug-step-out.js | 2 +- .../debug/es8/debug-async-break-on-stack.js | 4 +- .../debugger/debug/es8/debug-async-break.js | 4 +- .../debug/es8/debug-async-liveedit.js | 4 +- .../debugger/debug/es8/promise-finally.js | 2 +- .../debug-evaluate-no-side-effect-builtins.js | 4 +- deps/v8/test/debugger/debugger.status | 15 +- deps/v8/test/debugger/regress/regress-5610.js | 9 +- deps/v8/test/fuzzer/multi-return.cc | 8 +- deps/v8/test/fuzzer/regexp-builtins.cc | 2 +- deps/v8/test/fuzzer/wasm-code.cc | 3 +- deps/v8/test/fuzzer/wasm-compile.cc | 38 +- deps/v8/test/fuzzer/wasm-fuzzer-common.cc | 100 +- deps/v8/test/fuzzer/wasm-fuzzer-common.h | 4 +- deps/v8/test/inspector/BUILD.gn | 1 - deps/v8/test/inspector/PRESUBMIT.py | 25 - .../break-locations-await-expected.txt | 52 +- .../break-locations-var-init-expected.txt | 10 +- ...-locations-var-init-optimized-expected.txt | 10 +- .../debugger/class-fields-scopes-expected.txt | 977 ++++ .../inspector/debugger/class-fields-scopes.js | 80 + .../debugger/eval-scopes-expected.txt | 6 - ...t-possible-breakpoints-master-expected.txt | 6 +- ...t-preview-internal-properties-expected.txt | 13 +- ...se-on-async-call-set-timeout-expected.txt} | 2 +- ....js => pause-on-async-call-set-timeout.js} | 41 +- .../schedule-step-into-async-expected.txt | 191 - .../debugger/schedule-step-into-async.js | 160 - ...kip-variables-with-empty-name-expected.txt | 6 - .../debugger/script-origin-stack-expected.txt | 33 + .../inspector/debugger/script-origin-stack.js | 15 + .../debugger/set-script-source-2-expected.txt | 10 +- .../step-out-async-await-expected.txt | 18 +- ...pping-ignores-injected-script-expected.txt | 2 - .../stepping-ignores-injected-script.js | 21 - ...-with-exposed-injected-script-expected.txt | 2 - .../stepping-with-exposed-injected-script.js | 22 - .../terminate-execution-on-pause-expected.txt | 55 + .../debugger/terminate-execution-on-pause.js | 51 +- .../wasm-reset-context-group-expected.txt | 18 + .../debugger/wasm-reset-context-group.js | 63 + .../debugger/wasm-set-breakpoint-expected.txt | 112 +- .../inspector/debugger/wasm-set-breakpoint.js | 167 +- .../sampling-heap-profiler-expected.txt | 1 + .../heap-profiler/sampling-heap-profiler.js | 9 + deps/v8/test/inspector/inspector-test.cc | 108 +- deps/v8/test/inspector/inspector.status | 22 +- deps/v8/test/inspector/isolate-data.cc | 8 +- deps/v8/test/inspector/isolate-data.h | 1 + deps/v8/test/inspector/protocol-test.js | 73 +- .../console-messages-limits-expected.txt | 2 +- .../runtime/console-methods-expected.txt | 167 + .../test/inspector/runtime/console-methods.js | 7 +- .../runtime/console-table-expected.txt | 385 ++ .../test/inspector/runtime/console-table.js | 102 + .../runtime/custom-preview-expected.txt | 221 + .../test/inspector/runtime/custom-preview.js | 122 + .../inspector/runtime/es6-module-expected.txt | 6 - .../runtime/evaluate-with-generate-preview.js | 1 + .../runtime/get-properties-expected.txt | 20 - .../get-properties-on-proxy-expected.txt | 12 - .../test/inspector/runtime/get-properties.js | 5 +- .../internal-properties-entries-expected.txt | 202 +- .../runtime/internal-properties-entries.js | 1 + .../runtime/internal-properties-expected.txt | 252 +- .../runtime/remote-object-expected.txt | 2953 ++++++++++++ .../remote-object-get-properties-expected.txt | 138 + .../runtime/remote-object-get-properties.js | 61 + .../test/inspector/runtime/remote-object.js | 630 +++ ...e-get-properties-and-accessor-expected.txt | 14 +- .../runtime/runtime-restore-expected.txt | 4 +- .../runtime/stable-object-id-expected.txt | 15 - .../inspector/runtime/stable-object-id.js | 87 - .../runtime/terminate-execution-expected.txt | 2 +- .../sessions/runtime-evaluate-exception.js | 4 +- .../runtime-remote-object-expected.txt | 18 - deps/v8/test/inspector/testcfg.py | 1 - .../type-profiler/type-profile-disable.js | 2 - .../type-profiler/type-profile-start-stop.js | 2 - .../type-profile-with-classes.js | 2 - .../type-profile-with-to-string-tag.js | 2 - .../inspector/type-profiler/type-profile.js | 2 - .../intl/break-iterator/default-locale.js | 3 - .../wellformed-unsupported-locale.js | 32 - .../test/intl/collator/constructor-order.js | 30 + deps/v8/test/intl/collator/default-locale.js | 4 - deps/v8/test/intl/collator/options.js | 4 - .../collator/wellformed-unsupported-locale.js | 32 - .../test/intl/date-format/default-locale.js | 3 - .../intl/date-format/property-override.js | 20 +- .../wellformed-unsupported-locale.js | 32 - deps/v8/test/intl/default_locale.js | 17 + deps/v8/test/intl/general/invalid-locale.js | 15 - deps/v8/test/intl/intl.status | 18 +- .../intl/list-format/constructor-order.js | 21 + deps/v8/test/intl/list-format/constructor.js | 32 +- deps/v8/test/intl/list-format/format-en.js | 35 +- .../test/intl/list-format/format-to-parts.js | 16 +- deps/v8/test/intl/list-format/format.js | 9 +- .../test/intl/list-format/resolved-options.js | 47 +- .../intl/number-format/constructor-order.js | 42 + .../test/intl/number-format/default-locale.js | 3 - .../wellformed-unsupported-locale.js | 32 - .../intl/plural-rules/constructor-order.js | 33 + deps/v8/test/intl/regexp-assert.js | 19 - deps/v8/test/intl/regexp-prepare.js | 5 - deps/v8/test/intl/regress-8432.js | 42 + deps/v8/test/intl/regress-8469.js | 87 + deps/v8/test/intl/regress-8525.js | 27 + deps/v8/test/intl/regress-895942.js | 6 + deps/v8/test/intl/regress-900013.js | 9 + deps/v8/test/intl/regress-903566.js | 32 + .../relative-time-format/constructor-order.js | 21 + .../intl/relative-time-format/constructor.js | 24 - .../format-to-parts-en.js | 41 + .../relative-time-format/resolved-options.js | 9 +- .../test/intl/segmenter/constructor-order.js | 23 + deps/v8/test/intl/segmenter/constructor.js | 24 - .../segmenter/segment-grapheme-following.js | 38 + .../segmenter/segment-grapheme-iterable.js | 45 + .../intl/segmenter/segment-grapheme-next.js | 40 + .../segmenter/segment-grapheme-preceding.js | 44 + .../test/intl/segmenter/segment-grapheme.js | 29 + .../segmenter/segment-iterator-breakType.js | 11 + .../segmenter/segment-iterator-following.js | 5 + .../segment-iterator-ownPropertyDescriptor.js | 91 + .../segmenter/segment-iterator-position.js | 11 + .../segmenter/segment-iterator-preceding.js | 5 + .../test/intl/segmenter/segment-iterator.js | 16 +- .../segmenter/segment-line-following-modes.js | 57 + .../intl/segmenter/segment-line-following.js | 38 + .../intl/segmenter/segment-line-iterable.js | 45 + .../test/intl/segmenter/segment-line-next.js | 40 + .../intl/segmenter/segment-line-preceding.js | 44 + deps/v8/test/intl/segmenter/segment-line.js | 29 + .../segmenter/segment-sentence-following.js | 38 + .../segmenter/segment-sentence-iterable.js | 45 + .../intl/segmenter/segment-sentence-next.js | 40 + .../segmenter/segment-sentence-preceding.js | 44 + .../test/intl/segmenter/segment-sentence.js | 29 + .../intl/segmenter/segment-word-following.js | 38 + .../intl/segmenter/segment-word-iterable.js | 45 + .../test/intl/segmenter/segment-word-next.js | 40 + .../intl/segmenter/segment-word-preceding.js | 44 + deps/v8/test/intl/segmenter/segment-word.js | 29 + deps/v8/test/intl/segmenter/segment.js | 32 + deps/v8/test/intl/segmenter/subclassing.js | 17 + .../test/intl/segmenter/supported-locale.js | 8 +- deps/v8/test/intl/testcfg.py | 5 +- deps/v8/test/js-perf-test/Array/from.js | 99 +- deps/v8/test/js-perf-test/Array/reduce.js | 2 +- .../indexof-includes-polymorphic.js | 41 + .../ArrayIndexOfIncludesPolymorphic/run.js | 23 + .../run.js | 158 + .../run.js | 155 + .../run.js | 3 +- .../run.js | 94 + .../run.js | 121 + .../run.js | 159 + .../run.js | 158 + .../run.js | 93 + .../run.js | 120 + .../AsyncAwait/baseline-babel-es2017.js | 4 +- .../AsyncAwait/baseline-naive-promises.js | 4 +- .../v8/test/js-perf-test/AsyncAwait/native.js | 4 +- deps/v8/test/js-perf-test/Dates/run.js | 20 + .../test/js-perf-test/Dates/toLocaleString.js | 20 + .../test/js-perf-test/Inspector/debugger.js | 2 +- deps/v8/test/js-perf-test/JSTests.json | 180 +- deps/v8/test/js-perf-test/Modules/run.js | 6 +- deps/v8/test/js-perf-test/Numbers/run.js | 1 + .../js-perf-test/Numbers/toLocaleString.js | 14 + .../StringIterators/string-iterator.js | 24 +- .../Strings/string-localeCompare.js | 19 + deps/v8/test/js-perf-test/base.js | 2 +- deps/v8/test/memory/Memory.json | 4 +- .../message/fail/arrow-param-after-rest-2.out | 2 +- .../message/fail/arrow-param-after-rest.out | 2 +- .../message/fail/arrow-two-rest-params.out | 2 +- deps/v8/test/message/fail/call-async.js | 8 + deps/v8/test/message/fail/call-async.out | 6 + deps/v8/test/message/fail/call-await.js | 8 + deps/v8/test/message/fail/call-await.out | 7 + deps/v8/test/message/fail/call-let.js | 8 + deps/v8/test/message/fail/call-let.out | 6 + deps/v8/test/message/fail/call-static.js | 8 + deps/v8/test/message/fail/call-static.out | 6 + deps/v8/test/message/fail/call-yield.js | 8 + deps/v8/test/message/fail/call-yield.out | 6 + .../test/message/fail/class-fields-throw.out | 2 +- deps/v8/test/message/fail/directive.js | 7 + deps/v8/test/message/fail/directive.out | 4 + .../v8/test/message/fail/invalid-spread-2.out | 6 +- deps/v8/test/message/fail/isvar.js | 31 - deps/v8/test/message/fail/isvar.out | 4 - .../message/fail/list-format-style-narrow.js | 7 + .../message/fail/list-format-style-narrow.out | 7 + .../message/fail/modules-duplicate-export5.js | 9 + .../fail/modules-duplicate-export5.out | 5 + .../fail/object-rest-assignment-pattern.out | 2 +- .../fail/object-rest-binding-pattern.out | 2 +- .../test/message/fail/weak-refs-makecell1.js | 8 + .../test/message/fail/weak-refs-makecell1.out | 6 + .../test/message/fail/weak-refs-makecell2.js | 9 + .../test/message/fail/weak-refs-makecell2.out | 6 + .../message/fail/weak-refs-weakfactory1.js | 7 + .../message/fail/weak-refs-weakfactory1.out | 6 + .../message/fail/weak-refs-weakfactory2.js | 7 + .../message/fail/weak-refs-weakfactory2.out | 6 + deps/v8/test/message/message.status | 4 + .../test/message/regress/fail/regress-8409.js | 5 + .../message/regress/fail/regress-8409.out | 4 + .../message/regress/fail/regress-900383.js | 8 + .../message/regress/fail/regress-900383.out | 4 + .../message/regress/fail/regress-903874.js | 6 + .../message/regress/fail/regress-903874.out | 5 + deps/v8/test/mjsunit/BUILD.gn | 3 - deps/v8/test/mjsunit/array-from-large-set.js | 11 + .../mjsunit/array-functions-prototype-misc.js | 14 - ...element-tostring-prototype-side-effects.js | 14 + ...rray-join-element-tostring-side-effects.js | 152 + .../array-join-index-getter-side-effects.js | 108 + .../array-join-invalid-string-length.js | 63 + deps/v8/test/mjsunit/array-join-nesting.js | 16 + ...oin-nonarray-length-getter-side-effects.js | 29 + ...ay-join-separator-tostring-side-effects.js | 197 + deps/v8/test/mjsunit/array-join.js | 14 +- .../v8/test/mjsunit/array-natives-elements.js | 12 +- deps/v8/test/mjsunit/array-tolocalestring.js | 72 + deps/v8/test/mjsunit/arrow-with.js | 7 + .../mjsunit/async-hooks/async-await-tree.js | 26 +- .../mjsunit/async-hooks/chained-promises.js | 8 +- .../mjsunit/async-hooks/execution-order.js | 48 +- .../async-hooks/promises-async-await.js | 4 + ...async-stack-traces-prepare-stacktrace-4.js | 39 + .../mjsunit/async-stack-traces-promise-all.js | 38 + deps/v8/test/mjsunit/async-stack-traces.js | 31 + .../test/mjsunit/code-coverage-block-opt.js | 5 + deps/v8/test/mjsunit/code-coverage-block.js | 48 +- .../compiler/abstract-equal-receiver.js | 177 + .../compiler/abstract-equal-undetectable.js | 119 + deps/v8/test/mjsunit/compiler/array-every.js | 18 + deps/v8/test/mjsunit/compiler/array-find.js | 18 + .../test/mjsunit/compiler/array-findindex.js | 18 + deps/v8/test/mjsunit/compiler/array-some.js | 18 + .../mjsunit/compiler/deopt-inlined-smi.js | 2 +- .../instance-of-overridden-has-instance.js | 106 + deps/v8/test/mjsunit/compiler/int64.js | 40 + .../lazy-deopt-async-function-resolve.js | 27 + ...ative-context-specialization-hole-check.js | 5 + deps/v8/test/mjsunit/compiler/number-max.js | 14 + deps/v8/test/mjsunit/compiler/number-min.js | 14 + .../test/mjsunit/compiler/number-modulus.js | 230 - .../test/mjsunit/compiler/number-multiply.js | 59 + deps/v8/test/mjsunit/compiler/osr-assert.js | 9 +- .../compiler/promise-resolve-stable-maps.js | 61 + deps/v8/test/mjsunit/compiler/regress-8380.js | 32 + .../test/mjsunit/compiler/regress-902608.js | 16 + .../test/mjsunit/compiler/regress-905555-2.js | 25 + .../test/mjsunit/compiler/regress-905555.js | 25 + .../test/mjsunit/compiler/regress-910838.js | 20 + .../mjsunit/compiler/strict-equal-number.js | 16 + .../mjsunit/compiler/strict-equal-receiver.js | 152 + deps/v8/test/mjsunit/d8/d8-arguments.js | 7 + deps/v8/test/mjsunit/date.js | 10 + deps/v8/test/mjsunit/elements-kind.js | 15 +- .../mjsunit/es6/array-spread-large-holey.js | 17 + deps/v8/test/mjsunit/es6/classes.js | 119 +- ...collections-constructor-custom-iterator.js | 8 + deps/v8/test/mjsunit/es6/destructuring.js | 10 + deps/v8/test/mjsunit/es6/map-iterator-1.js | 23 + deps/v8/test/mjsunit/es6/map-iterator-10.js | 34 + deps/v8/test/mjsunit/es6/map-iterator-11.js | 35 + deps/v8/test/mjsunit/es6/map-iterator-2.js | 20 + deps/v8/test/mjsunit/es6/map-iterator-3.js | 22 + deps/v8/test/mjsunit/es6/map-iterator-4.js | 22 + deps/v8/test/mjsunit/es6/map-iterator-5.js | 22 + deps/v8/test/mjsunit/es6/map-iterator-6.js | 20 + deps/v8/test/mjsunit/es6/map-iterator-7.js | 22 + deps/v8/test/mjsunit/es6/map-iterator-8.js | 32 + deps/v8/test/mjsunit/es6/map-iterator-9.js | 30 + .../v8/test/mjsunit/es6/microtask-delivery.js | 2 +- .../mjsunit/es6/regress/regress-cr895860.js | 14 + deps/v8/test/mjsunit/es6/set-iterator-1.js | 23 + deps/v8/test/mjsunit/es6/set-iterator-10.js | 34 + deps/v8/test/mjsunit/es6/set-iterator-11.js | 33 + deps/v8/test/mjsunit/es6/set-iterator-2.js | 21 + deps/v8/test/mjsunit/es6/set-iterator-3.js | 23 + deps/v8/test/mjsunit/es6/set-iterator-4.js | 23 + deps/v8/test/mjsunit/es6/set-iterator-5.js | 23 + deps/v8/test/mjsunit/es6/set-iterator-6.js | 21 + deps/v8/test/mjsunit/es6/set-iterator-7.js | 23 + deps/v8/test/mjsunit/es6/set-iterator-8.js | 31 + deps/v8/test/mjsunit/es6/set-iterator-9.js | 31 + deps/v8/test/mjsunit/es6/string-iterator.js | 9 + .../typedarray-from-detached-typedarray.js | 23 + .../es6/typedarray-from-next-overridden.js | 29 + .../typedarray-from-nonfunction-iterator.js | 11 + deps/v8/test/mjsunit/es6/typedarray.js | 26 + deps/v8/test/mjsunit/es7/array-includes.js | 28 + .../es8/async-arrow-lexical-arguments.js | 2 +- .../es8/async-arrow-lexical-new.target.js | 2 +- .../mjsunit/es8/async-arrow-lexical-super.js | 2 +- .../mjsunit/es8/async-arrow-lexical-this.js | 2 +- deps/v8/test/mjsunit/es8/async-await-basic.js | 30 +- .../mjsunit/es8/async-await-no-constructor.js | 2 +- .../test/mjsunit/es8/async-await-species.js | 2 +- .../test/mjsunit/es8/async-destructuring.js | 6 +- .../mjsunit/es8/async-function-try-finally.js | 4 +- deps/v8/test/mjsunit/es9/object-spread-ic.js | 22 + .../mjsunit/es9/regress/regress-902965.js | 12 + .../mjsunit/es9/regress/regress-903070.js | 15 + .../mjsunit/es9/regress/regress-904167.js | 14 + .../harmony/async-from-sync-iterator.js | 8 +- .../mjsunit/harmony/async-generators-basic.js | 34 +- .../test/mjsunit/harmony/bigint/as-int-n.js | 4 + deps/v8/test/mjsunit/harmony/bigint/misc.js | 8 + .../mjsunit/harmony/bigint/regressions.js | 4 +- .../default-parameter-do-expression.js | 21 - .../do-expressions-arrow-param-scope.js | 95 - .../mjsunit/harmony/do-expressions-control.js | 109 - .../v8/test/mjsunit/harmony/do-expressions.js | 305 -- deps/v8/test/mjsunit/harmony/for-await-of.js | 2 +- deps/v8/test/mjsunit/harmony/generators.js | 10 +- .../import-from-compilation-errored.js | 2 +- .../harmony/import-from-evaluation-errored.js | 2 +- .../harmony/import-from-fetch-errored.js | 2 +- .../import-from-instantiation-errored.js | 2 +- .../test/mjsunit/harmony/modules-import-1.js | 2 +- .../test/mjsunit/harmony/modules-import-10.js | 2 +- .../test/mjsunit/harmony/modules-import-11.js | 2 +- .../test/mjsunit/harmony/modules-import-12.js | 2 +- .../test/mjsunit/harmony/modules-import-13.js | 4 +- .../test/mjsunit/harmony/modules-import-14.js | 2 +- .../test/mjsunit/harmony/modules-import-15.js | 6 +- .../test/mjsunit/harmony/modules-import-16.js | 6 +- .../test/mjsunit/harmony/modules-import-17.js | 11 + .../test/mjsunit/harmony/modules-import-2.js | 2 +- .../test/mjsunit/harmony/modules-import-3.js | 2 +- .../test/mjsunit/harmony/modules-import-5.js | 2 +- .../test/mjsunit/harmony/modules-import-6.js | 2 +- .../test/mjsunit/harmony/modules-import-7.js | 2 +- .../test/mjsunit/harmony/modules-import-8.js | 6 +- .../test/mjsunit/harmony/modules-import-9.js | 2 +- .../test/mjsunit/harmony/modules-skip-13.js | 6 + .../mjsunit/harmony/object-fromentries.js | 439 ++ .../harmony/public-static-class-fields.js | 13 + .../mjsunit/harmony/regress/regress-4658.js | 21 - .../mjsunit/harmony/regress/regress-4755.js | 45 - .../mjsunit/harmony/regress/regress-4904.js | 24 - .../mjsunit/harmony/regress/regress-546967.js | 16 - .../mjsunit/harmony/regress/regress-897436.js | 12 + .../harmony/regress/regress-crbug-578038.js | 16 - .../test/mjsunit/harmony/weakrefs/basics.js | 266 ++ .../cleanup-doesnt-iterate-all-cells.js | 89 + .../weakrefs/cleanup-from-different-realm.js | 34 + .../weakrefs/cleanup-is-a-microtask.js | 56 + .../cleanup-proxy-from-different-realm.js | 34 + .../weakrefs/cleanupsome-cleared-weakcell.js | 35 + ...leanupsome-dereffed-and-cleared-weakref.js | 51 + .../weakrefs/cleanupsome-dereffed-weakref.js | 57 + .../harmony/weakrefs/cleanupsome-weakcell.js | 33 + .../harmony/weakrefs/cleanupsome-weakref.js | 43 + .../harmony/weakrefs/clear-after-cleanup.js | 46 + .../harmony/weakrefs/clear-after-deref.js | 46 + .../harmony/weakrefs/clear-before-cleanup.js | 40 + .../harmony/weakrefs/clear-called-twice.js | 39 + .../weakrefs/clear-clears-factory-pointer.js | 49 + .../harmony/weakrefs/clear-inside-cleanup1.js | 41 + .../harmony/weakrefs/clear-inside-cleanup2.js | 40 + .../harmony/weakrefs/clear-inside-cleanup3.js | 41 + .../harmony/weakrefs/clear-inside-cleanup4.js | 48 + .../clear-when-cleanup-already-scheduled.js | 36 + ...ry-scheduled-for-cleanup-multiple-times.js | 70 + .../harmony/weakrefs/iterating-weak-cells.js | 49 + .../weakrefs/multiple-dirty-weak-factories.js | 44 + .../mjsunit/harmony/weakrefs/two-weakrefs.js | 71 + .../harmony/weakrefs/weak-cell-basics.js | 36 + .../weak-factory-keeps-weak-cells-alive.js | 39 + .../harmony/weakrefs/weakcell-and-weakref.js | 45 + .../weakrefs/weakref-creation-keeps-alive.js | 46 + .../weakrefs/weakref-deref-keeps-alive.js | 76 + deps/v8/test/mjsunit/json.js | 4 +- deps/v8/test/mjsunit/messages.js | 4 + deps/v8/test/mjsunit/mjsunit.js | 15 + deps/v8/test/mjsunit/mjsunit.status | 71 +- .../test/mjsunit/modules-export-star-as1.js | 10 + .../test/mjsunit/modules-export-star-as2.js | 19 + .../test/mjsunit/modules-export-star-as3.js | 15 + deps/v8/test/mjsunit/modules-imports8.js | 11 + deps/v8/test/mjsunit/modules-skip-8.js | 5 + deps/v8/test/mjsunit/modules-skip-9.js | 7 + deps/v8/test/mjsunit/opt-elements-kind.js | 14 +- deps/v8/test/mjsunit/osr-elements-kind.js | 14 +- .../v8/test/mjsunit/parallel-compile-tasks.js | 70 + deps/v8/test/mjsunit/regexp-override-exec.js | 19 + .../regexp-override-symbol-match-all.js | 12 + .../mjsunit/regexp-override-symbol-match.js | 10 + .../mjsunit/regexp-override-symbol-replace.js | 10 + .../mjsunit/regexp-override-symbol-search.js | 10 + .../mjsunit/regexp-override-symbol-split.js | 10 + deps/v8/test/mjsunit/regress-906893.js | 21 + .../regress-regexp-functional-replace-slow.js | 7 + deps/v8/test/mjsunit/regress-v8-8445-2.js | 27 + deps/v8/test/mjsunit/regress-v8-8445.js | 17 + deps/v8/test/mjsunit/regress/regress-2618.js | 6 +- deps/v8/test/mjsunit/regress/regress-2989.js | 7 +- .../v8/test/mjsunit/regress/regress-336820.js | 2 +- deps/v8/test/mjsunit/regress/regress-5405.js | 2 +- deps/v8/test/mjsunit/regress/regress-5691.js | 2 +- .../v8/test/mjsunit/regress/regress-682349.js | 2 +- .../v8/test/mjsunit/regress/regress-740694.js | 2 +- .../v8/test/mjsunit/regress/regress-748069.js | 3 + .../v8/test/mjsunit/regress/regress-778668.js | 17 +- .../v8/test/mjsunit/regress/regress-797581.js | 2 +- .../v8/test/mjsunit/regress/regress-800651.js | 2 +- .../v8/test/mjsunit/regress/regress-813440.js | 2 +- deps/v8/test/mjsunit/regress/regress-8237.js | 57 - deps/v8/test/mjsunit/regress/regress-8241.js | 6 + deps/v8/test/mjsunit/regress/regress-8377.js | 24 + deps/v8/test/mjsunit/regress/regress-8384.js | 64 + deps/v8/test/mjsunit/regress/regress-85177.js | 64 - .../v8/test/mjsunit/regress/regress-852765.js | 10 +- .../v8/test/mjsunit/regress/regress-895691.js | 18 + .../v8/test/mjsunit/regress/regress-896326.js | 11 + .../v8/test/mjsunit/regress/regress-897815.js | 16 + .../v8/test/mjsunit/regress/regress-898812.js | 5 + .../v8/test/mjsunit/regress/regress-898936.js | 5 + .../v8/test/mjsunit/regress/regress-899115.js | 13 + .../v8/test/mjsunit/regress/regress-899133.js | 5 + .../v8/test/mjsunit/regress/regress-899474.js | 5 + .../v8/test/mjsunit/regress/regress-899537.js | 5 + .../v8/test/mjsunit/regress/regress-900085.js | 7 + .../v8/test/mjsunit/regress/regress-900585.js | 5 + .../v8/test/mjsunit/regress/regress-900786.js | 5 + .../v8/test/mjsunit/regress/regress-901633.js | 24 + .../v8/test/mjsunit/regress/regress-901798.js | 14 + .../v8/test/mjsunit/regress/regress-902552.js | 11 + .../v8/test/mjsunit/regress/regress-902810.js | 5 + .../v8/test/mjsunit/regress/regress-903527.js | 5 + .../v8/test/mjsunit/regress/regress-903697.js | 12 + .../v8/test/mjsunit/regress/regress-904255.js | 5 + .../v8/test/mjsunit/regress/regress-904275.js | 30 + .../v8/test/mjsunit/regress/regress-904417.js | 18 + .../v8/test/mjsunit/regress/regress-904707.js | 14 + .../v8/test/mjsunit/regress/regress-905587.js | 5 + .../v8/test/mjsunit/regress/regress-905907.js | 10 + .../v8/test/mjsunit/regress/regress-906406.js | 7 + .../v8/test/mjsunit/regress/regress-907575.js | 6 + .../v8/test/mjsunit/regress/regress-907669.js | 5 + .../v8/test/mjsunit/regress/regress-908231.js | 8 + .../v8/test/mjsunit/regress/regress-908250.js | 5 + .../v8/test/mjsunit/regress/regress-908975.js | 6 + .../mjsunit/regress/regress-crbug-178790.js | 2 + .../mjsunit/regress/regress-crbug-546968.js | 14 - .../mjsunit/regress/regress-crbug-781116-1.js | 1 - .../mjsunit/regress/regress-crbug-781116-2.js | 1 - .../mjsunit/regress/regress-crbug-895199.js | 17 + .../mjsunit/regress/regress-crbug-896181.js | 14 + .../mjsunit/regress/regress-crbug-896700.js | 10 + .../mjsunit/regress/regress-crbug-897098.js | 8 + .../mjsunit/regress/regress-crbug-897404.js | 16 + .../mjsunit/regress/regress-crbug-897406.js | 14 + .../mjsunit/regress/regress-crbug-898785.js | 11 + .../mjsunit/regress/regress-crbug-898974.js | 34 + .../mjsunit/regress/regress-crbug-899464.js | 7 + .../mjsunit/regress/regress-crbug-899535.js | 6 + .../mjsunit/regress/regress-crbug-900674.js | 12 + .../mjsunit/regress/regress-crbug-902395.js | 37 + .../mjsunit/regress/regress-crbug-902610.js | 11 + .../mjsunit/regress/regress-crbug-902672.js | 8 + .../mjsunit/regress/regress-crbug-903043.js | 39 + .../mjsunit/regress/regress-crbug-905457.js | 49 + .../mjsunit/regress/regress-crbug-906043.js | 33 + .../mjsunit/regress/regress-crbug-906220.js | 12 + .../mjsunit/regress/regress-crbug-906870.js | 49 + .../mjsunit/regress/regress-crbug-908309.js | 27 + .../mjsunit/regress/regress-crbug-909614.js | 9 + .../mjsunit/regress/regress-crbug-911416.js | 5 + .../test/mjsunit/regress/regress-directive.js | 10 + .../regress/regress-osr-in-case-label.js | 18 - .../mjsunit/regress/regress-osr-in-literal.js | 30 - ...reparse-inner-arrow-duplicate-parameter.js | 5 + .../test/mjsunit/regress/regress-v8-8357.js | 31 + .../mjsunit/regress/wasm/regress-02256.js | 2 +- .../mjsunit/regress/wasm/regress-651961.js | 2 +- .../mjsunit/regress/wasm/regress-680938.js | 4 +- .../mjsunit/regress/wasm/regress-688876.js | 2 +- .../mjsunit/regress/wasm/regress-699485.js | 2 +- .../mjsunit/regress/wasm/regress-702460.js | 50 +- .../mjsunit/regress/wasm/regress-710844.js | 2 +- .../mjsunit/regress/wasm/regress-734108.js | 2 - .../test/mjsunit/regress/wasm/regress-7353.js | 2 +- .../mjsunit/regress/wasm/regress-736584.js | 2 +- .../mjsunit/regress/wasm/regress-739768.js | 4 +- .../mjsunit/regress/wasm/regress-763439.js | 2 +- .../test/mjsunit/regress/wasm/regress-7914.js | 2 +- .../mjsunit/regress/wasm/regress-803788.js | 2 +- .../mjsunit/regress/wasm/regress-808980.js | 2 +- .../mjsunit/regress/wasm/regress-816226.js | 2 +- .../mjsunit/regress/wasm/regress-817380.js | 2 +- .../mjsunit/regress/wasm/regress-834619.js | 2 +- .../mjsunit/regress/wasm/regress-834693.js | 2 +- .../test/mjsunit/regress/wasm/regress-8505.js | 204 + .../test/mjsunit/regress/wasm/regress-8533.js | 85 + .../mjsunit/regress/wasm/regress-894307.js | 16 + .../mjsunit/regress/wasm/regress-894374.js | 20 + .../mjsunit/regress/wasm/regress-898932.js | 13 + .../mjsunit/shared-function-tier-up-turbo.js | 4 + deps/v8/test/mjsunit/smi-ops-inlined.js | 2 - deps/v8/test/mjsunit/spread-large-array.js | 13 + deps/v8/test/mjsunit/spread-large-map.js | 17 + deps/v8/test/mjsunit/spread-large-set.js | 21 + deps/v8/test/mjsunit/spread-large-string.js | 13 + .../test/mjsunit/stack-traces-class-fields.js | 16 +- deps/v8/test/mjsunit/test-async.js | 4 +- .../mjsunit/type-profile/regress-707223.js | 2 - deps/v8/test/mjsunit/wasm/OWNERS | 2 - .../mjsunit/wasm/asm-wasm-math-intrinsic.js | 295 ++ deps/v8/test/mjsunit/wasm/async-compile.js | 21 +- deps/v8/test/mjsunit/wasm/atomics-stress.js | 554 +++ deps/v8/test/mjsunit/wasm/atomics64-stress.js | 596 +++ deps/v8/test/mjsunit/wasm/bulk-memory.js | 180 + .../wasm/compiled-module-serialization.js | 6 +- deps/v8/test/mjsunit/wasm/errors.js | 7 +- .../v8/test/mjsunit/wasm/exceptions-anyref.js | 97 + .../test/mjsunit/wasm/exceptions-catchall.js | 121 + .../test/mjsunit/wasm/exceptions-rethrow.js | 142 + deps/v8/test/mjsunit/wasm/exceptions-simd.js | 49 + deps/v8/test/mjsunit/wasm/exceptions-utils.js | 28 + deps/v8/test/mjsunit/wasm/exceptions.js | 91 +- deps/v8/test/mjsunit/wasm/futex.js | 310 ++ .../v8/test/mjsunit/wasm/graceful_shutdown.js | 2 +- .../mjsunit/wasm/grow-memory-detaching.js | 2 +- .../mjsunit/wasm/grow-memory-in-branch.js | 52 +- .../test/mjsunit/wasm/grow-memory-in-call.js | 60 +- .../test/mjsunit/wasm/grow-memory-in-loop.js | 28 +- deps/v8/test/mjsunit/wasm/grow-memory.js | 120 +- deps/v8/test/mjsunit/wasm/huge-memory.js | 25 +- deps/v8/test/mjsunit/wasm/import-memory.js | 26 +- deps/v8/test/mjsunit/wasm/import-table.js | 36 +- deps/v8/test/mjsunit/wasm/indirect-calls.js | 216 +- deps/v8/test/mjsunit/wasm/indirect-tables.js | 53 +- .../mjsunit/wasm/instance-memory-gc-stress.js | 2 +- .../v8/test/mjsunit/wasm/interpreter-mixed.js | 4 +- deps/v8/test/mjsunit/wasm/interpreter.js | 27 +- deps/v8/test/mjsunit/wasm/js-api.js | 44 +- deps/v8/test/mjsunit/wasm/jsapi-harness.js | 139 - deps/v8/test/mjsunit/wasm/large-offset.js | 8 +- deps/v8/test/mjsunit/wasm/liftoff.js | 3 +- deps/v8/test/mjsunit/wasm/loop-rotation.js | 77 + .../wasm/memory-instance-validation.js | 2 +- deps/v8/test/mjsunit/wasm/memory.js | 18 +- .../v8/test/mjsunit/wasm/streaming-compile.js | 2 +- .../mjsunit/wasm/streaming-error-position.js | 2 +- .../mjsunit/wasm/streaming-trap-location.js | 2 +- deps/v8/test/mjsunit/wasm/table-grow.js | 12 +- deps/v8/test/mjsunit/wasm/table.js | 26 +- deps/v8/test/mjsunit/wasm/wasm-constants.js | 37 +- .../test/mjsunit/wasm/wasm-math-intrinsic.js | 257 ++ .../test/mjsunit/wasm/wasm-module-builder.js | 163 +- deps/v8/test/mkgrokdump/mkgrokdump.cc | 6 +- deps/v8/test/test262/BUILD.gn | 3 +- .../test262/harness-adapt-donotevaluate.js | 12 + deps/v8/test/test262/test262.status | 688 ++- deps/v8/test/test262/testcfg.py | 14 +- deps/v8/test/torque/test-torque.tq | 133 +- deps/v8/test/unittests/BUILD.gn | 28 +- .../v8/test/unittests/api/isolate-unittest.cc | 4 +- .../unittests/asmjs/switch-logic-unittest.cc | 89 - ...cc => background-compile-task-unittest.cc} | 178 +- .../unittests/base/atomic-utils-unittest.cc | 18 +- .../test/unittests/base/logging-unittest.cc | 3 +- .../platform/condition-variable-unittest.cc | 30 +- .../unittests/base/platform/mutex-unittest.cc | 8 +- .../unittests/base/threaded-list-unittest.cc | 31 +- .../unittests/cancelable-tasks-unittest.cc | 327 +- .../unittests/char-predicates-unittest.cc | 217 +- .../unittests/code-stub-assembler-unittest.cc | 10 +- .../compiler-dispatcher-tracer-unittest.cc | 47 - .../compiler-dispatcher-unittest.cc | 475 +- .../optimizing-compile-dispatcher-unittest.cc | 3 + .../arm/instruction-selector-arm-unittest.cc | 2 +- .../instruction-selector-arm64-unittest.cc | 16 +- .../instruction-selector-unittest.cc | 35 +- .../instruction-selector-unittest.h | 6 +- .../instruction-sequence-unittest.cc | 87 +- .../instruction-sequence-unittest.h | 17 +- .../{ => backend}/instruction-unittest.cc | 2 +- .../compiler/code-assembler-unittest.cc | 38 + .../constant-folding-reducer-unittest.cc | 44 +- .../test/unittests/compiler/graph-unittest.cc | 13 +- .../test/unittests/compiler/graph-unittest.h | 7 +- .../instruction-selector-ia32-unittest.cc | 2 +- .../compiler/js-call-reducer-unittest.cc | 25 +- .../compiler/js-create-lowering-unittest.cc | 6 +- ...-native-context-specialization-unittest.cc | 12 +- .../compiler/js-typed-lowering-unittest.cc | 2 +- .../unittests/compiler/live-range-builder.h | 78 - .../compiler/machine-operator-unittest.cc | 3 - .../instruction-selector-mips-unittest.cc | 2 +- .../instruction-selector-mips64-unittest.cc | 2 +- .../unittests/compiler/node-test-utils.cc | 27 +- .../test/unittests/compiler/node-test-utils.h | 10 + .../ppc/instruction-selector-ppc-unittest.cc | 2 +- .../redundancy-elimination-unittest.cc | 207 +- .../compiler/regalloc/live-range-unittest.cc | 60 +- .../regalloc/move-optimizer-unittest.cc | 11 +- .../regalloc/register-allocator-unittest.cc | 24 +- .../instruction-selector-s390-unittest.cc | 2 +- .../compiler/simplified-lowering-unittest.cc | 6 +- .../simplified-operator-reducer-unittest.cc | 5 +- .../compiler/typed-optimization-unittest.cc | 3 +- .../test/unittests/compiler/typer-unittest.cc | 29 +- .../x64/instruction-selector-x64-unittest.cc | 108 +- .../unittests/compiler/zone-stats-unittest.cc | 2 +- .../unittests/detachable-vector-unittest.cc | 60 + .../test/unittests/heap/barrier-unittest.cc | 22 +- .../heap/embedder-tracing-unittest.cc | 83 +- .../test/unittests/heap/gc-tracer-unittest.cc | 26 +- deps/v8/test/unittests/heap/heap-unittest.cc | 36 +- .../test/unittests/heap/slot-set-unittest.cc | 57 +- .../test/unittests/heap/unmapper-unittest.cc | 298 +- .../bytecode-array-builder-unittest.cc | 11 +- .../bytecode-array-iterator-unittest.cc | 7 +- ...bytecode-array-random-iterator-unittest.cc | 43 +- .../interpreter/bytecode-decoder-unittest.cc | 7 +- .../interpreter/bytecodes-unittest.cc | 2 +- .../constant-array-builder-unittest.cc | 6 +- .../unittests/microtask-queue-unittest.cc | 175 + .../objects/microtask-queue-unittest.cc | 55 - .../register-configuration-unittest.cc | 16 +- deps/v8/test/unittests/test-helpers.h | 1 - deps/v8/test/unittests/test-utils.cc | 105 +- deps/v8/test/unittests/test-utils.h | 293 +- .../test/unittests/torque/torque-unittest.cc | 21 + deps/v8/test/unittests/unicode-unittest.cc | 3 +- .../unittests/value-serializer-unittest.cc | 42 +- deps/v8/test/unittests/wasm/OWNERS | 2 - .../wasm/function-body-decoder-unittest.cc | 294 +- .../unittests/wasm/module-decoder-unittest.cc | 1922 ++++---- .../wasm/streaming-decoder-unittest.cc | 82 +- ...test.cc => trap-handler-posix-unittest.cc} | 4 +- .../wasm/trap-handler-win-unittest.cc | 93 + .../wasm/trap-handler-x64-unittest.cc | 482 ++ .../wasm/wasm-code-manager-unittest.cc | 137 +- deps/v8/test/wasm-js/BUILD.gn | 17 + deps/v8/test/wasm-js/LICENSE.testharness | 30 + deps/v8/test/wasm-js/testcfg.py | 74 + deps/v8/test/wasm-js/testharness-after.js | 16 + deps/v8/test/wasm-js/testharness.js | 148 + deps/v8/test/wasm-js/wasm-js.status | 21 + .../v8/test/wasm-spec-tests/tests.tar.gz.sha1 | 2 +- .../class-syntax-semicolon-expected.txt | 3 - deps/v8/test/webkit/class-syntax-semicolon.js | 3 - .../fast/js/toString-overrides-expected.txt | 4 +- .../test/webkit/resources/JSON-stringify.js | 14 +- .../test/webkit/resources/json2-es5-compat.js | 12 +- .../webkit/run-json-stringify-expected.txt | 13 +- deps/v8/test/webkit/webkit.status | 23 +- deps/v8/third_party/googletest/BUILD.gn | 5 +- .../third_party/inspector_protocol/README.v8 | 2 +- .../check_protocol_compatibility.py | 5 + .../inspector_protocol/code_generator.py | 19 + .../convert_protocol_to_json.py | 22 +- .../lib/DispatcherBase_cpp.template | 16 +- .../inspector_protocol/lib/Maybe_h.template | 9 + .../inspector_protocol/lib/Object_h.template | 2 +- .../lib/ValueConversions_h.template | 22 + deps/v8/third_party/inspector_protocol/pdl.py | 21 +- deps/v8/third_party/v8/builtins/array-sort.tq | 187 +- deps/v8/tools/BUILD.gn | 1 + deps/v8/tools/{unittests => }/PRESUBMIT.py | 3 +- deps/v8/tools/callstats.py | 2 + deps/v8/tools/check-unused-symbols.sh | 24 + deps/v8/tools/clusterfuzz/v8_mock_archs.js | 4 + deps/v8/tools/deprecation_stats.py | 105 + deps/v8/tools/dev/gm.py | 46 +- deps/v8/tools/gdbinit | 13 +- deps/v8/tools/gen-keywords-gen-h.py | 252 + deps/v8/tools/gen-postmortem-metadata.py | 9 +- .../tools/generate-header-include-checks.py | 16 +- deps/v8/tools/heap-stats/index.html | 1 - .../tools/heap-stats/trace-file-reader.html | 8 +- deps/v8/tools/heap-stats/trace-file-reader.js | 5 +- deps/v8/tools/js2c.py | 2 +- deps/v8/tools/linux-tick-processor | 4 +- deps/v8/tools/locs.py | 368 ++ deps/v8/tools/map-processor | 2 +- deps/v8/tools/map-processor.html | 430 +- deps/v8/tools/map-processor.js | 26 +- deps/v8/tools/node/README.md | 12 + deps/v8/tools/node/backport_node.py | 126 - deps/v8/tools/node/test_backport_node.py | 70 - deps/v8/tools/parse-processor | 2 +- deps/v8/tools/plot-timer-events | 2 +- deps/v8/tools/profview/profview.js | 8 +- deps/v8/tools/release/auto_roll.py | 5 +- deps/v8/tools/release/common_includes.py | 2 +- deps/v8/tools/release/create_release.py | 11 +- deps/v8/tools/release/filter_build_files.py | 1 + deps/v8/tools/release/git_recipes.py | 8 +- deps/v8/tools/release/test_scripts.py | 9 +- deps/v8/tools/run-clang-tidy.py | 3 +- deps/v8/tools/run_perf.py | 60 +- .../v8/tools/sanitizers/tsan_suppressions.txt | 4 - deps/v8/tools/snapshot/asm_to_inline_asm.py | 29 + deps/v8/tools/testrunner/base_runner.py | 20 +- deps/v8/tools/testrunner/local/statusfile.py | 3 +- deps/v8/tools/testrunner/num_fuzzer.py | 7 + deps/v8/tools/testrunner/objects/testcase.py | 13 +- deps/v8/tools/testrunner/test_config.py | 2 + deps/v8/tools/testrunner/testproc/fuzzer.py | 7 + deps/v8/tools/torque/format-torque.py | 127 +- .../tools/torque/vim-torque/syntax/torque.vim | 6 +- .../syntaxes/torque.tmLanguage.json | 4 +- deps/v8/tools/try_perf.py | 10 +- deps/v8/tools/turbolizer/README.md | 7 +- deps/v8/tools/turbolizer/deploy.sh | 17 +- deps/v8/tools/turbolizer/index.html | 100 +- deps/v8/tools/turbolizer/package-lock.json | 1818 +++++++- deps/v8/tools/turbolizer/package.json | 12 +- deps/v8/tools/turbolizer/src/code-view.ts | 33 +- .../tools/turbolizer/src/disassembly-view.ts | 12 +- deps/v8/tools/turbolizer/src/edge.ts | 2 +- deps/v8/tools/turbolizer/src/graph-layout.ts | 6 +- deps/v8/tools/turbolizer/src/graph-view.ts | 39 +- .../v8/tools/turbolizer/src/graphmultiview.ts | 56 +- deps/v8/tools/turbolizer/src/node.ts | 4 +- deps/v8/tools/turbolizer/src/schedule-view.ts | 36 +- .../tools/turbolizer/src/selection-broker.ts | 2 +- deps/v8/tools/turbolizer/src/selection.ts | 2 +- deps/v8/tools/turbolizer/src/sequence-view.ts | 8 +- .../tools/turbolizer/src/source-resolver.ts | 13 +- deps/v8/tools/turbolizer/src/tabs.ts | 101 + deps/v8/tools/turbolizer/src/text-view.ts | 6 +- .../tools/turbolizer/src/turbo-visualizer.ts | 36 +- deps/v8/tools/turbolizer/src/view.ts | 8 +- deps/v8/tools/turbolizer/tabs.css | 55 + .../turbolizer/test/source-resolver-test.ts | 10 + deps/v8/tools/turbolizer/tsconfig.test.json | 6 + deps/v8/tools/turbolizer/turbo-visualizer.css | 48 +- deps/v8/tools/unittests/run_perf_test.py | 27 +- deps/v8/tools/unittests/run_tests_test.py | 32 +- .../testdata/testroot1/v8_build_config.json | 5 +- .../testdata/testroot2/v8_build_config.json | 5 +- deps/v8/tools/update-object-macros-undef.py | 46 + deps/v8/tools/v8_presubmit.py | 9 - deps/v8/tools/v8heapconst.py | 654 +-- deps/v8/tools/wasm/update-wasm-spec-tests.sh | 8 +- .../v8/tools/wasm/wasm-import-profiler-end.js | 6 + deps/v8/tools/wasm/wasm-import-profiler.js | 131 + deps/v8/tools/whitespace.txt | 2 +- 2162 files changed, 115717 insertions(+), 76554 deletions(-) create mode 100644 deps/v8/benchmarks/micro/slice-perf.js delete mode 100644 deps/v8/include/PRESUBMIT.py create mode 100644 deps/v8/include/v8-wasm-trap-handler-posix.h create mode 100644 deps/v8/include/v8-wasm-trap-handler-win.h delete mode 100644 deps/v8/src/PRESUBMIT.py delete mode 100644 deps/v8/src/arm/code-stubs-arm.cc delete mode 100644 deps/v8/src/arm/code-stubs-arm.h delete mode 100644 deps/v8/src/arm64/code-stubs-arm64.cc delete mode 100644 deps/v8/src/arm64/code-stubs-arm64.h delete mode 100644 deps/v8/src/asmjs/switch-logic.cc delete mode 100644 deps/v8/src/asmjs/switch-logic.h delete mode 100644 deps/v8/src/assembler-arch-inl.h delete mode 100644 deps/v8/src/ast/context-slot-cache.cc delete mode 100644 deps/v8/src/ast/context-slot-cache.h delete mode 100644 deps/v8/src/ast/scopes-inl.h create mode 100644 deps/v8/src/builtins/array-join.tq create mode 100644 deps/v8/src/builtins/array-of.tq create mode 100644 deps/v8/src/builtins/array-slice.tq create mode 100644 deps/v8/src/builtins/builtins-collections-gen.h create mode 100644 deps/v8/src/builtins/builtins-microtask-queue-gen.cc create mode 100644 deps/v8/src/builtins/builtins-object-gen.h delete mode 100644 deps/v8/src/builtins/builtins-test-gen.h create mode 100644 deps/v8/src/builtins/builtins-weak-refs.cc create mode 100644 deps/v8/src/builtins/collections.tq create mode 100644 deps/v8/src/builtins/frames.tq create mode 100644 deps/v8/src/builtins/iterator.tq create mode 100644 deps/v8/src/builtins/object-fromentries.tq create mode 100644 deps/v8/src/builtins/object.tq delete mode 100644 deps/v8/src/code-stubs-utils.h delete mode 100644 deps/v8/src/code-stubs.cc delete mode 100644 deps/v8/src/code-stubs.h delete mode 100644 deps/v8/src/compiler-dispatcher/compiler-dispatcher-job.cc delete mode 100644 deps/v8/src/compiler-dispatcher/compiler-dispatcher-job.h delete mode 100644 deps/v8/src/compiler-dispatcher/compiler-dispatcher-tracer.cc delete mode 100644 deps/v8/src/compiler-dispatcher/compiler-dispatcher-tracer.h delete mode 100644 deps/v8/src/compiler-dispatcher/unoptimized-compile-job.cc delete mode 100644 deps/v8/src/compiler-dispatcher/unoptimized-compile-job.h create mode 100644 deps/v8/src/compiler/allocation-builder-inl.h create mode 100644 deps/v8/src/compiler/backend/OWNERS rename deps/v8/src/compiler/{ => backend}/arm/code-generator-arm.cc (97%) rename deps/v8/src/compiler/{ => backend}/arm/instruction-codes-arm.h (98%) rename deps/v8/src/compiler/{ => backend}/arm/instruction-scheduler-arm.cc (98%) rename deps/v8/src/compiler/{ => backend}/arm/instruction-selector-arm.cc (99%) rename deps/v8/src/compiler/{ => backend}/arm/unwinding-info-writer-arm.cc (93%) rename deps/v8/src/compiler/{ => backend}/arm/unwinding-info-writer-arm.h (90%) rename deps/v8/src/compiler/{ => backend}/arm64/code-generator-arm64.cc (97%) rename deps/v8/src/compiler/{ => backend}/arm64/instruction-codes-arm64.h (98%) rename deps/v8/src/compiler/{ => backend}/arm64/instruction-scheduler-arm64.cc (99%) rename deps/v8/src/compiler/{ => backend}/arm64/instruction-selector-arm64.cc (99%) rename deps/v8/src/compiler/{ => backend}/arm64/unwinding-info-writer-arm64.cc (93%) rename deps/v8/src/compiler/{ => backend}/arm64/unwinding-info-writer-arm64.h (89%) rename deps/v8/src/compiler/{ => backend}/code-generator-impl.h (96%) rename deps/v8/src/compiler/{ => backend}/code-generator.cc (89%) rename deps/v8/src/compiler/{ => backend}/code-generator.h (98%) rename deps/v8/src/compiler/{ => backend}/frame-elider.cc (99%) rename deps/v8/src/compiler/{ => backend}/frame-elider.h (83%) rename deps/v8/src/compiler/{ => backend}/gap-resolver.cc (97%) rename deps/v8/src/compiler/{ => backend}/gap-resolver.h (89%) rename deps/v8/src/compiler/{ => backend}/ia32/code-generator-ia32.cc (93%) rename deps/v8/src/compiler/{ => backend}/ia32/instruction-codes-ia32.h (98%) rename deps/v8/src/compiler/{ => backend}/ia32/instruction-scheduler-ia32.cc (98%) rename deps/v8/src/compiler/{ => backend}/ia32/instruction-selector-ia32.cc (97%) rename deps/v8/src/compiler/{ => backend}/instruction-codes.h (91%) rename deps/v8/src/compiler/{ => backend}/instruction-scheduler.cc (95%) rename deps/v8/src/compiler/{ => backend}/instruction-scheduler.h (92%) rename deps/v8/src/compiler/{ => backend}/instruction-selector-impl.h (97%) rename deps/v8/src/compiler/{ => backend}/instruction-selector.cc (98%) rename deps/v8/src/compiler/{ => backend}/instruction-selector.h (98%) rename deps/v8/src/compiler/{ => backend}/instruction.cc (84%) rename deps/v8/src/compiler/{ => backend}/instruction.h (94%) rename deps/v8/src/compiler/{ => backend}/jump-threading.cc (93%) rename deps/v8/src/compiler/{ => backend}/jump-threading.h (84%) rename deps/v8/src/compiler/{ => backend}/live-range-separator.cc (83%) rename deps/v8/src/compiler/{ => backend}/live-range-separator.h (90%) rename deps/v8/src/compiler/{ => backend}/mips/OWNERS (100%) rename deps/v8/src/compiler/{ => backend}/mips/code-generator-mips.cc (92%) rename deps/v8/src/compiler/{ => backend}/mips/instruction-codes-mips.h (98%) rename deps/v8/src/compiler/{ => backend}/mips/instruction-scheduler-mips.cc (99%) rename deps/v8/src/compiler/{ => backend}/mips/instruction-selector-mips.cc (95%) rename deps/v8/src/compiler/{ => backend}/mips64/OWNERS (100%) rename deps/v8/src/compiler/{ => backend}/mips64/code-generator-mips64.cc (95%) rename deps/v8/src/compiler/{ => backend}/mips64/instruction-codes-mips64.h (98%) rename deps/v8/src/compiler/{ => backend}/mips64/instruction-scheduler-mips64.cc (99%) rename deps/v8/src/compiler/{ => backend}/mips64/instruction-selector-mips64.cc (96%) rename deps/v8/src/compiler/{ => backend}/move-optimizer.cc (99%) rename deps/v8/src/compiler/{ => backend}/move-optimizer.h (91%) rename deps/v8/src/compiler/{ => backend}/ppc/OWNERS (100%) rename deps/v8/src/compiler/{ => backend}/ppc/code-generator-ppc.cc (91%) create mode 100644 deps/v8/src/compiler/backend/ppc/instruction-codes-ppc.h rename deps/v8/src/compiler/{ => backend}/ppc/instruction-scheduler-ppc.cc (68%) rename deps/v8/src/compiler/{ => backend}/ppc/instruction-selector-ppc.cc (91%) rename deps/v8/src/compiler/{ => backend}/register-allocator-verifier.cc (98%) rename deps/v8/src/compiler/{ => backend}/register-allocator-verifier.h (97%) rename deps/v8/src/compiler/{ => backend}/register-allocator.cc (95%) rename deps/v8/src/compiler/{ => backend}/register-allocator.h (97%) rename deps/v8/src/compiler/{ => backend}/s390/OWNERS (100%) rename deps/v8/src/compiler/{ => backend}/s390/code-generator-s390.cc (74%) create mode 100644 deps/v8/src/compiler/backend/s390/instruction-codes-s390.h rename deps/v8/src/compiler/{ => backend}/s390/instruction-scheduler-s390.cc (94%) rename deps/v8/src/compiler/{ => backend}/s390/instruction-selector-s390.cc (96%) rename deps/v8/src/compiler/{ => backend}/unwinding-info-writer.h (74%) rename deps/v8/src/compiler/{ => backend}/x64/code-generator-x64.cc (93%) rename deps/v8/src/compiler/{ => backend}/x64/instruction-codes-x64.h (96%) rename deps/v8/src/compiler/{ => backend}/x64/instruction-scheduler-x64.cc (96%) rename deps/v8/src/compiler/{ => backend}/x64/instruction-selector-x64.cc (93%) rename deps/v8/src/compiler/{ => backend}/x64/unwinding-info-writer-x64.cc (97%) rename deps/v8/src/compiler/{ => backend}/x64/unwinding-info-writer-x64.h (91%) delete mode 100644 deps/v8/src/compiler/ppc/instruction-codes-ppc.h delete mode 100644 deps/v8/src/compiler/s390/instruction-codes-s390.h create mode 100644 deps/v8/src/constant-pool.cc create mode 100644 deps/v8/src/constant-pool.h create mode 100644 deps/v8/src/constants-arch.h create mode 100644 deps/v8/src/d8-platforms.cc create mode 100644 deps/v8/src/d8-platforms.h create mode 100644 deps/v8/src/debug/debug-property-iterator.cc create mode 100644 deps/v8/src/debug/debug-property-iterator.h create mode 100644 deps/v8/src/detachable-vector.cc create mode 100644 deps/v8/src/heap/slot-set.cc delete mode 100644 deps/v8/src/ia32/code-stubs-ia32.cc delete mode 100644 deps/v8/src/inspector/PRESUBMIT.py delete mode 100644 deps/v8/src/inspector/build/check_injected_script_source.py delete mode 100644 deps/v8/src/inspector/build/closure-compiler.tar.gz.sha1 delete mode 100755 deps/v8/src/inspector/build/compile-scripts.py delete mode 100755 deps/v8/src/inspector/build/generate_protocol_externs.py delete mode 100755 deps/v8/src/inspector/build/rjsmin.py delete mode 100644 deps/v8/src/inspector/build/xxd.py create mode 100644 deps/v8/src/inspector/custom-preview.cc create mode 100644 deps/v8/src/inspector/custom-preview.h delete mode 100644 deps/v8/src/inspector/injected-script-source.js delete mode 100644 deps/v8/src/inspector/injected_script_externs.js delete mode 100644 deps/v8/src/inspector/v8-function-call.cc delete mode 100644 deps/v8/src/inspector/v8-function-call.h delete mode 100644 deps/v8/src/inspector/v8-injected-script-host.cc delete mode 100644 deps/v8/src/inspector/v8-injected-script-host.h delete mode 100644 deps/v8/src/inspector/v8-internal-value-type.cc delete mode 100644 deps/v8/src/inspector/v8-internal-value-type.h create mode 100644 deps/v8/src/inspector/value-mirror.cc create mode 100644 deps/v8/src/inspector/value-mirror.h delete mode 100644 deps/v8/src/instruction-stream.cc delete mode 100644 deps/v8/src/instruction-stream.h delete mode 100644 deps/v8/src/intl.cc delete mode 100644 deps/v8/src/intl.h create mode 100644 deps/v8/src/isolate-allocator.cc create mode 100644 deps/v8/src/isolate-allocator.h create mode 100644 deps/v8/src/isolate-data.h delete mode 100644 deps/v8/src/js/intl.js create mode 100644 deps/v8/src/memcopy.cc create mode 100644 deps/v8/src/memcopy.h create mode 100644 deps/v8/src/message-template.h create mode 100644 deps/v8/src/microtask-queue.cc create mode 100644 deps/v8/src/microtask-queue.h delete mode 100644 deps/v8/src/mips/code-stubs-mips.cc delete mode 100644 deps/v8/src/mips/code-stubs-mips.h delete mode 100644 deps/v8/src/mips64/code-stubs-mips64.cc delete mode 100644 deps/v8/src/mips64/code-stubs-mips64.h create mode 100644 deps/v8/src/objects/descriptor-array-inl.h create mode 100644 deps/v8/src/objects/dictionary-inl.h create mode 100644 deps/v8/src/objects/embedder-data-array-inl.h create mode 100644 deps/v8/src/objects/embedder-data-array.cc create mode 100644 deps/v8/src/objects/embedder-data-array.h create mode 100644 deps/v8/src/objects/embedder-data-slot-inl.h create mode 100644 deps/v8/src/objects/embedder-data-slot.h create mode 100644 deps/v8/src/objects/heap-object-inl.h create mode 100644 deps/v8/src/objects/heap-object.h create mode 100644 deps/v8/src/objects/instance-type-inl.h create mode 100644 deps/v8/src/objects/instance-type.h delete mode 100644 deps/v8/src/objects/intl-objects-inl.h create mode 100644 deps/v8/src/objects/js-segment-iterator-inl.h create mode 100644 deps/v8/src/objects/js-segment-iterator.cc create mode 100644 deps/v8/src/objects/js-segment-iterator.h create mode 100644 deps/v8/src/objects/js-weak-refs-inl.h create mode 100644 deps/v8/src/objects/js-weak-refs.h delete mode 100644 deps/v8/src/objects/microtask-queue.cc delete mode 100644 deps/v8/src/objects/microtask-queue.h create mode 100644 deps/v8/src/objects/property-cell-inl.h create mode 100644 deps/v8/src/objects/property-cell.h create mode 100644 deps/v8/src/objects/slots-atomic-inl.h create mode 100644 deps/v8/src/objects/slots-inl.h create mode 100644 deps/v8/src/objects/slots.h rename deps/v8/src/objects/{microtask-queue-inl.h => smi-inl.h} (50%) create mode 100644 deps/v8/src/objects/smi.h create mode 100644 deps/v8/src/objects/string-table-inl.h delete mode 100644 deps/v8/src/parsing/duplicate-finder.h create mode 100644 deps/v8/src/parsing/keywords-gen.h create mode 100644 deps/v8/src/parsing/keywords.txt create mode 100644 deps/v8/src/pointer-with-payload.h delete mode 100644 deps/v8/src/ppc/code-stubs-ppc.h create mode 100644 deps/v8/src/ptr-compr.h create mode 100644 deps/v8/src/runtime/runtime-weak-refs.cc delete mode 100644 deps/v8/src/s390/code-stubs-s390.h delete mode 100644 deps/v8/src/snapshot/builtin-deserializer-allocator.cc delete mode 100644 deps/v8/src/snapshot/builtin-deserializer-allocator.h delete mode 100644 deps/v8/src/snapshot/builtin-deserializer.cc delete mode 100644 deps/v8/src/snapshot/builtin-deserializer.h delete mode 100644 deps/v8/src/snapshot/builtin-serializer-allocator.cc delete mode 100644 deps/v8/src/snapshot/builtin-serializer-allocator.h delete mode 100644 deps/v8/src/snapshot/builtin-serializer.cc delete mode 100644 deps/v8/src/snapshot/builtin-serializer.h rename deps/v8/src/snapshot/{default-deserializer-allocator.cc => deserializer-allocator.cc} (58%) rename deps/v8/src/snapshot/{default-deserializer-allocator.h => deserializer-allocator.h} (80%) create mode 100644 deps/v8/src/snapshot/embedded-data.cc create mode 100644 deps/v8/src/snapshot/embedded-data.h create mode 100644 deps/v8/src/snapshot/embedded-file-writer.cc create mode 100644 deps/v8/src/snapshot/embedded-file-writer.h delete mode 100644 deps/v8/src/snapshot/macros.h create mode 100644 deps/v8/src/snapshot/read-only-deserializer.cc create mode 100644 deps/v8/src/snapshot/read-only-deserializer.h create mode 100644 deps/v8/src/snapshot/read-only-serializer.cc create mode 100644 deps/v8/src/snapshot/read-only-serializer.h create mode 100644 deps/v8/src/snapshot/roots-serializer.cc create mode 100644 deps/v8/src/snapshot/roots-serializer.h rename deps/v8/src/snapshot/{default-serializer-allocator.cc => serializer-allocator.cc} (81%) rename deps/v8/src/snapshot/{default-serializer-allocator.h => serializer-allocator.h} (83%) create mode 100644 deps/v8/src/task-utils.cc create mode 100644 deps/v8/src/task-utils.h create mode 100644 deps/v8/src/thread-id.cc create mode 100644 deps/v8/src/thread-id.h delete mode 100644 deps/v8/src/torque-assembler.h delete mode 100644 deps/v8/src/torque/scope.cc delete mode 100644 deps/v8/src/torque/scope.h create mode 100644 deps/v8/src/tracing/OWNER rename deps/v8/src/trap-handler/{handler-inside-linux.cc => handler-inside-posix.cc} (79%) create mode 100644 deps/v8/src/trap-handler/handler-inside-posix.h create mode 100644 deps/v8/src/trap-handler/handler-inside-win.cc create mode 100644 deps/v8/src/trap-handler/handler-inside-win.h rename deps/v8/src/trap-handler/{handler-outside-linux.cc => handler-outside-posix.cc} (78%) delete mode 100644 deps/v8/src/unicode-cache-inl.h create mode 100644 deps/v8/src/unwinder.cc create mode 100644 deps/v8/src/wasm/compilation-environment.h create mode 100644 deps/v8/src/wasm/graph-builder-interface.cc create mode 100644 deps/v8/src/wasm/graph-builder-interface.h create mode 100644 deps/v8/src/wasm/wasm-import-wrapper-cache-inl.h delete mode 100644 deps/v8/src/x64/code-stubs-x64.cc delete mode 100644 deps/v8/test/cctest/compiler/test-run-stubs.cc delete mode 100644 deps/v8/test/cctest/interpreter/bytecode_expectations/DoExpression.golden delete mode 100644 deps/v8/test/cctest/test-code-stubs-arm.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs-arm64.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs-ia32.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs-mips.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs-mips64.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs-x64.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs.cc delete mode 100644 deps/v8/test/cctest/test-code-stubs.h create mode 100644 deps/v8/test/cctest/test-factory.cc create mode 100644 deps/v8/test/cctest/test-icache.cc delete mode 100644 deps/v8/test/cctest/test-isolate-independent-builtins.cc create mode 100644 deps/v8/test/cctest/test-js-weak-refs.cc create mode 100644 deps/v8/test/cctest/test-unwinder.cc create mode 100644 deps/v8/test/cctest/wasm/test-wasm-import-wrapper-cache.cc delete mode 100644 deps/v8/test/inspector/PRESUBMIT.py create mode 100644 deps/v8/test/inspector/debugger/class-fields-scopes-expected.txt create mode 100644 deps/v8/test/inspector/debugger/class-fields-scopes.js rename deps/v8/test/inspector/debugger/{schedule-step-into-async-set-timeout-expected.txt => pause-on-async-call-set-timeout-expected.txt} (93%) rename deps/v8/test/inspector/debugger/{schedule-step-into-async-set-timeout.js => pause-on-async-call-set-timeout.js} (63%) delete mode 100644 deps/v8/test/inspector/debugger/schedule-step-into-async-expected.txt delete mode 100644 deps/v8/test/inspector/debugger/schedule-step-into-async.js create mode 100644 deps/v8/test/inspector/debugger/script-origin-stack-expected.txt create mode 100644 deps/v8/test/inspector/debugger/script-origin-stack.js delete mode 100644 deps/v8/test/inspector/debugger/stepping-ignores-injected-script-expected.txt delete mode 100644 deps/v8/test/inspector/debugger/stepping-ignores-injected-script.js delete mode 100644 deps/v8/test/inspector/debugger/stepping-with-exposed-injected-script-expected.txt delete mode 100644 deps/v8/test/inspector/debugger/stepping-with-exposed-injected-script.js create mode 100644 deps/v8/test/inspector/debugger/wasm-reset-context-group-expected.txt create mode 100644 deps/v8/test/inspector/debugger/wasm-reset-context-group.js create mode 100644 deps/v8/test/inspector/runtime/console-table-expected.txt create mode 100644 deps/v8/test/inspector/runtime/console-table.js create mode 100644 deps/v8/test/inspector/runtime/custom-preview-expected.txt create mode 100644 deps/v8/test/inspector/runtime/custom-preview.js create mode 100644 deps/v8/test/inspector/runtime/remote-object-expected.txt create mode 100644 deps/v8/test/inspector/runtime/remote-object-get-properties-expected.txt create mode 100644 deps/v8/test/inspector/runtime/remote-object-get-properties.js create mode 100644 deps/v8/test/inspector/runtime/remote-object.js delete mode 100644 deps/v8/test/inspector/runtime/stable-object-id-expected.txt delete mode 100644 deps/v8/test/inspector/runtime/stable-object-id.js delete mode 100644 deps/v8/test/intl/break-iterator/wellformed-unsupported-locale.js create mode 100644 deps/v8/test/intl/collator/constructor-order.js delete mode 100644 deps/v8/test/intl/collator/wellformed-unsupported-locale.js delete mode 100644 deps/v8/test/intl/date-format/wellformed-unsupported-locale.js create mode 100644 deps/v8/test/intl/default_locale.js create mode 100644 deps/v8/test/intl/list-format/constructor-order.js create mode 100644 deps/v8/test/intl/number-format/constructor-order.js delete mode 100644 deps/v8/test/intl/number-format/wellformed-unsupported-locale.js create mode 100644 deps/v8/test/intl/plural-rules/constructor-order.js delete mode 100644 deps/v8/test/intl/regexp-assert.js delete mode 100644 deps/v8/test/intl/regexp-prepare.js create mode 100644 deps/v8/test/intl/regress-8432.js create mode 100644 deps/v8/test/intl/regress-8469.js create mode 100644 deps/v8/test/intl/regress-8525.js create mode 100644 deps/v8/test/intl/regress-895942.js create mode 100644 deps/v8/test/intl/regress-900013.js create mode 100644 deps/v8/test/intl/regress-903566.js create mode 100644 deps/v8/test/intl/relative-time-format/constructor-order.js create mode 100644 deps/v8/test/intl/segmenter/constructor-order.js create mode 100644 deps/v8/test/intl/segmenter/segment-grapheme-following.js create mode 100644 deps/v8/test/intl/segmenter/segment-grapheme-iterable.js create mode 100644 deps/v8/test/intl/segmenter/segment-grapheme-next.js create mode 100644 deps/v8/test/intl/segmenter/segment-grapheme-preceding.js create mode 100644 deps/v8/test/intl/segmenter/segment-grapheme.js create mode 100644 deps/v8/test/intl/segmenter/segment-iterator-breakType.js create mode 100644 deps/v8/test/intl/segmenter/segment-iterator-ownPropertyDescriptor.js create mode 100644 deps/v8/test/intl/segmenter/segment-iterator-position.js create mode 100644 deps/v8/test/intl/segmenter/segment-line-following-modes.js create mode 100644 deps/v8/test/intl/segmenter/segment-line-following.js create mode 100644 deps/v8/test/intl/segmenter/segment-line-iterable.js create mode 100644 deps/v8/test/intl/segmenter/segment-line-next.js create mode 100644 deps/v8/test/intl/segmenter/segment-line-preceding.js create mode 100644 deps/v8/test/intl/segmenter/segment-line.js create mode 100644 deps/v8/test/intl/segmenter/segment-sentence-following.js create mode 100644 deps/v8/test/intl/segmenter/segment-sentence-iterable.js create mode 100644 deps/v8/test/intl/segmenter/segment-sentence-next.js create mode 100644 deps/v8/test/intl/segmenter/segment-sentence-preceding.js create mode 100644 deps/v8/test/intl/segmenter/segment-sentence.js create mode 100644 deps/v8/test/intl/segmenter/segment-word-following.js create mode 100644 deps/v8/test/intl/segmenter/segment-word-iterable.js create mode 100644 deps/v8/test/intl/segmenter/segment-word-next.js create mode 100644 deps/v8/test/intl/segmenter/segment-word-preceding.js create mode 100644 deps/v8/test/intl/segmenter/segment-word.js create mode 100644 deps/v8/test/intl/segmenter/subclassing.js create mode 100644 deps/v8/test/js-perf-test/ArrayIndexOfIncludesPolymorphic/indexof-includes-polymorphic.js create mode 100644 deps/v8/test/js-perf-test/ArrayIndexOfIncludesPolymorphic/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadLargeDoubleHoley/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadLargeDoublePacked/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadLargeSmiMap/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadLargeSmiSet/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadSmallDoubleHoley/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadSmallDoublePacked/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadSmallSmiMap/run.js create mode 100644 deps/v8/test/js-perf-test/ArrayLiteralInitialSpreadSmallSmiSet/run.js create mode 100644 deps/v8/test/js-perf-test/Dates/run.js create mode 100644 deps/v8/test/js-perf-test/Dates/toLocaleString.js create mode 100644 deps/v8/test/js-perf-test/Numbers/toLocaleString.js create mode 100644 deps/v8/test/js-perf-test/Strings/string-localeCompare.js create mode 100644 deps/v8/test/message/fail/call-async.js create mode 100644 deps/v8/test/message/fail/call-async.out create mode 100644 deps/v8/test/message/fail/call-await.js create mode 100644 deps/v8/test/message/fail/call-await.out create mode 100644 deps/v8/test/message/fail/call-let.js create mode 100644 deps/v8/test/message/fail/call-let.out create mode 100644 deps/v8/test/message/fail/call-static.js create mode 100644 deps/v8/test/message/fail/call-static.out create mode 100644 deps/v8/test/message/fail/call-yield.js create mode 100644 deps/v8/test/message/fail/call-yield.out create mode 100644 deps/v8/test/message/fail/directive.js create mode 100644 deps/v8/test/message/fail/directive.out delete mode 100644 deps/v8/test/message/fail/isvar.js delete mode 100644 deps/v8/test/message/fail/isvar.out create mode 100644 deps/v8/test/message/fail/list-format-style-narrow.js create mode 100644 deps/v8/test/message/fail/list-format-style-narrow.out create mode 100644 deps/v8/test/message/fail/modules-duplicate-export5.js create mode 100644 deps/v8/test/message/fail/modules-duplicate-export5.out create mode 100644 deps/v8/test/message/fail/weak-refs-makecell1.js create mode 100644 deps/v8/test/message/fail/weak-refs-makecell1.out create mode 100644 deps/v8/test/message/fail/weak-refs-makecell2.js create mode 100644 deps/v8/test/message/fail/weak-refs-makecell2.out create mode 100644 deps/v8/test/message/fail/weak-refs-weakfactory1.js create mode 100644 deps/v8/test/message/fail/weak-refs-weakfactory1.out create mode 100644 deps/v8/test/message/fail/weak-refs-weakfactory2.js create mode 100644 deps/v8/test/message/fail/weak-refs-weakfactory2.out create mode 100644 deps/v8/test/message/regress/fail/regress-8409.js create mode 100644 deps/v8/test/message/regress/fail/regress-8409.out create mode 100644 deps/v8/test/message/regress/fail/regress-900383.js create mode 100644 deps/v8/test/message/regress/fail/regress-900383.out create mode 100644 deps/v8/test/message/regress/fail/regress-903874.js create mode 100644 deps/v8/test/message/regress/fail/regress-903874.out create mode 100644 deps/v8/test/mjsunit/array-from-large-set.js create mode 100644 deps/v8/test/mjsunit/array-join-element-tostring-prototype-side-effects.js create mode 100644 deps/v8/test/mjsunit/array-join-element-tostring-side-effects.js create mode 100644 deps/v8/test/mjsunit/array-join-index-getter-side-effects.js create mode 100644 deps/v8/test/mjsunit/array-join-invalid-string-length.js create mode 100644 deps/v8/test/mjsunit/array-join-nesting.js create mode 100644 deps/v8/test/mjsunit/array-join-nonarray-length-getter-side-effects.js create mode 100644 deps/v8/test/mjsunit/array-join-separator-tostring-side-effects.js create mode 100644 deps/v8/test/mjsunit/array-tolocalestring.js create mode 100644 deps/v8/test/mjsunit/arrow-with.js create mode 100644 deps/v8/test/mjsunit/async-stack-traces-prepare-stacktrace-4.js create mode 100644 deps/v8/test/mjsunit/async-stack-traces-promise-all.js create mode 100644 deps/v8/test/mjsunit/compiler/abstract-equal-receiver.js create mode 100644 deps/v8/test/mjsunit/compiler/abstract-equal-undetectable.js create mode 100644 deps/v8/test/mjsunit/compiler/array-every.js create mode 100644 deps/v8/test/mjsunit/compiler/array-find.js create mode 100644 deps/v8/test/mjsunit/compiler/array-findindex.js create mode 100644 deps/v8/test/mjsunit/compiler/array-some.js create mode 100644 deps/v8/test/mjsunit/compiler/instance-of-overridden-has-instance.js create mode 100644 deps/v8/test/mjsunit/compiler/lazy-deopt-async-function-resolve.js create mode 100644 deps/v8/test/mjsunit/compiler/number-multiply.js create mode 100644 deps/v8/test/mjsunit/compiler/promise-resolve-stable-maps.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-8380.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-902608.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-905555-2.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-905555.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-910838.js create mode 100644 deps/v8/test/mjsunit/compiler/strict-equal-number.js create mode 100644 deps/v8/test/mjsunit/compiler/strict-equal-receiver.js create mode 100644 deps/v8/test/mjsunit/d8/d8-arguments.js create mode 100644 deps/v8/test/mjsunit/es6/array-spread-large-holey.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-1.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-10.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-11.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-2.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-3.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-4.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-5.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-6.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-7.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-8.js create mode 100644 deps/v8/test/mjsunit/es6/map-iterator-9.js create mode 100644 deps/v8/test/mjsunit/es6/regress/regress-cr895860.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-1.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-10.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-11.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-2.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-3.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-4.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-5.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-6.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-7.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-8.js create mode 100644 deps/v8/test/mjsunit/es6/set-iterator-9.js create mode 100644 deps/v8/test/mjsunit/es6/typedarray-from-detached-typedarray.js create mode 100644 deps/v8/test/mjsunit/es6/typedarray-from-next-overridden.js create mode 100644 deps/v8/test/mjsunit/es6/typedarray-from-nonfunction-iterator.js create mode 100644 deps/v8/test/mjsunit/es9/regress/regress-902965.js create mode 100644 deps/v8/test/mjsunit/es9/regress/regress-903070.js create mode 100644 deps/v8/test/mjsunit/es9/regress/regress-904167.js create mode 100644 deps/v8/test/mjsunit/harmony/bigint/misc.js delete mode 100644 deps/v8/test/mjsunit/harmony/default-parameter-do-expression.js delete mode 100644 deps/v8/test/mjsunit/harmony/do-expressions-arrow-param-scope.js delete mode 100644 deps/v8/test/mjsunit/harmony/do-expressions-control.js delete mode 100644 deps/v8/test/mjsunit/harmony/do-expressions.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-import-17.js create mode 100644 deps/v8/test/mjsunit/harmony/modules-skip-13.js create mode 100644 deps/v8/test/mjsunit/harmony/object-fromentries.js delete mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-4658.js delete mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-4755.js delete mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-4904.js delete mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-546967.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-897436.js delete mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-crbug-578038.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/basics.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanup-doesnt-iterate-all-cells.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanup-from-different-realm.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanup-is-a-microtask.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanup-proxy-from-different-realm.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanupsome-cleared-weakcell.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanupsome-dereffed-and-cleared-weakref.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanupsome-dereffed-weakref.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanupsome-weakcell.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/cleanupsome-weakref.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-after-cleanup.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-after-deref.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-before-cleanup.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-called-twice.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-clears-factory-pointer.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-inside-cleanup1.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-inside-cleanup2.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-inside-cleanup3.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-inside-cleanup4.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/clear-when-cleanup-already-scheduled.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/factory-scheduled-for-cleanup-multiple-times.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/iterating-weak-cells.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/multiple-dirty-weak-factories.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/two-weakrefs.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/weak-cell-basics.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/weak-factory-keeps-weak-cells-alive.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/weakcell-and-weakref.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/weakref-creation-keeps-alive.js create mode 100644 deps/v8/test/mjsunit/harmony/weakrefs/weakref-deref-keeps-alive.js create mode 100644 deps/v8/test/mjsunit/modules-export-star-as1.js create mode 100644 deps/v8/test/mjsunit/modules-export-star-as2.js create mode 100644 deps/v8/test/mjsunit/modules-export-star-as3.js create mode 100644 deps/v8/test/mjsunit/modules-imports8.js create mode 100644 deps/v8/test/mjsunit/modules-skip-8.js create mode 100644 deps/v8/test/mjsunit/modules-skip-9.js create mode 100644 deps/v8/test/mjsunit/parallel-compile-tasks.js create mode 100644 deps/v8/test/mjsunit/regexp-override-exec.js create mode 100644 deps/v8/test/mjsunit/regexp-override-symbol-match-all.js create mode 100644 deps/v8/test/mjsunit/regexp-override-symbol-match.js create mode 100644 deps/v8/test/mjsunit/regexp-override-symbol-replace.js create mode 100644 deps/v8/test/mjsunit/regexp-override-symbol-search.js create mode 100644 deps/v8/test/mjsunit/regexp-override-symbol-split.js create mode 100644 deps/v8/test/mjsunit/regress-906893.js create mode 100644 deps/v8/test/mjsunit/regress-regexp-functional-replace-slow.js create mode 100644 deps/v8/test/mjsunit/regress-v8-8445-2.js create mode 100644 deps/v8/test/mjsunit/regress-v8-8445.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-8237.js create mode 100644 deps/v8/test/mjsunit/regress/regress-8241.js create mode 100644 deps/v8/test/mjsunit/regress/regress-8377.js create mode 100644 deps/v8/test/mjsunit/regress/regress-8384.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-85177.js create mode 100644 deps/v8/test/mjsunit/regress/regress-895691.js create mode 100644 deps/v8/test/mjsunit/regress/regress-896326.js create mode 100644 deps/v8/test/mjsunit/regress/regress-897815.js create mode 100644 deps/v8/test/mjsunit/regress/regress-898812.js create mode 100644 deps/v8/test/mjsunit/regress/regress-898936.js create mode 100644 deps/v8/test/mjsunit/regress/regress-899115.js create mode 100644 deps/v8/test/mjsunit/regress/regress-899133.js create mode 100644 deps/v8/test/mjsunit/regress/regress-899474.js create mode 100644 deps/v8/test/mjsunit/regress/regress-899537.js create mode 100644 deps/v8/test/mjsunit/regress/regress-900085.js create mode 100644 deps/v8/test/mjsunit/regress/regress-900585.js create mode 100644 deps/v8/test/mjsunit/regress/regress-900786.js create mode 100644 deps/v8/test/mjsunit/regress/regress-901633.js create mode 100644 deps/v8/test/mjsunit/regress/regress-901798.js create mode 100644 deps/v8/test/mjsunit/regress/regress-902552.js create mode 100644 deps/v8/test/mjsunit/regress/regress-902810.js create mode 100644 deps/v8/test/mjsunit/regress/regress-903527.js create mode 100644 deps/v8/test/mjsunit/regress/regress-903697.js create mode 100644 deps/v8/test/mjsunit/regress/regress-904255.js create mode 100644 deps/v8/test/mjsunit/regress/regress-904275.js create mode 100644 deps/v8/test/mjsunit/regress/regress-904417.js create mode 100644 deps/v8/test/mjsunit/regress/regress-904707.js create mode 100644 deps/v8/test/mjsunit/regress/regress-905587.js create mode 100644 deps/v8/test/mjsunit/regress/regress-905907.js create mode 100644 deps/v8/test/mjsunit/regress/regress-906406.js create mode 100644 deps/v8/test/mjsunit/regress/regress-907575.js create mode 100644 deps/v8/test/mjsunit/regress/regress-907669.js create mode 100644 deps/v8/test/mjsunit/regress/regress-908231.js create mode 100644 deps/v8/test/mjsunit/regress/regress-908250.js create mode 100644 deps/v8/test/mjsunit/regress/regress-908975.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-546968.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-895199.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-896181.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-896700.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-897098.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-897404.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-897406.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-898785.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-898974.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-899464.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-899535.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-900674.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-902395.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-902610.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-902672.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-903043.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-905457.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-906043.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-906220.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-906870.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-908309.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-909614.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-911416.js create mode 100644 deps/v8/test/mjsunit/regress/regress-directive.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-osr-in-case-label.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-osr-in-literal.js create mode 100644 deps/v8/test/mjsunit/regress/regress-preparse-inner-arrow-duplicate-parameter.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-8357.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-8505.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-8533.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-894307.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-894374.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-898932.js create mode 100644 deps/v8/test/mjsunit/spread-large-array.js create mode 100644 deps/v8/test/mjsunit/spread-large-map.js create mode 100644 deps/v8/test/mjsunit/spread-large-set.js create mode 100644 deps/v8/test/mjsunit/spread-large-string.js create mode 100644 deps/v8/test/mjsunit/wasm/asm-wasm-math-intrinsic.js create mode 100644 deps/v8/test/mjsunit/wasm/atomics-stress.js create mode 100644 deps/v8/test/mjsunit/wasm/atomics64-stress.js create mode 100644 deps/v8/test/mjsunit/wasm/bulk-memory.js create mode 100644 deps/v8/test/mjsunit/wasm/exceptions-anyref.js create mode 100644 deps/v8/test/mjsunit/wasm/exceptions-catchall.js create mode 100644 deps/v8/test/mjsunit/wasm/exceptions-rethrow.js create mode 100644 deps/v8/test/mjsunit/wasm/exceptions-simd.js create mode 100644 deps/v8/test/mjsunit/wasm/exceptions-utils.js create mode 100644 deps/v8/test/mjsunit/wasm/futex.js delete mode 100644 deps/v8/test/mjsunit/wasm/jsapi-harness.js create mode 100644 deps/v8/test/mjsunit/wasm/loop-rotation.js create mode 100644 deps/v8/test/mjsunit/wasm/wasm-math-intrinsic.js create mode 100644 deps/v8/test/test262/harness-adapt-donotevaluate.js delete mode 100644 deps/v8/test/unittests/asmjs/switch-logic-unittest.cc rename deps/v8/test/unittests/{compiler-dispatcher/unoptimized-compile-job-unittest.cc => background-compile-task-unittest.cc} (55%) delete mode 100644 deps/v8/test/unittests/compiler-dispatcher/compiler-dispatcher-tracer-unittest.cc rename deps/v8/test/unittests/compiler/{ => backend}/instruction-selector-unittest.cc (99%) rename deps/v8/test/unittests/compiler/{ => backend}/instruction-selector-unittest.h (98%) rename deps/v8/test/unittests/compiler/{ => backend}/instruction-sequence-unittest.cc (92%) rename deps/v8/test/unittests/compiler/{ => backend}/instruction-sequence-unittest.h (95%) rename deps/v8/test/unittests/compiler/{ => backend}/instruction-unittest.cc (99%) delete mode 100644 deps/v8/test/unittests/compiler/live-range-builder.h create mode 100644 deps/v8/test/unittests/microtask-queue-unittest.cc delete mode 100644 deps/v8/test/unittests/objects/microtask-queue-unittest.cc create mode 100644 deps/v8/test/unittests/torque/torque-unittest.cc rename deps/v8/test/unittests/wasm/{trap-handler-unittest.cc => trap-handler-posix-unittest.cc} (96%) create mode 100644 deps/v8/test/unittests/wasm/trap-handler-win-unittest.cc create mode 100644 deps/v8/test/unittests/wasm/trap-handler-x64-unittest.cc create mode 100644 deps/v8/test/wasm-js/BUILD.gn create mode 100644 deps/v8/test/wasm-js/LICENSE.testharness create mode 100644 deps/v8/test/wasm-js/testcfg.py create mode 100644 deps/v8/test/wasm-js/testharness-after.js create mode 100644 deps/v8/test/wasm-js/testharness.js create mode 100644 deps/v8/test/wasm-js/wasm-js.status rename deps/v8/tools/{unittests => }/PRESUBMIT.py (73%) create mode 100755 deps/v8/tools/check-unused-symbols.sh create mode 100755 deps/v8/tools/deprecation_stats.py create mode 100755 deps/v8/tools/gen-keywords-gen-h.py create mode 100755 deps/v8/tools/locs.py create mode 100644 deps/v8/tools/node/README.md delete mode 100755 deps/v8/tools/node/backport_node.py delete mode 100755 deps/v8/tools/node/test_backport_node.py create mode 100644 deps/v8/tools/snapshot/asm_to_inline_asm.py create mode 100644 deps/v8/tools/turbolizer/src/tabs.ts create mode 100644 deps/v8/tools/turbolizer/tabs.css create mode 100644 deps/v8/tools/turbolizer/test/source-resolver-test.ts create mode 100644 deps/v8/tools/turbolizer/tsconfig.test.json create mode 100755 deps/v8/tools/update-object-macros-undef.py create mode 100644 deps/v8/tools/wasm/wasm-import-profiler-end.js create mode 100644 deps/v8/tools/wasm/wasm-import-profiler.js diff --git a/deps/v8/.clang-tidy b/deps/v8/.clang-tidy index 31d7ddc7500..80e243c5a0e 100644 --- a/deps/v8/.clang-tidy +++ b/deps/v8/.clang-tidy @@ -4,13 +4,13 @@ modernize-redundant-void-arg, modernize-replace-random-shuffle, modernize-shrink-to-fit, - modernize-use-auto, + # modernize-use-auto, modernize-use-bool-literals, modernize-use-equals-default, - modernize-use-equals-delete, + # modernize-use-equals-delete, modernize-use-nullptr, modernize-use-override, - google-build-explicit-make-pair, + # google-build-explicit-make-pair, google-explicit-constructor, google-readability-casting' WarningsAsErrors: '' diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index 7f09c89e360..6cf6ab4e919 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -32,6 +32,7 @@ .project .pydevproject .settings +.torquelint-cache .vscode /_* /build @@ -51,7 +52,7 @@ /test/mozilla/data /test/test262/data /test/test262/harness -/test/wasm-js +/test/wasm-js/data /test/wasm-spec-tests/tests /test/wasm-spec-tests/tests.tar.gz /third_party/* diff --git a/deps/v8/.vpython b/deps/v8/.vpython index 398cef1ad52..f8d3b7278a4 100644 --- a/deps/v8/.vpython +++ b/deps/v8/.vpython @@ -43,3 +43,26 @@ wheel: < platform: "win_amd64" > > + +# Used by: +# tools/unittests/run_perf_test.py +wheel: < + name: "infra/python/wheels/coverage/${vpython_platform}" + version: "version:4.3.4" +> +wheel: < + name: "infra/python/wheels/six-py2_py3" + version: "version:1.10.0" +> +wheel: < + name: "infra/python/wheels/pbr-py2_py3" + version: "version:3.0.0" +> +wheel: < + name: "infra/python/wheels/funcsigs-py2_py3" + version: "version:1.0.2" +> +wheel: < + name: "infra/python/wheels/mock-py2_py3" + version: "version:2.0.0" +> diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index b935565945d..1027d55b4d0 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -50,6 +50,7 @@ Andrew Paprocki Andrei Kashcha Anna Henningsen Bangfu Tao +Daniel Shelton Ben Coe Ben Newman Ben Noordhuis @@ -109,7 +110,7 @@ Maciej Małecki Marcin Cieślak Marcin Wiącek Mateusz Czeladka -Matheus Marchini +Matheus Marchini Mathias Bynens Matt Hanselman Matthew Sporleder @@ -156,6 +157,7 @@ Teddy Katz Tiancheng "Timothy" Gu Tobias Burnus Tobias Nießen +Tom Tan Ujjwal Sharma Victor Costan Vlad Burlik diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 83f1fdb0bf7..b979ad77608 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -18,6 +18,15 @@ if (is_android) { import("gni/v8.gni") import("snapshot_toolchain.gni") +# Specifies if the target build is a simulator build. Comparing target cpu +# with v8 target cpu to not affect simulator builds for making cross-compile +# snapshots. +is_target_simulator = (target_cpu != v8_target_cpu && !v8_multi_arch_build) || + (current_cpu != v8_current_cpu && v8_multi_arch_build) + +# For faster Windows builds. See https://crbug.com/v8/8475. +emit_builtins_as_inline_asm = is_win && is_clang + declare_args() { # Print to stdout on Android. v8_android_log_stdout = false @@ -32,6 +41,11 @@ declare_args() { # Sets -DV8_ENABLE_FUTURE. v8_enable_future = false + # Lite mode disables a number of performance optimizations to reduce memory + # at the cost of performance. + # Sets --DV8_LITE_MODE. + v8_enable_lite_mode = false + # Sets -DVERIFY_HEAP. v8_enable_verify_heap = "" @@ -63,7 +77,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 @@ -72,15 +86,19 @@ declare_args() { v8_enable_fast_mksnapshot = false # Enable embedded builtins. - # TODO(jgruber,v8:6666): Support ia32 and maybe MSVC. - v8_enable_embedded_builtins = v8_use_snapshot && v8_current_cpu != "x86" && - !is_aix && (!is_win || is_clang) + v8_enable_embedded_builtins = true + + # Build-time flag for enabling nojit mode. + # TODO(v8:7777): Remove the build-time flag once the --jitless runtime flag + # does everything we need. + v8_enable_jitless_mode = false # Enable code-generation-time checking of types in the CodeStubAssembler. v8_enable_verify_csa = false # Enable pointer compression (sets -dV8_COMPRESS_POINTERS). v8_enable_pointer_compression = false + v8_enable_31bit_smis_on_64bit_arch = false # Interpreted regexp engine exists as platform-independent alternative # based where the regular expression is compiled to a bytecode. @@ -107,10 +125,6 @@ declare_args() { # Enables various testing features. v8_enable_test_features = "" - # Build the snapshot with unwinding information for perf. - # Sets -dV8_USE_SNAPSHOT_WITH_UNWINDING_INFO. - v8_perf_prof_unwinding_info = false - # With post mortem support enabled, metadata is embedded into libv8 that # describes various parameters of the VM for use by debuggers. See # tools/gen-postmortem-metadata.py for details. @@ -152,7 +166,12 @@ declare_args() { v8_check_microtasks_scopes_consistency = "" # Enable mitigations for executing untrusted code. - v8_untrusted_code_mitigations = true + # Disabled by default on ia32 due to conflicting requirements with embedded + # builtins. Enabled by default on Android since it doesn't support + # site-isolation in Chrome and on simulator builds which test code generation + # on these platforms. + v8_untrusted_code_mitigations = + v8_current_cpu != "x86" && (is_android || is_target_simulator) # Enable minor mark compact. v8_enable_minor_mc = true @@ -198,17 +217,13 @@ if (v8_check_microtasks_scopes_consistency == "") { v8_enable_debugging_features || dcheck_always_on } -assert(!v8_enable_embedded_builtins || v8_use_snapshot, - "Embedded builtins only work with snapshots") -assert( - v8_current_cpu != "x86" || !v8_enable_embedded_builtins || - !v8_untrusted_code_mitigations, - "Embedded builtins on ia32 and untrusted code mitigations are incompatible") +assert(v8_current_cpu != "x86" || !v8_untrusted_code_mitigations, + "Untrusted code mitigations are unsupported on ia32") -# Specifies if the target build is a simulator build. Comparing target cpu -# with v8 target cpu to not affect simulator builds for making cross-compile -# snapshots. -is_target_simulator = target_cpu != v8_target_cpu +assert(!v8_enable_jitless_mode || v8_enable_embedded_builtins, + "JIT-less mode requires embedded builtins") +assert(!v8_enable_jitless_mode || v8_use_snapshot, + "JIT-less mode requires a snapshot build") v8_random_seed = "314159265" v8_toolset_for_shell = "host" @@ -224,10 +239,10 @@ config("internal_config") { "$target_gen_dir", ] - defines = [] + configs = [ "//build/config/compiler:wexit_time_destructors" ] if (is_component_build) { - defines += [ "BUILDING_V8_SHARED" ] + defines = [ "BUILDING_V8_SHARED" ] } } @@ -314,6 +329,9 @@ config("features") { if (v8_enable_future) { defines += [ "V8_ENABLE_FUTURE" ] } + if (v8_enable_lite_mode) { + defines += [ "V8_LITE_MODE" ] + } if (v8_enable_gdbjit) { defines += [ "ENABLE_GDB_JIT_INTERFACE" ] } @@ -326,6 +344,9 @@ config("features") { if (v8_enable_pointer_compression) { defines += [ "V8_COMPRESS_POINTERS" ] } + if (v8_enable_31bit_smis_on_64bit_arch) { + defines += [ "V8_31BIT_SMIS_ON_64BIT_ARCH" ] + } if (v8_enable_object_print) { defines += [ "OBJECT_PRINT" ] } @@ -368,9 +389,6 @@ config("features") { } if (v8_use_snapshot) { defines += [ "V8_USE_SNAPSHOT" ] - if (v8_perf_prof_unwinding_info) { - defines += [ "V8_USE_SNAPSHOT_WITH_UNWINDING_INFO" ] - } } if (v8_use_external_startup_data) { defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ] @@ -382,10 +400,10 @@ config("features") { defines += [ "V8_CHECK_MICROTASKS_SCOPES_CONSISTENCY" ] } if (v8_enable_embedded_builtins) { - defines += [ - "V8_EMBEDDED_BUILTINS", - "V8_EMBEDDED_BYTECODE_HANDLERS", - ] + defines += [ "V8_EMBEDDED_BUILTINS" ] + } + if (v8_enable_jitless_mode) { + defines += [ "V8_JITLESS_MODE" ] } if (v8_use_multi_snapshots) { defines += [ "V8_MULTI_SNAPSHOTS" ] @@ -661,6 +679,39 @@ config("v8_gcov_coverage_ldflags") { # Actions # +# Only for Windows clang builds. Converts the embedded.S file produced by +# mksnapshot into an embedded.cc file with corresponding inline assembly. +template("asm_to_inline_asm") { + name = target_name + if (name == "default") { + suffix = "" + } else { + suffix = "_$name" + } + + action("asm_to_inline_asm_" + name) { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + assert(emit_builtins_as_inline_asm) + + script = "tools/snapshot/asm_to_inline_asm.py" + deps = [ + ":run_mksnapshot_" + name, + ] + sources = [ + "$target_gen_dir/embedded${suffix}.S", + ] + outputs = [ + "$target_gen_dir/embedded${suffix}.cc", + ] + args = invoker.args + args += [ + rebase_path("$target_gen_dir/embedded${suffix}.S", root_build_dir), + rebase_path("$target_gen_dir/embedded${suffix}.cc", root_build_dir), + ] + } +} + action("js2c") { visibility = [ ":*" ] # Only targets in this file can depend on this. @@ -675,7 +726,7 @@ action("js2c") { # NOSORT sources = [ "src/js/macros.py", - "src/messages.h", + "src/message-template.h", "src/js/prologue.js", "src/js/array.js", "src/js/typedarray.js", @@ -685,10 +736,6 @@ action("js2c") { "$target_gen_dir/libraries.cc", ] - if (v8_enable_i18n_support) { - sources += [ "src/js/intl.js" ] - } - args = [ rebase_path("$target_gen_dir/libraries.cc", root_build_dir), "CORE", @@ -862,12 +909,17 @@ action("postmortem-metadata") { "src/objects/data-handler-inl.h", "src/objects/fixed-array-inl.h", "src/objects/fixed-array.h", + "src/objects/heap-object-inl.h", + "src/objects/heap-object.h", + "src/objects/instance-type.h", "src/objects/js-array-inl.h", "src/objects/js-array.h", "src/objects/js-array-buffer-inl.h", "src/objects/js-array-buffer.h", "src/objects/js-objects-inl.h", "src/objects/js-objects.h", + "src/objects/js-promise-inl.h", + "src/objects/js-promise.h", "src/objects/js-regexp-inl.h", "src/objects/js-regexp.h", "src/objects/js-regexp-string-iterator-inl.h", @@ -898,19 +950,30 @@ torque_files = [ "src/builtins/array.tq", "src/builtins/array-copywithin.tq", "src/builtins/array-foreach.tq", + "src/builtins/array-join.tq", "src/builtins/array-lastindexof.tq", + "src/builtins/array-of.tq", "src/builtins/array-reverse.tq", + "src/builtins/array-slice.tq", "src/builtins/array-splice.tq", "src/builtins/array-unshift.tq", - "src/builtins/typed-array.tq", + "src/builtins/collections.tq", "src/builtins/data-view.tq", + "src/builtins/frames.tq", + "src/builtins/object.tq", + "src/builtins/object-fromentries.tq", + "src/builtins/iterator.tq", + "src/builtins/typed-array.tq", "test/torque/test-torque.tq", "third_party/v8/builtins/array-sort.tq", ] -torque_modules = [ +torque_namespaces = [ "base", "array", + "collections", + "iterator", + "object", "typed-array", "data-view", "test", @@ -934,10 +997,10 @@ action("run_torque") { outputs = [ "$target_gen_dir/torque-generated/builtin-definitions-from-dsl.h", ] - foreach(module, torque_modules) { + foreach(namespace, torque_namespaces) { outputs += [ - "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.cc", - "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.h", + "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.cc", + "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.h", ] } @@ -954,20 +1017,6 @@ action("run_torque") { } } -v8_header_set("torque_generated_core") { - visibility = [ ":*" ] # Only targets in this file can depend on this. - - deps = [ - ":run_torque", - ] - - sources = [ - "$target_gen_dir/torque-generated/builtin-definitions-from-dsl.h", - ] - - configs = [ ":internal_config" ] -} - v8_source_set("torque_generated_initializers") { visibility = [ ":*" ] # Only targets in this file can depend on this. @@ -983,10 +1032,10 @@ v8_source_set("torque_generated_initializers") { } sources = [] - foreach(module, torque_modules) { + foreach(namespace, torque_namespaces) { sources += [ - "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.cc", - "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.h", + "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.cc", + "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.h", ] } @@ -1007,14 +1056,15 @@ action("generate_bytecode_builtins_list") { ":bytecode_builtins_list_generator($v8_generator_toolchain)", "root_out_dir") + "/bytecode_builtins_list_generator", root_build_dir), - rebase_path("$target_gen_dir/builtins-generated/bytecodes-builtins-list.h"), + rebase_path("$target_gen_dir/builtins-generated/bytecodes-builtins-list.h", + root_build_dir), ] } # Template to generate different V8 snapshots based on different runtime flags. # Can be invoked with run_mksnapshot(). The target will resolve to # run_mksnapshot_. If is "default", no file suffixes will be used. -# Otherwise files are suffixed, e.g. embedded_.cc and +# Otherwise files are suffixed, e.g. embedded_.S and # snapshot_blob_.bin. # # The template exposes the variables: @@ -1053,10 +1103,10 @@ template("run_mksnapshot") { args += invoker.args if (v8_enable_embedded_builtins) { - outputs += [ "$target_gen_dir/embedded${suffix}.cc" ] + outputs += [ "$target_gen_dir/embedded${suffix}.S" ] args += [ "--embedded_src", - rebase_path("$target_gen_dir/embedded${suffix}.cc", root_build_dir), + rebase_path("$target_gen_dir/embedded${suffix}.S", root_build_dir), ] if (invoker.embedded_variant != "") { args += [ @@ -1080,10 +1130,6 @@ template("run_mksnapshot") { ] } - if (v8_perf_prof_unwinding_info) { - args += [ "--perf-prof-unwinding-info" ] - } - if (v8_use_external_startup_data) { outputs += [ "$root_out_dir/snapshot_blob${suffix}.bin" ] data += [ "$root_out_dir/snapshot_blob${suffix}.bin" ] @@ -1125,6 +1171,11 @@ if (v8_use_snapshot) { embedded_variant = "Default" } } + if (emit_builtins_as_inline_asm) { + asm_to_inline_asm("default") { + args = [] + } + } if (v8_use_multi_snapshots) { run_mksnapshot("trusted") { args = [ "--no-untrusted-code-mitigations" ] @@ -1132,6 +1183,11 @@ if (v8_use_snapshot) { embedded_variant = "Trusted" } } + if (emit_builtins_as_inline_asm) { + asm_to_inline_asm("trusted") { + args = [] + } + } } } @@ -1160,6 +1216,10 @@ action("v8_dump_build_config") { "v8_enable_verify_predictable=$v8_enable_verify_predictable", "v8_target_cpu=\"$v8_target_cpu\"", "v8_use_snapshot=$v8_use_snapshot", + "v8_enable_embedded_builtins=$v8_enable_embedded_builtins", + "v8_enable_jitless_mode=$v8_enable_jitless_mode", + "v8_enable_verify_csa=$v8_enable_verify_csa", + "v8_enable_lite_mode=$v8_enable_lite_mode", ] if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel" || @@ -1255,8 +1315,11 @@ if (v8_use_snapshot && !v8_use_external_startup_data) { "src/setup-isolate-deserialize.cc", ] - if (v8_enable_embedded_builtins) { + if (v8_enable_embedded_builtins && emit_builtins_as_inline_asm) { + deps += [ ":asm_to_inline_asm_default" ] sources += [ "$target_gen_dir/embedded.cc" ] + } else if (v8_enable_embedded_builtins) { + sources += [ "$target_gen_dir/embedded.S" ] } else { sources += [ "src/snapshot/embedded-empty.cc" ] } @@ -1302,16 +1365,28 @@ if (v8_use_snapshot && v8_use_external_startup_data) { # Do not publicize any header to remove build dependency. public = [] - if (v8_enable_embedded_builtins) { + if (v8_enable_embedded_builtins && emit_builtins_as_inline_asm) { + deps += [ ":asm_to_inline_asm_default" ] sources += [ "$target_gen_dir/embedded.cc" ] if (v8_use_multi_snapshots) { + deps += [ ":asm_to_inline_asm_trusted" ] sources += [ "$target_gen_dir/embedded_trusted.cc" ] + if (use_jumbo_build == true) { + jumbo_excluded_sources = [ "$target_gen_dir/embedded_trusted.cc" ] + } + } + } else if (v8_enable_embedded_builtins) { + sources += [ "$target_gen_dir/embedded.S" ] + + if (v8_use_multi_snapshots) { + sources += [ "$target_gen_dir/embedded_trusted.S" ] + if (use_jumbo_build == true) { jumbo_excluded_sources = [ - # Duplicated symbols with embedded.cc - "$target_gen_dir/embedded_trusted.cc", + # Duplicated symbols with embedded.S + "$target_gen_dir/embedded_trusted.S", ] } } @@ -1371,6 +1446,7 @@ v8_source_set("v8_initializers") { "src/builtins/builtins-lazy-gen.h", "src/builtins/builtins-math-gen.cc", "src/builtins/builtins-math-gen.h", + "src/builtins/builtins-microtask-queue-gen.cc", "src/builtins/builtins-number-gen.cc", "src/builtins/builtins-object-gen.cc", "src/builtins/builtins-promise-gen.cc", @@ -1391,6 +1467,8 @@ v8_source_set("v8_initializers") { "src/builtins/growable-fixed-array-gen.cc", "src/builtins/growable-fixed-array-gen.h", "src/builtins/setup-builtins-internal.cc", + "src/code-stub-assembler.cc", + "src/code-stub-assembler.h", "src/heap/setup-heap-internal.cc", "src/ic/accessor-assembler.cc", "src/ic/accessor-assembler.h", @@ -1412,9 +1490,10 @@ v8_source_set("v8_initializers") { "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. + # These source files take an unusually large amount of time to + # compile. Build them separately to avoid bottlenecks. "src/builtins/builtins-regexp-gen.cc", + "src/code-stub-assembler.cc", ] } @@ -1510,6 +1589,14 @@ v8_header_set("v8_headers") { "include/v8config.h", ] + if (is_linux || is_mac) { + sources += [ "include/v8-wasm-trap-handler-posix.h" ] + } + + if (is_win) { + sources += [ "include/v8-wasm-trap-handler-win.h" ] + } + deps = [ ":v8_version", ] @@ -1533,6 +1620,7 @@ v8_source_set("v8_base") { "include/v8-profiler.h", "include/v8-testing.h", "include/v8-util.h", + "include/v8-wasm-trap-handler-posix.h", "include/v8.h", "include/v8config.h", "src/accessors.cc", @@ -1563,8 +1651,6 @@ v8_source_set("v8_base") { "src/asmjs/asm-scanner.h", "src/asmjs/asm-types.cc", "src/asmjs/asm-types.h", - "src/asmjs/switch-logic.cc", - "src/asmjs/switch-logic.h", "src/assembler-arch-inl.h", "src/assembler-arch.h", "src/assembler-inl.h", @@ -1580,13 +1666,10 @@ v8_source_set("v8_base") { "src/ast/ast-value-factory.h", "src/ast/ast.cc", "src/ast/ast.h", - "src/ast/context-slot-cache.cc", - "src/ast/context-slot-cache.h", "src/ast/modules.cc", "src/ast/modules.h", "src/ast/prettyprinter.cc", "src/ast/prettyprinter.h", - "src/ast/scopes-inl.h", "src/ast/scopes.cc", "src/ast/scopes.h", "src/ast/variables.cc", @@ -1638,6 +1721,7 @@ v8_source_set("v8_base") { "src/builtins/builtins-typed-array.cc", "src/builtins/builtins-utils-inl.h", "src/builtins/builtins-utils.h", + "src/builtins/builtins-weak-refs.cc", "src/builtins/builtins.cc", "src/builtins/builtins.h", "src/builtins/constants-table-builder.cc", @@ -1656,11 +1740,6 @@ v8_source_set("v8_base") { "src/code-factory.h", "src/code-reference.cc", "src/code-reference.h", - "src/code-stub-assembler.cc", - "src/code-stub-assembler.h", - "src/code-stubs-utils.h", - "src/code-stubs.cc", - "src/code-stubs.h", "src/code-tracer.h", "src/codegen.cc", "src/codegen.h", @@ -1669,16 +1748,10 @@ v8_source_set("v8_base") { "src/compilation-cache.h", "src/compilation-statistics.cc", "src/compilation-statistics.h", - "src/compiler-dispatcher/compiler-dispatcher-job.cc", - "src/compiler-dispatcher/compiler-dispatcher-job.h", - "src/compiler-dispatcher/compiler-dispatcher-tracer.cc", - "src/compiler-dispatcher/compiler-dispatcher-tracer.h", "src/compiler-dispatcher/compiler-dispatcher.cc", "src/compiler-dispatcher/compiler-dispatcher.h", "src/compiler-dispatcher/optimizing-compile-dispatcher.cc", "src/compiler-dispatcher/optimizing-compile-dispatcher.h", - "src/compiler-dispatcher/unoptimized-compile-job.cc", - "src/compiler-dispatcher/unoptimized-compile-job.h", "src/compiler.cc", "src/compiler.h", "src/compiler/access-builder.cc", @@ -1687,7 +1760,34 @@ v8_source_set("v8_base") { "src/compiler/access-info.h", "src/compiler/all-nodes.cc", "src/compiler/all-nodes.h", + "src/compiler/allocation-builder-inl.h", "src/compiler/allocation-builder.h", + "src/compiler/backend/code-generator-impl.h", + "src/compiler/backend/code-generator.cc", + "src/compiler/backend/code-generator.h", + "src/compiler/backend/frame-elider.cc", + "src/compiler/backend/frame-elider.h", + "src/compiler/backend/gap-resolver.cc", + "src/compiler/backend/gap-resolver.h", + "src/compiler/backend/instruction-codes.h", + "src/compiler/backend/instruction-scheduler.cc", + "src/compiler/backend/instruction-scheduler.h", + "src/compiler/backend/instruction-selector-impl.h", + "src/compiler/backend/instruction-selector.cc", + "src/compiler/backend/instruction-selector.h", + "src/compiler/backend/instruction.cc", + "src/compiler/backend/instruction.h", + "src/compiler/backend/jump-threading.cc", + "src/compiler/backend/jump-threading.h", + "src/compiler/backend/live-range-separator.cc", + "src/compiler/backend/live-range-separator.h", + "src/compiler/backend/move-optimizer.cc", + "src/compiler/backend/move-optimizer.h", + "src/compiler/backend/register-allocator-verifier.cc", + "src/compiler/backend/register-allocator-verifier.h", + "src/compiler/backend/register-allocator.cc", + "src/compiler/backend/register-allocator.h", + "src/compiler/backend/unwinding-info-writer.h", "src/compiler/basic-block-instrumentor.cc", "src/compiler/basic-block-instrumentor.h", "src/compiler/branch-elimination.cc", @@ -1703,9 +1803,6 @@ v8_source_set("v8_base") { "src/compiler/checkpoint-elimination.h", "src/compiler/code-assembler.cc", "src/compiler/code-assembler.h", - "src/compiler/code-generator-impl.h", - "src/compiler/code-generator.cc", - "src/compiler/code-generator.h", "src/compiler/common-node-cache.cc", "src/compiler/common-node-cache.h", "src/compiler/common-operator-reducer.cc", @@ -1731,15 +1828,11 @@ v8_source_set("v8_base") { "src/compiler/escape-analysis-reducer.h", "src/compiler/escape-analysis.cc", "src/compiler/escape-analysis.h", - "src/compiler/frame-elider.cc", - "src/compiler/frame-elider.h", "src/compiler/frame-states.cc", "src/compiler/frame-states.h", "src/compiler/frame.cc", "src/compiler/frame.h", "src/compiler/functional-list.h", - "src/compiler/gap-resolver.cc", - "src/compiler/gap-resolver.h", "src/compiler/graph-assembler.cc", "src/compiler/graph-assembler.h", "src/compiler/graph-reducer.cc", @@ -1750,14 +1843,6 @@ v8_source_set("v8_base") { "src/compiler/graph-visualizer.h", "src/compiler/graph.cc", "src/compiler/graph.h", - "src/compiler/instruction-codes.h", - "src/compiler/instruction-scheduler.cc", - "src/compiler/instruction-scheduler.h", - "src/compiler/instruction-selector-impl.h", - "src/compiler/instruction-selector.cc", - "src/compiler/instruction-selector.h", - "src/compiler/instruction.cc", - "src/compiler/instruction.h", "src/compiler/int64-lowering.cc", "src/compiler/int64-lowering.h", "src/compiler/js-call-reducer.cc", @@ -1788,12 +1873,8 @@ v8_source_set("v8_base") { "src/compiler/js-type-hint-lowering.h", "src/compiler/js-typed-lowering.cc", "src/compiler/js-typed-lowering.h", - "src/compiler/jump-threading.cc", - "src/compiler/jump-threading.h", "src/compiler/linkage.cc", "src/compiler/linkage.h", - "src/compiler/live-range-separator.cc", - "src/compiler/live-range-separator.h", "src/compiler/load-elimination.cc", "src/compiler/load-elimination.h", "src/compiler/loop-analysis.cc", @@ -1812,8 +1893,6 @@ v8_source_set("v8_base") { "src/compiler/machine-operator.h", "src/compiler/memory-optimizer.cc", "src/compiler/memory-optimizer.h", - "src/compiler/move-optimizer.cc", - "src/compiler/move-optimizer.h", "src/compiler/node-aux-data.h", "src/compiler/node-cache.cc", "src/compiler/node-cache.h", @@ -1851,10 +1930,6 @@ v8_source_set("v8_base") { "src/compiler/redundancy-elimination.h", "src/compiler/refs-map.cc", "src/compiler/refs-map.h", - "src/compiler/register-allocator-verifier.cc", - "src/compiler/register-allocator-verifier.h", - "src/compiler/register-allocator.cc", - "src/compiler/register-allocator.h", "src/compiler/representation-change.cc", "src/compiler/representation-change.h", "src/compiler/schedule.cc", @@ -1885,7 +1960,6 @@ v8_source_set("v8_base") { "src/compiler/typer.h", "src/compiler/types.cc", "src/compiler/types.h", - "src/compiler/unwinding-info-writer.h", "src/compiler/value-numbering-reducer.cc", "src/compiler/value-numbering-reducer.h", "src/compiler/verifier.cc", @@ -1894,6 +1968,9 @@ v8_source_set("v8_base") { "src/compiler/wasm-compiler.h", "src/compiler/zone-stats.cc", "src/compiler/zone-stats.h", + "src/constant-pool.cc", + "src/constant-pool.h", + "src/constants-arch.h", "src/contexts-inl.h", "src/contexts.cc", "src/contexts.h", @@ -1915,6 +1992,8 @@ v8_source_set("v8_base") { "src/debug/debug-frames.cc", "src/debug/debug-frames.h", "src/debug/debug-interface.h", + "src/debug/debug-property-iterator.cc", + "src/debug/debug-property-iterator.h", "src/debug/debug-scope-iterator.cc", "src/debug/debug-scope-iterator.h", "src/debug/debug-scopes.cc", @@ -1932,6 +2011,7 @@ v8_source_set("v8_base") { "src/deoptimize-reason.h", "src/deoptimizer.cc", "src/deoptimizer.h", + "src/detachable-vector.cc", "src/detachable-vector.h", "src/disasm.h", "src/disassembler.cc", @@ -2053,6 +2133,7 @@ v8_source_set("v8_base") { "src/heap/scavenger-inl.h", "src/heap/scavenger.cc", "src/heap/scavenger.h", + "src/heap/slot-set.cc", "src/heap/slot-set.h", "src/heap/spaces-inl.h", "src/heap/spaces.cc", @@ -2083,8 +2164,6 @@ v8_source_set("v8_base") { "src/icu_util.h", "src/identity-map.cc", "src/identity-map.h", - "src/instruction-stream.cc", - "src/instruction-stream.h", "src/interface-descriptors.cc", "src/interface-descriptors.h", "src/interpreter/block-coverage-builder.h", @@ -2132,8 +2211,9 @@ v8_source_set("v8_base") { "src/interpreter/interpreter-intrinsics.h", "src/interpreter/interpreter.cc", "src/interpreter/interpreter.h", - "src/intl.cc", - "src/intl.h", + "src/isolate-allocator.cc", + "src/isolate-allocator.h", + "src/isolate-data.h", "src/isolate-inl.h", "src/isolate.cc", "src/isolate.h", @@ -2171,8 +2251,13 @@ v8_source_set("v8_base") { "src/math-random.h", "src/maybe-handles-inl.h", "src/maybe-handles.h", + "src/memcopy.cc", + "src/memcopy.h", + "src/message-template.h", "src/messages.cc", "src/messages.h", + "src/microtask-queue.cc", + "src/microtask-queue.h", "src/msan.h", "src/objects-body-descriptors-inl.h", "src/objects-body-descriptors.h", @@ -2195,15 +2280,25 @@ v8_source_set("v8_base") { "src/objects/debug-objects-inl.h", "src/objects/debug-objects.cc", "src/objects/debug-objects.h", + "src/objects/descriptor-array-inl.h", "src/objects/descriptor-array.h", + "src/objects/dictionary-inl.h", "src/objects/dictionary.h", + "src/objects/embedder-data-array-inl.h", + "src/objects/embedder-data-array.cc", + "src/objects/embedder-data-array.h", + "src/objects/embedder-data-slot-inl.h", + "src/objects/embedder-data-slot.h", "src/objects/fixed-array-inl.h", "src/objects/fixed-array.h", "src/objects/frame-array-inl.h", "src/objects/frame-array.h", "src/objects/hash-table-inl.h", "src/objects/hash-table.h", - "src/objects/intl-objects-inl.h", + "src/objects/heap-object-inl.h", + "src/objects/heap-object.h", + "src/objects/instance-type-inl.h", + "src/objects/instance-type.h", "src/objects/intl-objects.cc", "src/objects/intl-objects.h", "src/objects/js-array-buffer-inl.h", @@ -2249,9 +2344,14 @@ v8_source_set("v8_base") { "src/objects/js-relative-time-format-inl.h", "src/objects/js-relative-time-format.cc", "src/objects/js-relative-time-format.h", + "src/objects/js-segment-iterator-inl.h", + "src/objects/js-segment-iterator.cc", + "src/objects/js-segment-iterator.h", "src/objects/js-segmenter-inl.h", "src/objects/js-segmenter.cc", "src/objects/js-segmenter.h", + "src/objects/js-weak-refs-inl.h", + "src/objects/js-weak-refs.h", "src/objects/literal-objects-inl.h", "src/objects/literal-objects.cc", "src/objects/literal-objects.h", @@ -2262,9 +2362,6 @@ v8_source_set("v8_base") { "src/objects/maybe-object-inl.h", "src/objects/maybe-object.h", "src/objects/microtask-inl.h", - "src/objects/microtask-queue-inl.h", - "src/objects/microtask-queue.cc", - "src/objects/microtask-queue.h", "src/objects/microtask.h", "src/objects/module-inl.h", "src/objects/module.cc", @@ -2280,6 +2377,8 @@ v8_source_set("v8_base") { "src/objects/promise.h", "src/objects/property-array-inl.h", "src/objects/property-array.h", + "src/objects/property-cell-inl.h", + "src/objects/property-cell.h", "src/objects/property-descriptor-object-inl.h", "src/objects/property-descriptor-object.h", "src/objects/prototype-info-inl.h", @@ -2291,9 +2390,13 @@ v8_source_set("v8_base") { "src/objects/script.h", "src/objects/shared-function-info-inl.h", "src/objects/shared-function-info.h", + "src/objects/slots-atomic-inl.h", + "src/objects/slots-inl.h", + "src/objects/slots.h", "src/objects/stack-frame-info-inl.h", "src/objects/stack-frame-info.h", "src/objects/string-inl.h", + "src/objects/string-table-inl.h", "src/objects/string-table.h", "src/objects/string.h", "src/objects/template-objects.cc", @@ -2304,7 +2407,6 @@ v8_source_set("v8_base") { "src/optimized-compilation-info.h", "src/ostreams.cc", "src/ostreams.h", - "src/parsing/duplicate-finder.h", "src/parsing/expression-classifier.h", "src/parsing/expression-scope-reparenter.cc", "src/parsing/expression-scope-reparenter.h", @@ -2336,6 +2438,7 @@ v8_source_set("v8_base") { "src/pending-compilation-error-handler.h", "src/perf-jit.cc", "src/perf-jit.h", + "src/pointer-with-payload.h", "src/profiler/allocation-tracker.cc", "src/profiler/allocation-tracker.h", "src/profiler/circular-queue-inl.h", @@ -2369,6 +2472,7 @@ v8_source_set("v8_base") { "src/property.cc", "src/property.h", "src/prototype.h", + "src/ptr-compr.h", "src/regexp/bytecodes-irregexp.h", "src/regexp/interpreter-irregexp.cc", "src/regexp/interpreter-irregexp.h", @@ -2432,6 +2536,7 @@ v8_source_set("v8_base") { "src/runtime/runtime-typedarray.cc", "src/runtime/runtime-utils.h", "src/runtime/runtime-wasm.cc", + "src/runtime/runtime-weak-refs.cc", "src/runtime/runtime.cc", "src/runtime/runtime.h", "src/safepoint-table.cc", @@ -2441,23 +2546,14 @@ v8_source_set("v8_base") { "src/simulator-base.cc", "src/simulator-base.h", "src/simulator.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-allocator.cc", + "src/snapshot/deserializer-allocator.h", "src/snapshot/deserializer.cc", "src/snapshot/deserializer.h", - "src/snapshot/macros.h", + "src/snapshot/embedded-data.cc", + "src/snapshot/embedded-data.h", "src/snapshot/natives-common.cc", "src/snapshot/natives.h", "src/snapshot/object-deserializer.cc", @@ -2466,7 +2562,15 @@ v8_source_set("v8_base") { "src/snapshot/partial-deserializer.h", "src/snapshot/partial-serializer.cc", "src/snapshot/partial-serializer.h", + "src/snapshot/read-only-deserializer.cc", + "src/snapshot/read-only-deserializer.h", + "src/snapshot/read-only-serializer.cc", + "src/snapshot/read-only-serializer.h", "src/snapshot/references.h", + "src/snapshot/roots-serializer.cc", + "src/snapshot/roots-serializer.h", + "src/snapshot/serializer-allocator.cc", + "src/snapshot/serializer-allocator.h", "src/snapshot/serializer-common.cc", "src/snapshot/serializer-common.h", "src/snapshot/serializer.cc", @@ -2500,8 +2604,11 @@ v8_source_set("v8_base") { "src/string-stream.h", "src/strtod.cc", "src/strtod.h", + "src/task-utils.cc", + "src/task-utils.h", "src/third_party/utf8-decoder/utf8-decoder.h", - "src/torque-assembler.h", + "src/thread-id.cc", + "src/thread-id.h", "src/tracing/trace-event.cc", "src/tracing/trace-event.h", "src/tracing/traced-value.cc", @@ -2520,7 +2627,6 @@ v8_source_set("v8_base") { "src/turbo-assembler.h", "src/type-hints.cc", "src/type-hints.h", - "src/unicode-cache-inl.h", "src/unicode-cache.h", "src/unicode-decoder.cc", "src/unicode-decoder.h", @@ -2529,6 +2635,7 @@ v8_source_set("v8_base") { "src/unicode.h", "src/unoptimized-compilation-info.cc", "src/unoptimized-compilation-info.h", + "src/unwinder.cc", "src/uri.cc", "src/uri.h", "src/utils-inl.h", @@ -2556,12 +2663,15 @@ v8_source_set("v8_base") { "src/wasm/baseline/liftoff-compiler.cc", "src/wasm/baseline/liftoff-compiler.h", "src/wasm/baseline/liftoff-register.h", + "src/wasm/compilation-environment.h", "src/wasm/decoder.h", "src/wasm/function-body-decoder-impl.h", "src/wasm/function-body-decoder.cc", "src/wasm/function-body-decoder.h", "src/wasm/function-compiler.cc", "src/wasm/function-compiler.h", + "src/wasm/graph-builder-interface.cc", + "src/wasm/graph-builder-interface.h", "src/wasm/jump-table-assembler.cc", "src/wasm/jump-table-assembler.h", "src/wasm/leb-helper.h", @@ -2590,6 +2700,7 @@ v8_source_set("v8_base") { "src/wasm/wasm-feature-flags.h", "src/wasm/wasm-features.cc", "src/wasm/wasm-features.h", + "src/wasm/wasm-import-wrapper-cache-inl.h", "src/wasm/wasm-interpreter.cc", "src/wasm/wasm-interpreter.h", "src/wasm/wasm-js.cc", @@ -2643,7 +2754,6 @@ v8_source_set("v8_base") { # 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", @@ -2653,15 +2763,14 @@ v8_source_set("v8_base") { if (v8_current_cpu == "x86") { sources += [ ### gcmole(arch:ia32) ### - "src/compiler/ia32/code-generator-ia32.cc", - "src/compiler/ia32/instruction-codes-ia32.h", - "src/compiler/ia32/instruction-scheduler-ia32.cc", - "src/compiler/ia32/instruction-selector-ia32.cc", + "src/compiler/backend/ia32/code-generator-ia32.cc", + "src/compiler/backend/ia32/instruction-codes-ia32.h", + "src/compiler/backend/ia32/instruction-scheduler-ia32.cc", + "src/compiler/backend/ia32/instruction-selector-ia32.cc", "src/debug/ia32/debug-ia32.cc", "src/ia32/assembler-ia32-inl.h", "src/ia32/assembler-ia32.cc", "src/ia32/assembler-ia32.h", - "src/ia32/code-stubs-ia32.cc", "src/ia32/codegen-ia32.cc", "src/ia32/constants-ia32.h", "src/ia32/cpu-ia32.cc", @@ -2681,12 +2790,12 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "x64") { sources += [ ### gcmole(arch:x64) ### - "src/compiler/x64/code-generator-x64.cc", - "src/compiler/x64/instruction-codes-x64.h", - "src/compiler/x64/instruction-scheduler-x64.cc", - "src/compiler/x64/instruction-selector-x64.cc", - "src/compiler/x64/unwinding-info-writer-x64.cc", - "src/compiler/x64/unwinding-info-writer-x64.h", + "src/compiler/backend/x64/code-generator-x64.cc", + "src/compiler/backend/x64/instruction-codes-x64.h", + "src/compiler/backend/x64/instruction-scheduler-x64.cc", + "src/compiler/backend/x64/instruction-selector-x64.cc", + "src/compiler/backend/x64/unwinding-info-writer-x64.cc", + "src/compiler/backend/x64/unwinding-info-writer-x64.h", "src/debug/x64/debug-x64.cc", "src/regexp/x64/regexp-macro-assembler-x64.cc", "src/regexp/x64/regexp-macro-assembler-x64.h", @@ -2695,7 +2804,6 @@ v8_source_set("v8_base") { "src/x64/assembler-x64-inl.h", "src/x64/assembler-x64.cc", "src/x64/assembler-x64.h", - "src/x64/code-stubs-x64.cc", "src/x64/codegen-x64.cc", "src/x64/constants-x64.h", "src/x64/cpu-x64.cc", @@ -2711,22 +2819,25 @@ v8_source_set("v8_base") { "src/x64/simulator-x64.h", "src/x64/sse-instr.h", ] - if (is_linux) { + if (is_linux || is_mac) { sources += [ - "src/trap-handler/handler-inside-linux.cc", - "src/trap-handler/handler-outside-linux.cc", + "src/trap-handler/handler-inside-posix.cc", + "src/trap-handler/handler-inside-posix.h", + "src/trap-handler/handler-outside-posix.cc", ] } if (is_win) { - sources += [ "src/trap-handler/handler-outside-win.cc" ] + sources += [ + "src/trap-handler/handler-inside-win.cc", + "src/trap-handler/handler-inside-win.h", + "src/trap-handler/handler-outside-win.cc", + ] } } else if (v8_current_cpu == "arm") { sources += [ ### gcmole(arch:arm) ### "src/arm/assembler-arm-inl.h", "src/arm/assembler-arm.cc", "src/arm/assembler-arm.h", - "src/arm/code-stubs-arm.cc", - "src/arm/code-stubs-arm.h", "src/arm/codegen-arm.cc", "src/arm/constants-arm.cc", "src/arm/constants-arm.h", @@ -2741,12 +2852,12 @@ v8_source_set("v8_base") { "src/arm/macro-assembler-arm.h", "src/arm/simulator-arm.cc", "src/arm/simulator-arm.h", - "src/compiler/arm/code-generator-arm.cc", - "src/compiler/arm/instruction-codes-arm.h", - "src/compiler/arm/instruction-scheduler-arm.cc", - "src/compiler/arm/instruction-selector-arm.cc", - "src/compiler/arm/unwinding-info-writer-arm.cc", - "src/compiler/arm/unwinding-info-writer-arm.h", + "src/compiler/backend/arm/code-generator-arm.cc", + "src/compiler/backend/arm/instruction-codes-arm.h", + "src/compiler/backend/arm/instruction-scheduler-arm.cc", + "src/compiler/backend/arm/instruction-selector-arm.cc", + "src/compiler/backend/arm/unwinding-info-writer-arm.cc", + "src/compiler/backend/arm/unwinding-info-writer-arm.h", "src/debug/arm/debug-arm.cc", "src/regexp/arm/regexp-macro-assembler-arm.cc", "src/regexp/arm/regexp-macro-assembler-arm.h", @@ -2757,8 +2868,6 @@ v8_source_set("v8_base") { "src/arm64/assembler-arm64-inl.h", "src/arm64/assembler-arm64.cc", "src/arm64/assembler-arm64.h", - "src/arm64/code-stubs-arm64.cc", - "src/arm64/code-stubs-arm64.h", "src/arm64/codegen-arm64.cc", "src/arm64/constants-arm64.h", "src/arm64/cpu-arm64.cc", @@ -2785,12 +2894,12 @@ v8_source_set("v8_base") { "src/arm64/simulator-logic-arm64.cc", "src/arm64/utils-arm64.cc", "src/arm64/utils-arm64.h", - "src/compiler/arm64/code-generator-arm64.cc", - "src/compiler/arm64/instruction-codes-arm64.h", - "src/compiler/arm64/instruction-scheduler-arm64.cc", - "src/compiler/arm64/instruction-selector-arm64.cc", - "src/compiler/arm64/unwinding-info-writer-arm64.cc", - "src/compiler/arm64/unwinding-info-writer-arm64.h", + "src/compiler/backend/arm64/code-generator-arm64.cc", + "src/compiler/backend/arm64/instruction-codes-arm64.h", + "src/compiler/backend/arm64/instruction-scheduler-arm64.cc", + "src/compiler/backend/arm64/instruction-selector-arm64.cc", + "src/compiler/backend/arm64/unwinding-info-writer-arm64.cc", + "src/compiler/backend/arm64/unwinding-info-writer-arm64.h", "src/debug/arm64/debug-arm64.cc", "src/regexp/arm64/regexp-macro-assembler-arm64.cc", "src/regexp/arm64/regexp-macro-assembler-arm64.h", @@ -2805,16 +2914,14 @@ v8_source_set("v8_base") { } } else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") { sources += [ ### gcmole(arch:mipsel) ### - "src/compiler/mips/code-generator-mips.cc", - "src/compiler/mips/instruction-codes-mips.h", - "src/compiler/mips/instruction-scheduler-mips.cc", - "src/compiler/mips/instruction-selector-mips.cc", + "src/compiler/backend/mips/code-generator-mips.cc", + "src/compiler/backend/mips/instruction-codes-mips.h", + "src/compiler/backend/mips/instruction-scheduler-mips.cc", + "src/compiler/backend/mips/instruction-selector-mips.cc", "src/debug/mips/debug-mips.cc", "src/mips/assembler-mips-inl.h", "src/mips/assembler-mips.cc", "src/mips/assembler-mips.h", - "src/mips/code-stubs-mips.cc", - "src/mips/code-stubs-mips.h", "src/mips/codegen-mips.cc", "src/mips/constants-mips.cc", "src/mips/constants-mips.h", @@ -2834,16 +2941,14 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") { sources += [ ### gcmole(arch:mips64el) ### - "src/compiler/mips64/code-generator-mips64.cc", - "src/compiler/mips64/instruction-codes-mips64.h", - "src/compiler/mips64/instruction-scheduler-mips64.cc", - "src/compiler/mips64/instruction-selector-mips64.cc", + "src/compiler/backend/mips64/code-generator-mips64.cc", + "src/compiler/backend/mips64/instruction-codes-mips64.h", + "src/compiler/backend/mips64/instruction-scheduler-mips64.cc", + "src/compiler/backend/mips64/instruction-selector-mips64.cc", "src/debug/mips64/debug-mips64.cc", "src/mips64/assembler-mips64-inl.h", "src/mips64/assembler-mips64.cc", "src/mips64/assembler-mips64.h", - "src/mips64/code-stubs-mips64.cc", - "src/mips64/code-stubs-mips64.h", "src/mips64/codegen-mips64.cc", "src/mips64/constants-mips64.cc", "src/mips64/constants-mips64.h", @@ -2863,16 +2968,15 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") { sources += [ ### gcmole(arch:ppc) ### - "src/compiler/ppc/code-generator-ppc.cc", - "src/compiler/ppc/instruction-codes-ppc.h", - "src/compiler/ppc/instruction-scheduler-ppc.cc", - "src/compiler/ppc/instruction-selector-ppc.cc", + "src/compiler/backend/ppc/code-generator-ppc.cc", + "src/compiler/backend/ppc/instruction-codes-ppc.h", + "src/compiler/backend/ppc/instruction-scheduler-ppc.cc", + "src/compiler/backend/ppc/instruction-selector-ppc.cc", "src/debug/ppc/debug-ppc.cc", "src/ppc/assembler-ppc-inl.h", "src/ppc/assembler-ppc.cc", "src/ppc/assembler-ppc.h", "src/ppc/code-stubs-ppc.cc", - "src/ppc/code-stubs-ppc.h", "src/ppc/codegen-ppc.cc", "src/ppc/constants-ppc.cc", "src/ppc/constants-ppc.h", @@ -2892,10 +2996,10 @@ v8_source_set("v8_base") { ] } else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") { sources += [ ### gcmole(arch:s390) ### - "src/compiler/s390/code-generator-s390.cc", - "src/compiler/s390/instruction-codes-s390.h", - "src/compiler/s390/instruction-scheduler-s390.cc", - "src/compiler/s390/instruction-selector-s390.cc", + "src/compiler/backend/s390/code-generator-s390.cc", + "src/compiler/backend/s390/instruction-codes-s390.h", + "src/compiler/backend/s390/instruction-scheduler-s390.cc", + "src/compiler/backend/s390/instruction-selector-s390.cc", "src/debug/s390/debug-s390.cc", "src/regexp/s390/regexp-macro-assembler-s390.cc", "src/regexp/s390/regexp-macro-assembler-s390.h", @@ -2903,7 +3007,6 @@ v8_source_set("v8_base") { "src/s390/assembler-s390.cc", "src/s390/assembler-s390.h", "src/s390/code-stubs-s390.cc", - "src/s390/code-stubs-s390.h", "src/s390/codegen-s390.cc", "src/s390/constants-s390.cc", "src/s390/constants-s390.h", @@ -2926,7 +3029,7 @@ v8_source_set("v8_base") { defines = [] deps = [ ":generate_bytecode_builtins_list", - ":torque_generated_core", + ":run_torque", ":v8_headers", ":v8_libbase", ":v8_libsampler", @@ -2944,9 +3047,6 @@ v8_source_set("v8_base") { sources -= [ "src/builtins/builtins-intl.cc", "src/char-predicates.cc", - "src/intl.cc", - "src/intl.h", - "src/objects/intl-objects-inl.h", "src/objects/intl-objects.cc", "src/objects/intl-objects.h", "src/objects/js-break-iterator-inl.h", @@ -2973,6 +3073,9 @@ v8_source_set("v8_base") { "src/objects/js-relative-time-format-inl.h", "src/objects/js-relative-time-format.cc", "src/objects/js-relative-time-format.h", + "src/objects/js-segment-iterator-inl.h", + "src/objects/js-segment-iterator.cc", + "src/objects/js-segment-iterator.h", "src/objects/js-segmenter-inl.h", "src/objects/js-segmenter.cc", "src/objects/js-segmenter.h", @@ -3020,8 +3123,6 @@ v8_source_set("torque_base") { "src/torque/implementation-visitor.h", "src/torque/instructions.cc", "src/torque/instructions.h", - "src/torque/scope.cc", - "src/torque/scope.h", "src/torque/source-positions.cc", "src/torque/source-positions.h", "src/torque/torque-parser.cc", @@ -3219,6 +3320,14 @@ v8_component("v8_libbase") { data_deps += [ "//build/win:runtime_libs" ] } + if (v8_current_cpu == "mips" || v8_current_cpu == "mips64") { + # Add runtime libs for mips. + data += [ + "tools/mips_toolchain/sysroot/usr/lib/", + "tools/mips_toolchain/mips-mti-linux-gnu/lib", + ] + } + if (is_tsan && !build_with_chromium) { data += [ "tools/sanitizers/tsan_suppressions.txt" ] } @@ -3358,6 +3467,8 @@ if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) { visibility = [ ":*" ] # Only targets in this file can depend on this. sources = [ + "src/snapshot/embedded-file-writer.cc", + "src/snapshot/embedded-file-writer.h", "src/snapshot/mksnapshot.cc", ] @@ -3448,8 +3559,12 @@ group("v8_archive") { deps = [ ":d8", - "test/cctest:cctest", ] + + if (!is_win) { + # On windows, cctest doesn't link with v8_static_library. + deps += [ "test/cctest:cctest" ] + } } # TODO(dglazkov): Remove the "!build_with_chromium" condition once this clause @@ -3563,6 +3678,8 @@ v8_executable("d8") { "src/async-hooks-wrapper.h", "src/d8-console.cc", "src/d8-console.h", + "src/d8-platforms.cc", + "src/d8-platforms.h", "src/d8.cc", "src/d8.h", ] @@ -3777,7 +3894,7 @@ v8_source_set("wasm_module_runner") { deps = [ ":generate_bytecode_builtins_list", - ":torque_generated_core", + ":run_torque", ] if (v8_enable_i18n_support) { @@ -3861,7 +3978,7 @@ v8_source_set("lib_wasm_fuzzer_common") { deps = [ ":generate_bytecode_builtins_list", - ":torque_generated_core", + ":run_torque", ] if (v8_enable_i18n_support) { @@ -4036,3 +4153,19 @@ v8_source_set("wasm_compile_fuzzer") { v8_fuzzer("wasm_compile_fuzzer") { } + +# Target to build all generated .cc files. +group("v8_generated_cc_files") { + testonly = true + + deps = [ + ":d8_js2c", + ":generate_bytecode_builtins_list", + ":js2c", + ":js2c_experimental_extras", + ":js2c_extras", + ":run_torque", + "src/inspector:v8_generated_cc_files", + "test/cctest:v8_generated_cc_files", + ] +} diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index a3377ab473c..57a5d527a09 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,3038 @@ +2018-12-10: Version 7.3.83 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.82 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.81 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.80 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.79 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.78 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.77 + + Performance and stability improvements on all platforms. + + +2018-12-10: Version 7.3.76 + + Performance and stability improvements on all platforms. + + +2018-12-08: Version 7.3.75 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.74 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.73 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.72 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.71 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.70 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.69 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.68 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.67 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.66 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.65 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.64 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.63 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.62 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.61 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.60 + + Performance and stability improvements on all platforms. + + +2018-12-07: Version 7.3.59 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.58 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.57 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.56 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.55 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.54 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.53 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.52 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.51 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.50 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.49 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.48 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.47 + + Performance and stability improvements on all platforms. + + +2018-12-06: Version 7.3.46 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.45 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.44 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.43 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.42 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.41 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.40 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.39 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.38 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.37 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.36 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.35 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.34 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.33 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.32 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.31 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.30 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.29 + + Performance and stability improvements on all platforms. + + +2018-12-05: Version 7.3.28 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.27 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.26 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.25 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.24 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.23 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.22 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.21 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.20 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.19 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.18 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.17 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.16 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.15 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.14 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.13 + + Performance and stability improvements on all platforms. + + +2018-12-04: Version 7.3.12 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.11 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.10 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.9 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.8 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.7 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.6 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.5 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.4 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.3 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.2 + + Performance and stability improvements on all platforms. + + +2018-12-03: Version 7.3.1 + + Performance and stability improvements on all platforms. + + +2018-11-29: Version 7.2.505 + + Performance and stability improvements on all platforms. + + +2018-11-29: Version 7.2.504 + + Performance and stability improvements on all platforms. + + +2018-11-29: Version 7.2.503 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.502 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.501 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.500 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.499 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.498 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.497 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.496 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.495 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.494 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.493 + + Performance and stability improvements on all platforms. + + +2018-11-28: Version 7.2.492 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.491 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.490 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.489 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.488 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.487 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.486 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.485 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.484 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.483 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.482 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.481 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.480 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.479 + + Performance and stability improvements on all platforms. + + +2018-11-27: Version 7.2.478 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.477 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.476 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.475 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.474 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.473 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.472 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.471 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.470 + + Performance and stability improvements on all platforms. + + +2018-11-26: Version 7.2.469 + + Performance and stability improvements on all platforms. + + +2018-11-24: Version 7.2.468 + + Performance and stability improvements on all platforms. + + +2018-11-24: Version 7.2.467 + + Performance and stability improvements on all platforms. + + +2018-11-24: Version 7.2.466 + + Performance and stability improvements on all platforms. + + +2018-11-24: Version 7.2.465 + + Performance and stability improvements on all platforms. + + +2018-11-24: Version 7.2.464 + + Performance and stability improvements on all platforms. + + +2018-11-24: Version 7.2.463 + + Performance and stability improvements on all platforms. + + +2018-11-23: Version 7.2.462 + + Performance and stability improvements on all platforms. + + +2018-11-23: Version 7.2.461 + + Performance and stability improvements on all platforms. + + +2018-11-23: Version 7.2.460 + + Performance and stability improvements on all platforms. + + +2018-11-23: Version 7.2.459 + + Performance and stability improvements on all platforms. + + +2018-11-23: Version 7.2.458 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.457 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.456 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.455 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.454 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.453 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.452 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.451 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.450 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.449 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.448 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.447 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.446 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.445 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.444 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.443 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.442 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.441 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.440 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.439 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.438 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.437 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.436 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.435 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.434 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.433 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.432 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.431 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.430 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.429 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.428 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.427 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.426 + + Performance and stability improvements on all platforms. + + +2018-11-22: Version 7.2.425 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.424 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.423 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.422 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.421 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.420 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.419 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.418 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.417 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.416 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.415 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.414 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.413 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.412 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.411 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.410 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.409 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.408 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.407 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.406 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.405 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.404 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.403 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.402 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.401 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.400 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.399 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.398 + + Performance and stability improvements on all platforms. + + +2018-11-21: Version 7.2.397 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.396 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.395 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.394 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.393 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.392 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.391 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.390 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.389 + + Performance and stability improvements on all platforms. + + +2018-11-20: Version 7.2.388 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.387 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.386 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.385 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.384 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.383 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.382 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.381 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.380 + + Performance and stability improvements on all platforms. + + +2018-11-19: Version 7.2.379 + + Performance and stability improvements on all platforms. + + +2018-11-18: Version 7.2.378 + + Performance and stability improvements on all platforms. + + +2018-11-18: Version 7.2.377 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.376 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.375 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.374 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.373 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.372 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.371 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.370 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.369 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.368 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.367 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.366 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.365 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.364 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.363 + + Performance and stability improvements on all platforms. + + +2018-11-16: Version 7.2.362 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.361 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.360 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.359 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.358 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.357 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.356 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.355 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.354 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.353 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.352 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.351 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.350 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.349 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.348 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.347 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.346 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.345 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.344 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.343 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.342 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.341 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.340 + + Performance and stability improvements on all platforms. + + +2018-11-15: Version 7.2.339 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.338 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.337 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.336 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.335 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.334 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.333 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.332 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.331 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.330 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.329 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.328 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.327 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.326 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.325 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.324 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.323 + + Performance and stability improvements on all platforms. + + +2018-11-14: Version 7.2.322 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.321 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.320 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.319 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.318 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.317 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.316 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.315 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.314 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.313 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.312 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.311 + + Performance and stability improvements on all platforms. + + +2018-11-13: Version 7.2.310 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.309 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.308 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.307 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.306 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.305 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.304 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.303 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.302 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.301 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.300 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.299 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.298 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.297 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.296 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.295 + + Performance and stability improvements on all platforms. + + +2018-11-12: Version 7.2.294 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.293 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.292 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.291 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.290 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.289 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.288 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.287 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.286 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.285 + + Performance and stability improvements on all platforms. + + +2018-11-09: Version 7.2.284 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.283 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.282 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.281 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.280 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.279 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.278 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.277 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.276 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.275 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.274 + + Performance and stability improvements on all platforms. + + +2018-11-08: Version 7.2.273 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.272 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.271 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.270 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.269 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.268 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.267 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.266 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.265 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.264 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.263 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.262 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.261 + + Performance and stability improvements on all platforms. + + +2018-11-07: Version 7.2.260 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.259 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.258 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.257 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.256 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.255 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.254 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.253 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.252 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.251 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.250 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.249 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.248 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.247 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.246 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.245 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.244 + + Performance and stability improvements on all platforms. + + +2018-11-06: Version 7.2.243 + + Performance and stability improvements on all platforms. + + +2018-11-05: Version 7.2.242 + + Performance and stability improvements on all platforms. + + +2018-11-05: Version 7.2.241 + + Performance and stability improvements on all platforms. + + +2018-11-05: Version 7.2.240 + + Performance and stability improvements on all platforms. + + +2018-11-05: Version 7.2.239 + + Performance and stability improvements on all platforms. + + +2018-11-04: Version 7.2.238 + + Performance and stability improvements on all platforms. + + +2018-11-04: Version 7.2.237 + + Performance and stability improvements on all platforms. + + +2018-11-03: Version 7.2.236 + + Performance and stability improvements on all platforms. + + +2018-11-03: Version 7.2.235 + + Performance and stability improvements on all platforms. + + +2018-11-03: Version 7.2.234 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.233 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.232 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.231 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.230 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.229 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.228 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.227 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.226 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.225 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.224 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.223 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.222 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.221 + + Performance and stability improvements on all platforms. + + +2018-11-02: Version 7.2.220 + + Performance and stability improvements on all platforms. + + +2018-11-01: Version 7.2.219 + + Performance and stability improvements on all platforms. + + +2018-11-01: Version 7.2.218 + + Performance and stability improvements on all platforms. + + +2018-11-01: Version 7.2.217 + + Performance and stability improvements on all platforms. + + +2018-11-01: Version 7.2.216 + + Performance and stability improvements on all platforms. + + +2018-11-01: Version 7.2.215 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.214 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.213 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.212 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.211 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.210 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.209 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.208 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.207 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.206 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.205 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.204 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.203 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.202 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.201 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.200 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.199 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.198 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.197 + + Performance and stability improvements on all platforms. + + +2018-10-31: Version 7.2.196 + + Performance and stability improvements on all platforms. + + +2018-10-30: Version 7.2.195 + + Performance and stability improvements on all platforms. + + +2018-10-30: Version 7.2.194 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.193 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.192 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.191 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.190 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.189 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.188 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.187 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.186 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.185 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.184 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.183 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.182 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.181 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.180 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.179 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.178 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.177 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.176 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.175 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.174 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.173 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.172 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.171 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.170 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.169 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.168 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.167 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.166 + + Performance and stability improvements on all platforms. + + +2018-10-29: Version 7.2.165 + + Performance and stability improvements on all platforms. + + +2018-10-28: Version 7.2.164 + + Performance and stability improvements on all platforms. + + +2018-10-27: Version 7.2.163 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.162 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.161 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.160 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.159 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.158 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.157 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.156 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.155 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.154 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.153 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.152 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.151 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.150 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.149 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.148 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.147 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.146 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.145 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.144 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.143 + + Performance and stability improvements on all platforms. + + +2018-10-26: Version 7.2.142 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.141 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.140 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.139 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.138 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.137 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.136 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.135 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.134 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.133 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.132 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.131 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.130 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.129 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.128 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.127 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.126 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.125 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.124 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.123 + + Performance and stability improvements on all platforms. + + +2018-10-25: Version 7.2.122 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.121 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.120 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.119 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.118 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.117 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.116 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.115 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.114 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.113 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.112 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.111 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.110 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.109 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.108 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.107 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.106 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.105 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.104 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.103 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.102 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.101 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.100 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.99 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.98 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.97 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.96 + + Performance and stability improvements on all platforms. + + +2018-10-24: Version 7.2.95 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.94 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.93 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.92 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.91 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.90 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.89 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.88 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.87 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.86 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.85 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.84 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.83 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.82 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.81 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.80 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.79 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.78 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.77 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.76 + + Performance and stability improvements on all platforms. + + +2018-10-23: Version 7.2.75 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.74 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.73 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.72 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.71 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.70 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.69 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.68 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.67 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.66 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.65 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.64 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.63 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.62 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.61 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.60 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.59 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.58 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.57 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.56 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.55 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.54 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.53 + + Performance and stability improvements on all platforms. + + +2018-10-22: Version 7.2.52 + + Performance and stability improvements on all platforms. + + +2018-10-20: Version 7.2.51 + + Performance and stability improvements on all platforms. + + +2018-10-20: Version 7.2.50 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.49 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.48 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.47 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.46 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.45 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.44 + + Performance and stability improvements on all platforms. + + +2018-10-19: Version 7.2.43 + + Performance and stability improvements on all platforms. + + +2018-10-18: Version 7.2.42 + + Performance and stability improvements on all platforms. + + +2018-10-18: Version 7.2.41 + + Performance and stability improvements on all platforms. + + +2018-10-18: Version 7.2.40 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.39 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.38 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.37 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.36 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.35 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.34 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.33 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.32 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.31 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.30 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.29 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.28 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.27 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.26 + + Performance and stability improvements on all platforms. + + +2018-10-17: Version 7.2.25 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.24 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.23 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.22 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.21 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.20 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.19 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.18 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.17 + + Performance and stability improvements on all platforms. + + +2018-10-16: Version 7.2.16 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.15 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.14 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.13 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.12 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.11 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.10 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.9 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.8 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.7 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.6 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.5 + + Performance and stability improvements on all platforms. + + +2018-10-15: Version 7.2.4 + + Performance and stability improvements on all platforms. + + +2018-10-14: Version 7.2.3 + + Performance and stability improvements on all platforms. + + +2018-10-13: Version 7.2.2 + + Performance and stability improvements on all platforms. + + +2018-10-13: Version 7.2.1 + + Performance and stability improvements on all platforms. + + +2018-10-11: Version 7.1.321 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.320 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.319 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.318 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.317 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.316 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.315 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.314 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.313 + + Performance and stability improvements on all platforms. + + +2018-10-10: Version 7.1.312 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.311 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.310 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.309 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.308 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.307 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.306 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.305 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.304 + + Performance and stability improvements on all platforms. + + +2018-10-09: Version 7.1.303 + + Performance and stability improvements on all platforms. + + 2018-10-09: Version 7.1.302 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index fdd96f9b820..d690aa35fa2 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -9,19 +9,22 @@ vars = { 'download_jsfunfuzz': False, 'download_mips_toolchain': False, 'check_v8_header_includes': False, + + # luci-go CIPD package version. + 'luci_go': 'git_revision:fdf05508e8a66c773a41521e0243c9d11b9a2a1c', } deps = { 'v8/build': - Var('chromium_url') + '/chromium/src/build.git' + '@' + 'a7674eacc34947257c78fe6ba5cf0da17f60696c', + Var('chromium_url') + '/chromium/src/build.git' + '@' + '510ff4cfe905f5e51a4257cb79b723eec8a9a8d5', 'v8/third_party/depot_tools': - Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '71e3be7a50c21faeee91ed99a8d5addfb7594e7c', + Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + 'fed2cb39c320aa37367e009a37813da869f4d529', 'v8/third_party/icu': - Var('chromium_url') + '/chromium/deps/icu.git' + '@' + 'c52a2a250d6c5f5cbdd015dff36af7c5d0ae1150', + Var('chromium_url') + '/chromium/deps/icu.git' + '@' + '407b39301e71006b68bd38e770f35d32398a7b14', 'v8/third_party/instrumented_libraries': - Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + 'a90cbf3b4216430a437991fb53ede8e048dea454', + Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + 'a959e4f0cb643003f2d75d179cede449979e3e77', 'v8/buildtools': - Var('chromium_url') + '/chromium/buildtools.git' + '@' + '2dff9c9c74e9d732e6fe57c84ef7fd044cc45d96', + Var('chromium_url') + '/chromium/buildtools.git' + '@' + '7d88270de197ebe8b439ab5eb57a4a2a0bb810e0', 'v8/base/trace_event/common': Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + '211b3ed9d0481b4caddbee1322321b86a483ca1f', 'v8/third_party/android_ndk': { @@ -29,11 +32,11 @@ deps = { 'condition': 'checkout_android', }, 'v8/third_party/android_tools': { - 'url': Var('chromium_url') + '/android_tools.git' + '@' + '130499e25286f4d56acafa252fee09f3cc595c49', + 'url': Var('chromium_url') + '/android_tools.git' + '@' + '6fecaa542f73dd5aeed170d9a4cf340159b42976', 'condition': 'checkout_android', }, 'v8/third_party/catapult': { - 'url': Var('chromium_url') + '/catapult.git' + '@' + '9ec8468cfde0868ce5f3893e819087278c5af988', + 'url': Var('chromium_url') + '/catapult.git' + '@' + '74c92bb2207675ea7702153dd1cf60fddefe8495', 'condition': 'checkout_android', }, 'v8/third_party/colorama/src': { @@ -41,23 +44,23 @@ deps = { 'condition': 'checkout_android', }, 'v8/third_party/fuchsia-sdk': { - 'url': Var('chromium_url') + '/chromium/src/third_party/fuchsia-sdk.git' + '@' + '6e1868c9083769d489d3fc25657339d50c22b1d8', + 'url': Var('chromium_url') + '/chromium/src/third_party/fuchsia-sdk.git' + '@' + 'ac40df877fbffc53aa4513b9c5becab4b686fa70', 'condition': 'checkout_fuchsia', }, 'v8/third_party/googletest/src': - Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '2e68926a9d4929e9289373cd49e40ddcb9a628f7', + Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '879ac092fde0a19e1b3a61b2546b2a422b1528bc', 'v8/third_party/jinja2': Var('chromium_url') + '/chromium/src/third_party/jinja2.git' + '@' + 'b41863e42637544c2941b574c7877d3e1f663e25', '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' + '@' + '486c9b53c4d54dd4b95bb6ce0e31160e600dfc11', + Var('chromium_url') + '/infra/luci/client-py.git' + '@' + '0e3e1c4dc4e79f25a5b58fcbc135dc93183c0c54', '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' + '@' + '00cfe1628cc03164dcf03f01ba9c84376e9be735', + Var('chromium_url') + '/external/github.com/tc39/test262.git' + '@' + 'b2597d060d034ade9325b6a5aa0febf37a37d240', 'v8/test/test262/harness': Var('chromium_url') + '/external/github.com/test262-utils/test262-harness-py.git' + '@' + '0f2acdd882c84cff43b9d60df7574a1901e2cdcd', 'v8/third_party/qemu-linux-x64': { @@ -81,11 +84,27 @@ deps = { 'dep_type': 'cipd', }, 'v8/tools/clang': - Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + '7792d28b069af6dd3a86d1ba83b7f5c4ede605dc', - 'v8/tools/luci-go': - Var('chromium_url') + '/chromium/src/tools/luci-go.git' + '@' + '445d7c4b6a4f10e188edb395b132e3996b127691', - 'v8/test/wasm-js': - Var('chromium_url') + '/external/github.com/WebAssembly/spec.git' + '@' + 'db9cd40808a90ecc5f4a23e88fb375c8f60b8d52', + Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + '1bc365f702163bc91c6e2cc1711b0d1469b47e40', + 'v8/tools/luci-go': { + 'packages': [ + { + 'package': 'infra/tools/luci/isolate/${{platform}}', + 'version': Var('luci_go'), + }, + { + 'package': 'infra/tools/luci/isolated/${{platform}}', + 'version': Var('luci_go'), + }, + { + 'package': 'infra/tools/luci/swarming/${{platform}}', + 'version': Var('luci_go'), + }, + ], + 'condition': 'host_cpu != "s390"', + 'dep_type': 'cipd', + }, + 'v8/test/wasm-js/data': + Var('chromium_url') + '/external/github.com/WebAssembly/spec.git' + '@' + '4408f60968e540a3eaf7ab01c2d85ec2de890fed', } recursedeps = [ @@ -190,43 +209,6 @@ hooks = [ '--platform=linux*', ], }, - # Pull luci-go binaries (isolate, swarming) using checked-in hashes. - { - 'name': 'luci-go_win', - 'pattern': '.', - 'condition': 'host_os == "win"', - 'action': [ 'download_from_google_storage', - '--no_resume', - '--platform=win32', - '--no_auth', - '--bucket', 'chromium-luci', - '-d', 'v8/tools/luci-go/win64', - ], - }, - { - 'name': 'luci-go_mac', - 'pattern': '.', - 'condition': 'host_os == "mac"', - 'action': [ 'download_from_google_storage', - '--no_resume', - '--platform=darwin', - '--no_auth', - '--bucket', 'chromium-luci', - '-d', 'v8/tools/luci-go/mac64', - ], - }, - { - 'name': 'luci-go_linux', - 'pattern': '.', - 'condition': 'host_os == "linux"', - 'action': [ 'download_from_google_storage', - '--no_resume', - '--platform=linux*', - '--no_auth', - '--bucket', 'chromium-luci', - '-d', 'v8/tools/luci-go/linux64', - ], - }, # Pull GN using checked-in hashes. { 'name': 'gn_win', @@ -275,17 +257,6 @@ hooks = [ '-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': 'sysroot_arm', 'pattern': '.', diff --git a/deps/v8/OWNERS b/deps/v8/OWNERS index d32f7213822..e41066126a2 100644 --- a/deps/v8/OWNERS +++ b/deps/v8/OWNERS @@ -4,12 +4,10 @@ aseemgarg@chromium.org bbudge@chromium.org binji@chromium.org bmeurer@chromium.org -bradnelson@chromium.org cbruni@chromium.org clemensh@chromium.org danno@chromium.org delphick@chromium.org -eholk@chromium.org gdeepti@chromium.org gsathya@chromium.org hablich@chromium.org @@ -19,7 +17,6 @@ ishell@chromium.org jarin@chromium.org jgruber@chromium.org jkummerow@chromium.org -kschimpf@chromium.org leszeks@chromium.org machenbach@chromium.org mathias@chromium.org diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index 88a64e727b2..eb027c11c26 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -458,19 +458,3 @@ def CheckChangeOnCommit(input_api, output_api): input_api, output_api, json_url='http://v8-status.appspot.com/current?format=json')) return results - -def PostUploadHook(cl, change, output_api): - """git cl upload will call this hook after the issue is created/modified. - - This hook adds a noi18n bot if the patch affects Intl. - """ - def affects_intl(f): - return 'intl' in f.LocalPath() or 'test262' in f.LocalPath() - if not change.AffectedFiles(file_filter=affects_intl): - return [] - return output_api.EnsureCQIncludeTrybotsAreAdded( - cl, - [ - 'luci.v8.try:v8_linux_noi18n_rel_ng' - ], - 'Automatically added noi18n trybots to run tests on CQ.') diff --git a/deps/v8/benchmarks/micro/slice-perf.js b/deps/v8/benchmarks/micro/slice-perf.js new file mode 100644 index 00000000000..300d2126666 --- /dev/null +++ b/deps/v8/benchmarks/micro/slice-perf.js @@ -0,0 +1,83 @@ +// Copyright 2018 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. + +const kIterations = 1000000; +const kIterationShort = 10000; +const kArraySize = 64; + +let smi_array = []; +for (let i = 0; i < kArraySize; ++i) smi_array[i] = Math.floor(Math.random() * 100); + +let start = performance.now(); +for (let x = 0; x < kIterations; ++x) { + smi_array.slice(0); +} +let stop = performance.now(); +print("smi_array copy: " + (Math.floor((stop - start)*10)/10) + " ms"); + +start = performance.now(); +for (let x = 0; x < kIterations; ++x) { + smi_array.slice(x % kArraySize); +} +stop = performance.now(); +print("smi_array: " + (Math.floor((stop - start)*10)/10) + " ms"); + +let double_array = []; +for (let i = 0; i < kArraySize; ++i) double_array[i] = Math.random() * 100; +start = performance.now(); +for (let x = 0; x < kIterations; ++x) { + double_array.slice(x % kArraySize); +} +stop = performance.now(); +print("double_array: " + (Math.floor((stop - start)*10)/10) + " ms"); + +let object_array = []; +for (let i = 0; i < kArraySize; ++i) object_array[i] = new Object(); +start = performance.now(); +for (let x = 0; x < kIterations; ++x) { + object_array.slice(x % kArraySize); +} +stop = performance.now(); +print("object_array: " + (Math.floor((stop - start)*10)/10) + " ms"); + +let dictionary_array = []; +for (let i = 0; i < kArraySize; ++i) dictionary_array[i] = new Object(); +dictionary_array[100000] = new Object(); +start = performance.now(); +for (let x = 0; x < kIterationShort; ++x) { + dictionary_array.slice(x % kArraySize); +} +stop = performance.now(); +print("dictionary: " + (Math.floor((stop - start)*10)/10) + " ms"); + +let arguments_array; +function sloppy() { + arguments_array = arguments; +} +sloppy.apply(null, smi_array); +start = performance.now(); +for (let x = 0; x < kIterations; ++x) { + let r = Array.prototype.slice.call(arguments_array, x % kArraySize); +} +stop = performance.now(); +print("arguments_array (sloppy): " + (Math.floor((stop - start)*10)/10) + " ms"); + +function sloppy2 (a) { + arguments_array = arguments; +} +sloppy2.apply(null, smi_array); +start = performance.now(); +for (let x = 0; x < kIterations; ++x) { + Array.prototype.slice.call(arguments_array, x % kArraySize); +} +stop = performance.now(); +print("arguments_array (fast aliased): " + (Math.floor((stop - start)*10)/10) + " ms"); + +delete arguments_array[5]; +start = performance.now(); +for (let x = 0; x < kIterationShort; ++x) { + Array.prototype.slice.call(arguments_array, x % kArraySize); +} +stop = performance.now(); +print("arguments_array (slow aliased): " + (Math.floor((stop - start)*10)/10) + " ms"); diff --git a/deps/v8/include/OWNERS b/deps/v8/include/OWNERS index d20fb79fe16..7953cfe133a 100644 --- a/deps/v8/include/OWNERS +++ b/deps/v8/include/OWNERS @@ -5,6 +5,7 @@ danno@chromium.org ulan@chromium.org yangguo@chromium.org +per-file v8-internal.h=file://OWNERS per-file v8-inspector.h=dgozman@chromium.org per-file v8-inspector.h=pfeldman@chromium.org per-file v8-inspector.h=kozyatinskiy@chromium.org diff --git a/deps/v8/include/PRESUBMIT.py b/deps/v8/include/PRESUBMIT.py deleted file mode 100644 index 8002e4dcacb..00000000000 --- a/deps/v8/include/PRESUBMIT.py +++ /dev/null @@ -1,29 +0,0 @@ -# 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. - -"""Presubmit script for //v8/include - -See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts -for more details about the presubmit API built into depot_tools. -""" - -import os - - -def PostUploadHook(cl, change, output_api): - """git cl upload will call this hook after the issue is created/modified. - - This hook adds extra try bots to the CL description in order to run layout - tests in addition to CQ try bots. - """ - def header_filter(f): - return '.h' in os.path.split(f.LocalPath())[1] - if not change.AffectedFiles(file_filter=header_filter): - return [] - return output_api.EnsureCQIncludeTrybotsAreAdded( - cl, - [ - 'luci.chromium.try:linux_chromium_rel_ng' - ], - 'Automatically added layout test trybots to run tests on CQ.') diff --git a/deps/v8/include/v8-internal.h b/deps/v8/include/v8-internal.h index 80f7367bfee..9f6735cf809 100644 --- a/deps/v8/include/v8-internal.h +++ b/deps/v8/include/v8-internal.h @@ -20,15 +20,17 @@ class Isolate; namespace internal { -class Object; +typedef uintptr_t Address; +static const Address kNullAddress = 0; /** * Configuration of tagging scheme. */ -const int kApiPointerSize = sizeof(void*); // NOLINT -const int kApiDoubleSize = sizeof(double); // NOLINT -const int kApiIntSize = sizeof(int); // NOLINT -const int kApiInt64Size = sizeof(int64_t); // NOLINT +const int kApiSystemPointerSize = sizeof(void*); +const int kApiTaggedSize = kApiSystemPointerSize; +const int kApiDoubleSize = sizeof(double); +const int kApiIntSize = sizeof(int); +const int kApiInt64Size = sizeof(int64_t); // Tag information for HeapObject. const int kHeapObjectTag = 1; @@ -44,33 +46,20 @@ const intptr_t kSmiTagMask = (1 << kSmiTagSize) - 1; template struct SmiTagging; -template -V8_INLINE internal::Object* IntToSmi(int value) { - int smi_shift_bits = kSmiTagSize + kSmiShiftSize; - intptr_t tagged_value = - (static_cast(value) << smi_shift_bits) | kSmiTag; - return reinterpret_cast(tagged_value); -} - // Smi constants for systems where tagged pointer is a 32-bit value. template <> struct SmiTagging<4> { enum { kSmiShiftSize = 0, kSmiValueSize = 31 }; - static int SmiShiftSize() { return kSmiShiftSize; } - static int SmiValueSize() { return kSmiValueSize; } - V8_INLINE static int SmiToInt(const internal::Object* value) { + V8_INLINE static int SmiToInt(const internal::Address value) { int shift_bits = kSmiTagSize + kSmiShiftSize; - // Throw away top 32 bits and shift down (requires >> to be sign extending). - return static_cast(reinterpret_cast(value)) >> shift_bits; - } - V8_INLINE static internal::Object* IntToSmi(int value) { - return internal::IntToSmi(value); + // Shift down (requires >> to be sign extending). + return static_cast(static_cast(value)) >> shift_bits; } V8_INLINE static constexpr bool IsValidSmi(intptr_t value) { // To be representable as an tagged small integer, the two // most-significant bits of 'value' must be either 00 or 11 due to // sign-extension. To check this we add 01 to the two - // most-significant bits, and check if the most-significant bit is 0 + // most-significant bits, and check if the most-significant bit is 0. // // CAUTION: The original code below: // bool result = ((value + 0x40000000) & 0x80000000) == 0; @@ -86,15 +75,10 @@ struct SmiTagging<4> { template <> struct SmiTagging<8> { enum { kSmiShiftSize = 31, kSmiValueSize = 32 }; - static int SmiShiftSize() { return kSmiShiftSize; } - static int SmiValueSize() { return kSmiValueSize; } - V8_INLINE static int SmiToInt(const internal::Object* value) { + V8_INLINE static int SmiToInt(const internal::Address value) { int shift_bits = kSmiTagSize + kSmiShiftSize; // Shift down and throw away top 32 bits. - return static_cast(reinterpret_cast(value) >> shift_bits); - } - V8_INLINE static internal::Object* IntToSmi(int value) { - return internal::IntToSmi(value); + return static_cast(static_cast(value) >> shift_bits); } V8_INLINE static constexpr bool IsValidSmi(intptr_t value) { // To be representable as a long smi, the value must be a 32-bit integer. @@ -102,13 +86,16 @@ struct SmiTagging<8> { } }; -#if V8_COMPRESS_POINTERS +#if defined(V8_COMPRESS_POINTERS) static_assert( - kApiPointerSize == kApiInt64Size, + kApiSystemPointerSize == kApiInt64Size, "Pointer compression can be enabled only for 64-bit architectures"); -typedef SmiTagging<4> PlatformSmiTagging; +#endif + +#if defined(V8_COMPRESS_POINTERS) || defined(V8_31BIT_SMIS_ON_64BIT_ARCH) +typedef SmiTagging PlatformSmiTagging; #else -typedef SmiTagging PlatformSmiTagging; +typedef SmiTagging PlatformSmiTagging; #endif const int kSmiShiftSize = PlatformSmiTagging::kSmiShiftSize; @@ -118,6 +105,11 @@ const int kSmiMaxValue = -(kSmiMinValue + 1); constexpr bool SmiValuesAre31Bits() { return kSmiValueSize == 31; } constexpr bool SmiValuesAre32Bits() { return kSmiValueSize == 32; } +V8_INLINE static constexpr internal::Address IntToSmi(int value) { + return (static_cast
(value) << (kSmiTagSize + kSmiShiftSize)) | + kSmiTag; +} + /** * This class exports constants and functionality from within v8 that * is necessary to implement inline functions in the v8 api. Don't @@ -128,30 +120,37 @@ class Internals { // These values match non-compiler-dependent values defined within // the implementation of v8. static const int kHeapObjectMapOffset = 0; - static const int kMapInstanceTypeOffset = 1 * kApiPointerSize + kApiIntSize; - static const int kStringResourceOffset = - 1 * kApiPointerSize + 2 * kApiIntSize; - - static const int kOddballKindOffset = 4 * kApiPointerSize + kApiDoubleSize; - static const int kForeignAddressOffset = kApiPointerSize; - static const int kJSObjectHeaderSize = 3 * kApiPointerSize; - static const int kFixedArrayHeaderSize = 2 * kApiPointerSize; - static const int kContextHeaderSize = 2 * kApiPointerSize; - static const int kContextEmbedderDataIndex = 5; + static const int kMapInstanceTypeOffset = 1 * kApiTaggedSize + kApiIntSize; + static const int kStringResourceOffset = 1 * kApiTaggedSize + 2 * kApiIntSize; + + static const int kOddballKindOffset = 4 * kApiTaggedSize + kApiDoubleSize; + static const int kForeignAddressOffset = kApiTaggedSize; + static const int kJSObjectHeaderSize = 3 * kApiTaggedSize; + static const int kFixedArrayHeaderSize = 2 * kApiTaggedSize; + static const int kEmbedderDataArrayHeaderSize = 2 * kApiTaggedSize; + static const int kEmbedderDataSlotSize = +#ifdef V8_COMPRESS_POINTERS + 2 * +#endif + kApiSystemPointerSize; + static const int kNativeContextEmbedderDataOffset = 7 * kApiTaggedSize; static const int kFullStringRepresentationMask = 0x0f; static const int kStringEncodingMask = 0x8; static const int kExternalTwoByteRepresentationTag = 0x02; static const int kExternalOneByteRepresentationTag = 0x0a; - static const int kIsolateEmbedderDataOffset = 0 * kApiPointerSize; - static const int kExternalMemoryOffset = 4 * kApiPointerSize; + static const uint32_t kNumIsolateDataSlots = 4; + + static const int kIsolateEmbedderDataOffset = 0; + static const int kExternalMemoryOffset = + kNumIsolateDataSlots * kApiTaggedSize; static const int kExternalMemoryLimitOffset = kExternalMemoryOffset + kApiInt64Size; static const int kExternalMemoryAtLastMarkCompactOffset = kExternalMemoryLimitOffset + kApiInt64Size; - static const int kIsolateRootsOffset = kExternalMemoryLimitOffset + - kApiInt64Size + kApiInt64Size + - kApiPointerSize + kApiPointerSize; + static const int kIsolateRootsOffset = + kExternalMemoryAtLastMarkCompactOffset + kApiInt64Size; + static const int kUndefinedValueRootIndex = 4; static const int kTheHoleValueRootIndex = 5; static const int kNullValueRootIndex = 6; @@ -159,8 +158,8 @@ class Internals { static const int kFalseValueRootIndex = 8; static const int kEmptyStringRootIndex = 9; - static const int kNodeClassIdOffset = 1 * kApiPointerSize; - static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; + static const int kNodeClassIdOffset = 1 * kApiTaggedSize; + static const int kNodeFlagsOffset = 1 * kApiTaggedSize + 3; static const int kNodeStateMask = 0x7; static const int kNodeStateIsWeakValue = 2; static const int kNodeStateIsPendingValue = 3; @@ -178,8 +177,6 @@ class Internals { static const int kUndefinedOddballKind = 5; static const int kNullOddballKind = 3; - static const uint32_t kNumIsolateDataSlots = 4; - // Soft limit for AdjustAmountofExternalAllocatedMemory. Trigger an // incremental GC once the external memory reaches this limit. static constexpr int kExternalAllocationSoftLimit = 64 * 1024 * 1024; @@ -191,32 +188,30 @@ class Internals { #endif } - V8_INLINE static bool HasHeapObjectTag(const internal::Object* value) { - return ((reinterpret_cast(value) & kHeapObjectTagMask) == - kHeapObjectTag); + V8_INLINE static bool HasHeapObjectTag(const internal::Address value) { + return (value & kHeapObjectTagMask) == static_cast
(kHeapObjectTag); } - V8_INLINE static int SmiValue(const internal::Object* value) { + V8_INLINE static int SmiValue(const internal::Address value) { return PlatformSmiTagging::SmiToInt(value); } - V8_INLINE static internal::Object* IntToSmi(int value) { - return PlatformSmiTagging::IntToSmi(value); + V8_INLINE static constexpr internal::Address IntToSmi(int value) { + return internal::IntToSmi(value); } V8_INLINE static constexpr bool IsValidSmi(intptr_t value) { return PlatformSmiTagging::IsValidSmi(value); } - V8_INLINE static int GetInstanceType(const internal::Object* obj) { - typedef internal::Object O; - O* map = ReadField(obj, kHeapObjectMapOffset); + V8_INLINE static int GetInstanceType(const internal::Address obj) { + typedef internal::Address A; + A map = ReadField(obj, kHeapObjectMapOffset); return ReadField(map, kMapInstanceTypeOffset); } - V8_INLINE static int GetOddballKind(const internal::Object* obj) { - typedef internal::Object O; - return SmiValue(ReadField(obj, kOddballKindOffset)); + V8_INLINE static int GetOddballKind(const internal::Address obj) { + return SmiValue(ReadField(obj, kOddballKindOffset)); } V8_INLINE static bool IsExternalTwoByteString(int instance_type) { @@ -224,67 +219,70 @@ class Internals { return representation == kExternalTwoByteRepresentationTag; } - V8_INLINE static uint8_t GetNodeFlag(internal::Object** obj, int shift) { + V8_INLINE static uint8_t GetNodeFlag(internal::Address* obj, int shift) { uint8_t* addr = reinterpret_cast(obj) + kNodeFlagsOffset; return *addr & static_cast(1U << shift); } - V8_INLINE static void UpdateNodeFlag(internal::Object** obj, bool value, + V8_INLINE static void UpdateNodeFlag(internal::Address* obj, bool value, int shift) { uint8_t* addr = reinterpret_cast(obj) + kNodeFlagsOffset; uint8_t mask = static_cast(1U << shift); *addr = static_cast((*addr & ~mask) | (value << shift)); } - V8_INLINE static uint8_t GetNodeState(internal::Object** obj) { + V8_INLINE static uint8_t GetNodeState(internal::Address* obj) { uint8_t* addr = reinterpret_cast(obj) + kNodeFlagsOffset; return *addr & kNodeStateMask; } - V8_INLINE static void UpdateNodeState(internal::Object** obj, uint8_t value) { + V8_INLINE static void UpdateNodeState(internal::Address* obj, uint8_t value) { uint8_t* addr = reinterpret_cast(obj) + kNodeFlagsOffset; *addr = static_cast((*addr & ~kNodeStateMask) | value); } V8_INLINE static void SetEmbedderData(v8::Isolate* isolate, uint32_t slot, void* data) { - uint8_t* addr = reinterpret_cast(isolate) + - kIsolateEmbedderDataOffset + slot * kApiPointerSize; + internal::Address addr = reinterpret_cast(isolate) + + kIsolateEmbedderDataOffset + + slot * kApiSystemPointerSize; *reinterpret_cast(addr) = data; } V8_INLINE static void* GetEmbedderData(const v8::Isolate* isolate, uint32_t slot) { - const uint8_t* addr = reinterpret_cast(isolate) + - kIsolateEmbedderDataOffset + slot * kApiPointerSize; + internal::Address addr = reinterpret_cast(isolate) + + kIsolateEmbedderDataOffset + + slot * kApiSystemPointerSize; return *reinterpret_cast(addr); } - V8_INLINE static internal::Object** GetRoot(v8::Isolate* isolate, int index) { - uint8_t* addr = reinterpret_cast(isolate) + kIsolateRootsOffset; - return reinterpret_cast(addr + index * kApiPointerSize); + V8_INLINE static internal::Address* GetRoot(v8::Isolate* isolate, int index) { + internal::Address addr = reinterpret_cast(isolate) + + kIsolateRootsOffset + + index * kApiSystemPointerSize; + return reinterpret_cast(addr); } template - V8_INLINE static T ReadField(const internal::Object* ptr, int offset) { - const uint8_t* addr = - reinterpret_cast(ptr) + offset - kHeapObjectTag; + V8_INLINE static T ReadField(const internal::Address heap_object_ptr, + int offset) { + internal::Address addr = heap_object_ptr + offset - kHeapObjectTag; return *reinterpret_cast(addr); } +#ifndef V8_COMPRESS_POINTERS template V8_INLINE static T ReadEmbedderData(const v8::Context* context, int index) { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* ctx = *reinterpret_cast(context); - int embedder_data_offset = - I::kContextHeaderSize + - (internal::kApiPointerSize * I::kContextEmbedderDataIndex); - O* embedder_data = I::ReadField(ctx, embedder_data_offset); + A ctx = *reinterpret_cast(context); + A embedder_data = I::ReadField(ctx, I::kNativeContextEmbedderDataOffset); int value_offset = - I::kFixedArrayHeaderSize + (internal::kApiPointerSize * index); + I::kEmbedderDataArrayHeaderSize + (I::kEmbedderDataSlotSize * index); return I::ReadField(embedder_data, value_offset); } +#endif }; // Only perform cast check for types derived from v8::Data since diff --git a/deps/v8/include/v8-platform.h b/deps/v8/include/v8-platform.h index d983c302495..b9b0363a426 100644 --- a/deps/v8/include/v8-platform.h +++ b/deps/v8/include/v8-platform.h @@ -53,6 +53,15 @@ class TaskRunner { */ virtual void PostTask(std::unique_ptr task) = 0; + /** + * Schedules a task to be invoked by this TaskRunner. The TaskRunner + * implementation takes ownership of |task|. The |task| cannot be nested + * within other task executions. + * + * Requires that |TaskRunner::NonNestableTasksEnabled()| is true. + */ + virtual void PostNonNestableTask(std::unique_ptr task) {} + /** * Schedules a task to be invoked by this TaskRunner. The task is scheduled * after the given number of seconds |delay_in_seconds|. The TaskRunner @@ -64,7 +73,7 @@ class TaskRunner { /** * Schedules an idle task to be invoked by this TaskRunner. The task is * scheduled when the embedder is idle. Requires that - * TaskRunner::SupportsIdleTasks(isolate) is true. Idle tasks may be reordered + * |TaskRunner::IdleTasksEnabled()| is true. Idle tasks may be reordered * relative to other task types and may be starved for an arbitrarily long * time if no idle time is available. The TaskRunner implementation takes * ownership of |task|. @@ -76,6 +85,11 @@ class TaskRunner { */ virtual bool IdleTasksEnabled() = 0; + /** + * Returns true if non-nestable tasks are enabled for this TaskRunner. + */ + virtual bool NonNestableTasksEnabled() const { return false; } + TaskRunner() = default; virtual ~TaskRunner() = default; @@ -236,6 +250,13 @@ class PageAllocator { */ virtual bool SetPermissions(void* address, size_t length, Permission permissions) = 0; + + /** + * Frees memory in the given [address, address + size) range. address and size + * should be operating system page-aligned. The next write to this + * memory area brings the memory transparently back. + */ + virtual bool DiscardSystemPages(void* address, size_t size) { return true; } }; /** @@ -388,6 +409,12 @@ class Platform { */ virtual TracingController* GetTracingController() = 0; + /** + * Tells the embedder to generate and upload a crashdump during an unexpected + * but non-critical scenario. + */ + virtual void DumpWithoutCrashing() {} + protected: /** * Default implementation of current wall-clock time in milliseconds diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h index f30688582df..94d3fcfcf63 100644 --- a/deps/v8/include/v8-profiler.h +++ b/deps/v8/include/v8-profiler.h @@ -611,6 +611,11 @@ class V8_EXPORT AllocationProfile { */ int column_number; + /** + * Unique id of the node. + */ + uint32_t node_id; + /** * List of callees called from this node for which we have sampled * allocations. The lifetime of the children is scoped to the containing @@ -624,12 +629,39 @@ class V8_EXPORT AllocationProfile { std::vector allocations; }; + /** + * Represent a single sample recorded for an allocation. + */ + struct Sample { + /** + * id of the node in the profile tree. + */ + uint32_t node_id; + + /** + * Size of the sampled allocation object. + */ + size_t size; + + /** + * The number of objects of such size that were sampled. + */ + unsigned int count; + + /** + * Unique time-ordered id of the allocation sample. Can be used to track + * what samples were added or removed between two snapshots. + */ + uint64_t sample_id; + }; + /** * Returns the root node of the call-graph. The root node corresponds to an * empty JS call-stack. The lifetime of the returned Node* is scoped to the * containing AllocationProfile. */ virtual Node* GetRootNode() = 0; + virtual const std::vector& GetSamples() = 0; virtual ~AllocationProfile() = default; diff --git a/deps/v8/include/v8-util.h b/deps/v8/include/v8-util.h index 96c9acbbdc2..475026fe2c8 100644 --- a/deps/v8/include/v8-util.h +++ b/deps/v8/include/v8-util.h @@ -25,13 +25,11 @@ enum PersistentContainerCallbackType { kNotWeak, // These correspond to v8::WeakCallbackType kWeakWithParameter, - kWeakWithInternalFields, - kWeak = kWeakWithParameter // For backwards compatibility. Deprecate. + kWeakWithInternalFields }; - /** - * A default trait implemenation for PersistentValueMap which uses std::map + * A default trait implementation for PersistentValueMap which uses std::map * as a backing map. * * Users will have to implement their own weak callbacks & dispose traits. @@ -203,7 +201,7 @@ class PersistentValueMapBase { void RegisterExternallyReferencedObject(K& key) { assert(Contains(key)); V8::RegisterExternallyReferencedObject( - reinterpret_cast(FromVal(Traits::Get(&impl_, key))), + reinterpret_cast(FromVal(Traits::Get(&impl_, key))), reinterpret_cast(GetIsolate())); } @@ -340,7 +338,7 @@ class PersistentValueMapBase { bool hasValue = value != kPersistentContainerNotFound; if (hasValue) { returnValue->SetInternal( - *reinterpret_cast(FromVal(value))); + *reinterpret_cast(FromVal(value))); } return hasValue; } diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 8624767047c..526652bb8fe 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 7 -#define V8_MINOR_VERSION 1 -#define V8_BUILD_NUMBER 302 -#define V8_PATCH_LEVEL 28 +#define V8_MINOR_VERSION 3 +#define V8_BUILD_NUMBER 83 +#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-wasm-trap-handler-posix.h b/deps/v8/include/v8-wasm-trap-handler-posix.h new file mode 100644 index 00000000000..8ba4918da9a --- /dev/null +++ b/deps/v8/include/v8-wasm-trap-handler-posix.h @@ -0,0 +1,31 @@ +// Copyright 2018 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. + +#ifndef V8_WASM_TRAP_HANDLER_POSIX_H_ +#define V8_WASM_TRAP_HANDLER_POSIX_H_ + +#include + +#include "include/v8config.h" + +namespace v8 { +/** + * This function determines whether a memory access violation has been an + * out-of-bounds memory access in WebAssembly. If so, it will modify the context + * parameter and add a return address where the execution can continue after the + * signal handling, and return true. Otherwise, false will be returned. + * + * The parameters to this function correspond to those passed to a Posix signal + * handler. Use this function only on Linux and Mac. + * + * \param sig_code The signal code, e.g. SIGSEGV. + * \param info A pointer to the siginfo_t struct provided to the signal handler. + * \param context A pointer to a ucontext_t struct provided to the signal + * handler. + */ +V8_EXPORT bool TryHandleWebAssemblyTrapPosix(int sig_code, siginfo_t* info, + void* context); + +} // namespace v8 +#endif // V8_WASM_TRAP_HANDLER_POSIX_H_ diff --git a/deps/v8/include/v8-wasm-trap-handler-win.h b/deps/v8/include/v8-wasm-trap-handler-win.h new file mode 100644 index 00000000000..d6c1407ab12 --- /dev/null +++ b/deps/v8/include/v8-wasm-trap-handler-win.h @@ -0,0 +1,27 @@ +// Copyright 2018 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. + +#ifndef V8_WASM_TRAP_HANDLER_WIN_H_ +#define V8_WASM_TRAP_HANDLER_WIN_H_ + +#include +#include "include/v8config.h" + +namespace v8 { +/** + * This function determines whether a memory access violation has been an + * out-of-bounds memory access in WebAssembly. If so, it will modify the + * exception parameter and add a return address where the execution can continue + * after the exception handling, and return true. Otherwise the return value + * will be false. + * + * The parameter to this function corresponds to the one passed to a Windows + * vectored exception handler. Use this function only on Windows. + * + * \param exception An EXCEPTION_POINTERS* as provided to the exception handler. + */ +V8_EXPORT bool TryHandleWebAssemblyTrapWindows(EXCEPTION_POINTERS* exception); + +} // namespace v8 +#endif // V8_WASM_TRAP_HANDLER_WIN_H_ diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index 9b7be9fb930..e38d6506a7c 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -81,7 +81,7 @@ class Private; class Uint32; class Utils; class Value; -class WasmCompiledModule; +class WasmModuleObject; template class Local; template class MaybeLocal; @@ -118,7 +118,6 @@ class HeapObject; class Isolate; class LocalEmbedderHeapTracer; class NeverReadOnlySpaceObject; -class Object; struct ScriptStreamingData; template class CustomArguments; class PropertyCallbackArguments; @@ -212,8 +211,8 @@ class Local { */ template V8_INLINE bool operator==(const Local& that) const { - internal::Object** a = reinterpret_cast(this->val_); - internal::Object** b = reinterpret_cast(that.val_); + internal::Address* a = reinterpret_cast(this->val_); + internal::Address* b = reinterpret_cast(that.val_); if (a == nullptr) return b == nullptr; if (b == nullptr) return false; return *a == *b; @@ -221,8 +220,8 @@ class Local { template V8_INLINE bool operator==( const PersistentBase& that) const { - internal::Object** a = reinterpret_cast(this->val_); - internal::Object** b = reinterpret_cast(that.val_); + internal::Address* a = reinterpret_cast(this->val_); + internal::Address* b = reinterpret_cast(that.val_); if (a == nullptr) return b == nullptr; if (b == nullptr) return false; return *a == *b; @@ -477,8 +476,8 @@ template class PersistentBase { template V8_INLINE bool operator==(const PersistentBase& that) const { - internal::Object** a = reinterpret_cast(this->val_); - internal::Object** b = reinterpret_cast(that.val_); + internal::Address* a = reinterpret_cast(this->val_); + internal::Address* b = reinterpret_cast(that.val_); if (a == nullptr) return b == nullptr; if (b == nullptr) return false; return *a == *b; @@ -486,8 +485,8 @@ template class PersistentBase { template V8_INLINE bool operator==(const Local& that) const { - internal::Object** a = reinterpret_cast(this->val_); - internal::Object** b = reinterpret_cast(that.val_); + internal::Address* a = reinterpret_cast(this->val_); + internal::Address* b = reinterpret_cast(that.val_); if (a == nullptr) return b == nullptr; if (b == nullptr) return false; return *a == *b; @@ -859,8 +858,8 @@ class V8_EXPORT HandleScope { void Initialize(Isolate* isolate); - static internal::Object** CreateHandle(internal::Isolate* isolate, - internal::Object* value); + static internal::Address* CreateHandle(internal::Isolate* isolate, + internal::Address value); private: // Declaring operator new and delete as deleted is not spec compliant. @@ -871,12 +870,12 @@ class V8_EXPORT HandleScope { void operator delete[](void*, size_t); // Uses heap_object to obtain the current Isolate. - static internal::Object** CreateHandle( - internal::NeverReadOnlySpaceObject* heap_object, internal::Object* value); + static internal::Address* CreateHandle( + internal::NeverReadOnlySpaceObject* heap_object, internal::Address value); internal::Isolate* isolate_; - internal::Object** prev_next_; - internal::Object** prev_limit_; + internal::Address* prev_next_; + internal::Address* prev_limit_; // Local::New uses CreateHandle with an Isolate* parameter. template friend class Local; @@ -903,8 +902,8 @@ class V8_EXPORT EscapableHandleScope : public HandleScope { */ template V8_INLINE Local Escape(Local value) { - internal::Object** slot = - Escape(reinterpret_cast(*value)); + internal::Address* slot = + Escape(reinterpret_cast(*value)); return Local(reinterpret_cast(slot)); } @@ -924,8 +923,8 @@ class V8_EXPORT EscapableHandleScope : public HandleScope { void operator delete(void*, size_t); void operator delete[](void*, size_t); - internal::Object** Escape(internal::Object** escape_value); - internal::Object** escape_slot_; + internal::Address* Escape(internal::Address* escape_value); + internal::Address* escape_slot_; }; /** @@ -950,7 +949,7 @@ class V8_EXPORT SealHandleScope { void operator delete[](void*, size_t); internal::Isolate* const isolate_; - internal::Object** prev_limit_; + internal::Address* prev_limit_; int prev_sealed_level_; }; @@ -1393,10 +1392,6 @@ class V8_EXPORT ScriptCompiler { StreamedSource(ExternalSourceStream* source_stream, Encoding encoding); ~StreamedSource(); - V8_DEPRECATED("No longer used", const CachedData* GetCachedData() const) { - return nullptr; - } - internal::ScriptStreamingData* impl() const { return impl_.get(); } // Prevent copying. @@ -1426,10 +1421,6 @@ class V8_EXPORT ScriptCompiler { enum CompileOptions { kNoCompileOptions = 0, - kProduceParserCache, - kConsumeParserCache, - kProduceCodeCache, - kProduceFullCodeCache, kConsumeCodeCache, kEagerCompile }; @@ -1827,8 +1818,18 @@ struct SampleInfo { }; struct MemoryRange { - const void* start; - size_t length_in_bytes; + const void* start = nullptr; + size_t length_in_bytes = 0; +}; + +struct JSEntryStub { + MemoryRange code; +}; + +struct UnwindState { + MemoryRange code_range; + MemoryRange embedded_code_range; + JSEntryStub js_entry_stub; }; /** @@ -1840,12 +1841,10 @@ class V8_EXPORT JSON { * Tries to parse the string |json_string| and returns it as value if * successful. * + * \param the context in which to parse and create the value. * \param json_string The string to parse. * \return The corresponding value if successfully parsed. */ - static V8_DEPRECATED("Use the maybe version taking context", - MaybeLocal Parse(Isolate* isolate, - Local json_string)); static V8_WARN_UNUSED_RESULT MaybeLocal Parse( Local context, Local json_string); @@ -1903,7 +1902,7 @@ class V8_EXPORT ValueSerializer { Isolate* isolate, Local shared_array_buffer); virtual Maybe GetWasmModuleTransferId( - Isolate* isolate, Local module); + Isolate* isolate, Local module); /** * Allocates memory for the buffer of at least the size provided. The actual * size (which may be greater or equal) is written to |actual_size|. If no @@ -1941,12 +1940,6 @@ class V8_EXPORT ValueSerializer { V8_WARN_UNUSED_RESULT Maybe WriteValue(Local context, Local value); - /** - * Returns the stored data. This serializer should not be used once the buffer - * is released. The contents are undefined if a previous write has failed. - */ - V8_DEPRECATED("Use Release()", std::vector ReleaseBuffer()); - /** * Returns the stored data (allocated using the delegate's * ReallocateBufferMemory) and its size. This serializer should not be used @@ -1963,13 +1956,6 @@ class V8_EXPORT ValueSerializer { void TransferArrayBuffer(uint32_t transfer_id, Local array_buffer); - /** - * Similar to TransferArrayBuffer, but for SharedArrayBuffer. - */ - V8_DEPRECATED("Use Delegate::GetSharedArrayBufferId", - void TransferSharedArrayBuffer( - uint32_t transfer_id, - Local shared_array_buffer)); /** * Indicate whether to treat ArrayBufferView objects as host objects, @@ -2020,10 +2006,10 @@ class V8_EXPORT ValueDeserializer { virtual MaybeLocal ReadHostObject(Isolate* isolate); /** - * Get a WasmCompiledModule given a transfer_id previously provided + * Get a WasmModuleObject given a transfer_id previously provided * by ValueSerializer::GetWasmModuleTransferId */ - virtual MaybeLocal GetWasmModuleFromId( + virtual MaybeLocal GetWasmModuleFromId( Isolate* isolate, uint32_t transfer_id); /** @@ -2531,7 +2517,7 @@ enum class NewStringType { */ class V8_EXPORT String : public Name { public: - static constexpr int kMaxLength = internal::kApiPointerSize == 4 + static constexpr int kMaxLength = internal::kApiTaggedSize == 4 ? (1 << 28) - 16 : internal::kSmiMaxValue / 2 - 24; @@ -2631,8 +2617,7 @@ class V8_EXPORT String : public Name { public: virtual ~ExternalStringResourceBase() = default; - V8_DEPRECATE_SOON("Use IsCacheable().", - virtual bool IsCompressible() const) { + V8_DEPRECATED("Use IsCacheable().", virtual bool IsCompressible() const) { return false; } @@ -2641,16 +2626,7 @@ class V8_EXPORT String : public Name { * ExternalStringResource::data() may be cached, otherwise it is not * expected to be stable beyond the current top-level task. */ - virtual bool IsCacheable() const { -#if __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -#endif - return !IsCompressible(); -#if __clang__ -#pragma clang diagnostic pop -#endif - } + virtual bool IsCacheable() const { return true; } protected: ExternalStringResourceBase() = default; @@ -2775,7 +2751,7 @@ class V8_EXPORT String : public Name { }; /** Allocates a new string from UTF-8 data.*/ - static V8_DEPRECATE_SOON( + static V8_DEPRECATED( "Use maybe version", Local NewFromUtf8(Isolate* isolate, const char* data, NewStringType type = kNormalString, @@ -2925,8 +2901,6 @@ class V8_EXPORT String : public Name { ExternalStringResource* GetExternalStringResourceSlow() const; ExternalStringResourceBase* GetExternalStringResourceBaseSlow( String::Encoding* encoding_out) const; - const ExternalOneByteStringResource* GetExternalOneByteStringResourceSlow() - const; static void CheckCast(v8::Value* obj); }; @@ -3317,7 +3291,6 @@ class V8_EXPORT Object : public Value { V8_WARN_UNUSED_RESULT MaybeLocal GetOwnPropertyDescriptor( Local context, Local key); - V8_DEPRECATE_SOON("Use maybe version", bool Has(Local key)); /** * Object::Has() calls the abstract operation HasProperty(O, P) described * in ECMA-262, 7.3.10. Has() returns @@ -3336,7 +3309,6 @@ class V8_EXPORT Object : public Value { V8_WARN_UNUSED_RESULT Maybe Has(Local context, Local key); - V8_DEPRECATE_SOON("Use maybe version", bool Delete(Local key)); V8_WARN_UNUSED_RESULT Maybe Delete(Local context, Local key); @@ -3657,6 +3629,18 @@ class V8_EXPORT Object : public Value { static Local New(Isolate* isolate); + /** + * Creates a JavaScript object with the given properties, and + * a the given prototype_or_null (which can be any JavaScript + * value, and if it's null, the newly created object won't have + * a prototype at all). This is similar to Object.create(). + * All properties will be created as enumerable, configurable + * and writable properties. + */ + static Local New(Isolate* isolate, Local prototype_or_null, + Local* names, Local* values, + size_t length); + V8_INLINE static Object* Cast(Value* obj); private: @@ -3770,8 +3754,8 @@ class ReturnValue { } // Local setters template - V8_INLINE V8_DEPRECATE_SOON("Use Global<> instead", - void Set(const Persistent& handle)); + V8_INLINE V8_DEPRECATED("Use Global<> instead", + void Set(const Persistent& handle)); template V8_INLINE void Set(const Global& handle); template @@ -3803,10 +3787,10 @@ class ReturnValue { template friend class PropertyCallbackInfo; template friend class PersistentValueMapBase; - V8_INLINE void SetInternal(internal::Object* value) { *value_ = value; } - V8_INLINE internal::Object* GetDefaultValue(); - V8_INLINE explicit ReturnValue(internal::Object** slot); - internal::Object** value_; + V8_INLINE void SetInternal(internal::Address value) { *value_ = value; } + V8_INLINE internal::Address GetDefaultValue(); + V8_INLINE explicit ReturnValue(internal::Address* slot); + internal::Address* value_; }; @@ -3860,10 +3844,10 @@ class FunctionCallbackInfo { static const int kDataIndex = 4; static const int kNewTargetIndex = 5; - V8_INLINE FunctionCallbackInfo(internal::Object** implicit_args, - internal::Object** values, int length); - internal::Object** implicit_args_; - internal::Object** values_; + V8_INLINE FunctionCallbackInfo(internal::Address* implicit_args, + internal::Address* values, int length); + internal::Address* implicit_args_; + internal::Address* values_; int length_; }; @@ -3975,8 +3959,8 @@ class PropertyCallbackInfo { static const int kDataIndex = 5; static const int kThisIndex = 6; - V8_INLINE PropertyCallbackInfo(internal::Object** args) : args_(args) {} - internal::Object** args_; + V8_INLINE PropertyCallbackInfo(internal::Address* args) : args_(args) {} + internal::Address* args_; }; @@ -3998,10 +3982,11 @@ class V8_EXPORT Function : public Object { Local data = Local(), int length = 0, ConstructorBehavior behavior = ConstructorBehavior::kAllow, SideEffectType side_effect_type = SideEffectType::kHasSideEffect); - static V8_DEPRECATE_SOON( - "Use maybe version", - Local New(Isolate* isolate, FunctionCallback callback, - Local data = Local(), int length = 0)); + static V8_DEPRECATED("Use maybe version", + Local New(Isolate* isolate, + FunctionCallback callback, + Local data = Local(), + int length = 0)); V8_WARN_UNUSED_RESULT MaybeLocal NewInstance( Local context, int argc, Local argv[]) const; @@ -4020,9 +4005,9 @@ class V8_EXPORT Function : public Object { Local context, int argc, Local argv[], SideEffectType side_effect_type = SideEffectType::kHasSideEffect) const; - V8_DEPRECATE_SOON("Use maybe version", - Local Call(Local recv, int argc, - Local argv[])); + V8_DEPRECATED("Use maybe version", + Local Call(Local recv, int argc, + Local argv[])); V8_WARN_UNUSED_RESULT MaybeLocal Call(Local context, Local recv, int argc, Local argv[]); @@ -4156,6 +4141,11 @@ class V8_EXPORT Promise : public Object { */ PromiseState State(); + /** + * Marks this promise as handled to avoid reporting unhandled rejections. + */ + void MarkAsHandled(); + V8_INLINE static Promise* Cast(Value* obj); static const int kEmbedderFieldCount = V8_PROMISE_INTERNAL_FIELD_COUNT; @@ -4263,9 +4253,8 @@ class V8_EXPORT Proxy : public Object { static void CheckCast(Value* obj); }; -// TODO(mtrofin): rename WasmCompiledModule to WasmModuleObject, for -// consistency with internal APIs. -class V8_EXPORT WasmCompiledModule : public Object { +// An instance of WebAssembly.Module. +class V8_EXPORT WasmModuleObject : public Object { public: typedef std::pair, size_t> SerializedModule; @@ -4294,7 +4283,7 @@ class V8_EXPORT WasmCompiledModule : public Object { private: typedef std::shared_ptr SharedModule; typedef std::pair, size_t> OwnedBuffer; - friend class WasmCompiledModule; + friend class WasmModuleObject; explicit TransferrableModule(SharedModule shared_module) : shared_module_(std::move(shared_module)) {} TransferrableModule(OwnedBuffer serialized, OwnedBuffer bytes) @@ -4313,10 +4302,10 @@ class V8_EXPORT WasmCompiledModule : public Object { TransferrableModule GetTransferrableModule(); /** - * Efficiently re-create a WasmCompiledModule, without recompiling, from + * Efficiently re-create a WasmModuleObject, without recompiling, from * a TransferrableModule. */ - static MaybeLocal FromTransferrableModule( + static MaybeLocal FromTransferrableModule( Isolate* isolate, const TransferrableModule&); /** @@ -4334,31 +4323,34 @@ class V8_EXPORT WasmCompiledModule : public Object { * If possible, deserialize the module, otherwise compile it from the provided * uncompiled bytes. */ - static MaybeLocal DeserializeOrCompile( + static MaybeLocal DeserializeOrCompile( Isolate* isolate, BufferReference serialized_module, BufferReference wire_bytes); - V8_INLINE static WasmCompiledModule* Cast(Value* obj); + V8_INLINE static WasmModuleObject* Cast(Value* obj); private: - static MaybeLocal Deserialize( + static MaybeLocal Deserialize( Isolate* isolate, BufferReference serialized_module, BufferReference wire_bytes); - static MaybeLocal Compile(Isolate* isolate, - const uint8_t* start, - size_t length); + static MaybeLocal Compile(Isolate* isolate, + const uint8_t* start, + size_t length); static BufferReference AsReference( const TransferrableModule::OwnedBuffer& buff) { return {buff.first.get(), buff.second}; } - WasmCompiledModule(); + WasmModuleObject(); static void CheckCast(Value* obj); }; +V8_DEPRECATE_SOON("Use WasmModuleObject", + typedef WasmModuleObject WasmCompiledModule); + /** * The V8 interface for WebAssembly streaming compilation. When streaming * compilation is initiated, V8 passes a {WasmStreaming} object to the embedder - * such that the embedder can pass the input butes for streaming compilation to + * such that the embedder can pass the input bytes for streaming compilation to * V8. */ class V8_EXPORT WasmStreaming final { @@ -4370,7 +4362,7 @@ class V8_EXPORT WasmStreaming final { ~WasmStreaming(); /** - * Pass a new chunck of bytes to WebAssembly streaming compilation. + * Pass a new chunk of bytes to WebAssembly streaming compilation. * The buffer passed into {OnBytesReceived} is owned by the caller. */ void OnBytesReceived(const uint8_t* bytes, size_t size); @@ -4389,6 +4381,29 @@ class V8_EXPORT WasmStreaming final { */ void Abort(MaybeLocal exception); + /** + * Callback for module compiled notifications. |data| is the identifier + * passed to {SetModuleCompiledCallback}, |compiled_module| is the result. + */ + typedef void (*ModuleCompiledCallback)( + intptr_t data, Local compiled_module); + + /** + * Sets a callback for when compilation of the Wasm module has been completed + * to the highest tier. |data| will be passed as the first callback parameter. + */ + void SetModuleCompiledCallback(ModuleCompiledCallback callback, + intptr_t data); + + /** + * Passes previously compiled module bytes. This must be called before calling + * any non-static methods of this class. Returns true if the module bytes can + * be used, false otherwise. The buffer passed into {SetCompiledModuleBytes} + * is owned by the caller. If {SetCompiledModuleBytes} returns true, the + * buffer must remain valid until either {Finish} or {Abort} completes. + */ + bool SetCompiledModuleBytes(const uint8_t* bytes, size_t size); + /** * Unpacks a {WasmStreaming} object wrapped in a {Managed} for the embedder. * Since the embedder is on the other side of the API, it cannot unpack the @@ -5055,8 +5070,6 @@ class V8_EXPORT SharedArrayBuffer : public Object { */ class V8_EXPORT Date : public Object { public: - static V8_DEPRECATED("Use maybe version.", - Local New(Isolate* isolate, double time)); static V8_WARN_UNUSED_RESULT MaybeLocal New(Local context, double time); @@ -5705,7 +5718,7 @@ class V8_EXPORT FunctionTemplate : public Template { SideEffectType side_effect_type = SideEffectType::kHasSideEffect); /** Returns the unique function instance in the current execution context.*/ - V8_DEPRECATE_SOON("Use maybe version", Local GetFunction()); + V8_DEPRECATED("Use maybe version", Local GetFunction()); V8_WARN_UNUSED_RESULT MaybeLocal GetFunction( Local context); @@ -6002,7 +6015,7 @@ class V8_EXPORT ObjectTemplate : public Template { size_t index); /** Creates a new instance of this template.*/ - V8_DEPRECATE_SOON("Use maybe version", Local NewInstance()); + V8_DEPRECATED("Use maybe version", Local NewInstance()); V8_WARN_UNUSED_RESULT MaybeLocal NewInstance(Local context); /** @@ -6222,7 +6235,7 @@ class V8_EXPORT AccessorSignature : public Data { // --- Extensions --- -V8_DEPRECATE_SOON("Implementation detail", class) +V8_DEPRECATED("Implementation detail", class) V8_EXPORT ExternalOneByteStringResourceImpl : public String::ExternalOneByteStringResource { public: @@ -6316,18 +6329,6 @@ class V8_EXPORT ResourceConstraints { void ConfigureDefaults(uint64_t physical_memory, uint64_t virtual_memory_limit); - // Returns the max semi-space size in MB. - V8_DEPRECATED("Use max_semi_space_size_in_kb()", - size_t max_semi_space_size()) { - return max_semi_space_size_in_kb_ / 1024; - } - - // Sets the max semi-space size in MB. - V8_DEPRECATED("Use set_max_semi_space_size_in_kb(size_t limit_in_kb)", - void set_max_semi_space_size(size_t limit_in_mb)) { - max_semi_space_size_in_kb_ = limit_in_mb * 1024; - } - // Returns the max semi-space size in KB. size_t max_semi_space_size_in_kb() const { return max_semi_space_size_in_kb_; @@ -6342,14 +6343,6 @@ class V8_EXPORT ResourceConstraints { void set_max_old_space_size(size_t limit_in_mb) { max_old_space_size_ = limit_in_mb; } - V8_DEPRECATED("max_executable_size_ is subsumed by max_old_space_size_", - size_t max_executable_size() const) { - return max_executable_size_; - } - V8_DEPRECATED("max_executable_size_ is subsumed by max_old_space_size_", - void set_max_executable_size(size_t limit_in_mb)) { - max_executable_size_ = limit_in_mb; - } uint32_t* stack_limit() const { return stack_limit_; } // Sets an address beyond which the VM's stack may not grow. void set_stack_limit(uint32_t* value) { stack_limit_ = value; } @@ -6366,7 +6359,6 @@ class V8_EXPORT ResourceConstraints { // The remaining limits are in MB size_t max_old_space_size_; - size_t max_executable_size_; uint32_t* stack_limit_; size_t code_range_size_; size_t max_zone_pool_size_; @@ -6473,10 +6465,12 @@ typedef void (*HostInitializeImportMetaObjectCallback)(Local context, * PrepareStackTraceCallback is called when the stack property of an error is * first accessed. The return value will be used as the stack value. If this * callback is registed, the |Error.prepareStackTrace| API will be disabled. + * |sites| is an array of call sites, specified in + * https://github.com/v8/v8/wiki/Stack-Trace-API */ typedef MaybeLocal (*PrepareStackTraceCallback)(Local context, Local error, - Local trace); + Local sites); /** * PromiseHook with type kInit is called when a new promise is @@ -6771,21 +6765,6 @@ class V8_EXPORT HeapCodeStatistics { class RetainedObjectInfo; - -/** - * FunctionEntryHook is the type of the profile entry hook called at entry to - * any generated function when function-level profiling is enabled. - * - * \param function the address of the function that's being entered. - * \param return_addr_location points to a location on stack where the machine - * return address resides. This can be used to identify the caller of - * \p function, and/or modified to divert execution when \p function exits. - * - * \note the entry hook must not cause garbage collection. - */ -typedef void (*FunctionEntryHook)(uintptr_t function, - uintptr_t return_addr_location); - /** * A JIT code event is issued each time code is added, moved or removed. * @@ -6947,15 +6926,6 @@ class V8_EXPORT EmbedderHeapTracer { kEmpty, }; - enum ForceCompletionAction { FORCE_COMPLETION, DO_NOT_FORCE_COMPLETION }; - - struct AdvanceTracingActions { - explicit AdvanceTracingActions(ForceCompletionAction force_completion_) - : force_completion(force_completion_) {} - - ForceCompletionAction force_completion; - }; - virtual ~EmbedderHeapTracer() = default; /** @@ -6972,25 +6942,6 @@ class V8_EXPORT EmbedderHeapTracer { */ virtual void TracePrologue() = 0; - /** - * Called to make a tracing step in the embedder. - * - * The embedder is expected to trace its heap starting from wrappers reported - * by RegisterV8References method, and report back all reachable wrappers. - * Furthermore, the embedder is expected to stop tracing by the given - * deadline. - * - * Returns true if there is still work to do. - * - * Note: Only one of the AdvanceTracing methods needs to be overriden by the - * embedder. - */ - V8_DEPRECATED("Use void AdvanceTracing(deadline_in_ms)", - virtual bool AdvanceTracing(double deadline_in_ms, - AdvanceTracingActions actions)) { - return false; - } - /** * Called to advance tracing in the embedder. * @@ -7000,17 +6951,14 @@ class V8_EXPORT EmbedderHeapTracer { * deadline. A deadline of infinity means that tracing should be finished. * * Returns |true| if tracing is done, and false otherwise. - * - * Note: Only one of the AdvanceTracing methods needs to be overriden by the - * embedder. */ - virtual bool AdvanceTracing(double deadline_in_ms); + virtual bool AdvanceTracing(double deadline_in_ms) = 0; /* * Returns true if there no more tracing work to be done (see AdvanceTracing) * and false otherwise. */ - virtual bool IsTracingDone(); + virtual bool IsTracingDone() = 0; /** * Called at the end of a GC cycle. @@ -7022,13 +6970,8 @@ class V8_EXPORT EmbedderHeapTracer { /** * Called upon entering the final marking pause. No more incremental marking * steps will follow this call. - * - * Note: Only one of the EnterFinalPause methods needs to be overriden by the - * embedder. */ - V8_DEPRECATED("Use void EnterFinalPause(EmbedderStackState)", - virtual void EnterFinalPause()) {} - virtual void EnterFinalPause(EmbedderStackState stack_state); + virtual void EnterFinalPause(EmbedderStackState stack_state) = 0; /** * Called when tracing is aborted. @@ -7036,8 +6979,8 @@ class V8_EXPORT EmbedderHeapTracer { * The embedder is expected to throw away all intermediate data and reset to * the initial state. */ - V8_DEPRECATE_SOON("Obsolete as V8 will not abort tracing anymore.", - virtual void AbortTracing()) {} + V8_DEPRECATED("Obsolete as V8 will not abort tracing anymore.", + virtual void AbortTracing()) {} /* * Called by the embedder to request immediate finalization of the currently @@ -7063,13 +7006,6 @@ class V8_EXPORT EmbedderHeapTracer { */ v8::Isolate* isolate() const { return isolate_; } - /** - * Returns the number of wrappers that are still to be traced by the embedder. - */ - V8_DEPRECATED("Use IsTracingDone", virtual size_t NumberOfWrappersToTrace()) { - return 0; - } - protected: v8::Isolate* isolate_ = nullptr; @@ -7079,6 +7015,10 @@ class V8_EXPORT EmbedderHeapTracer { /** * Callback and supporting data used in SnapshotCreator to implement embedder * logic to serialize internal fields. + * Internal fields that directly reference V8 objects are serialized without + * calling this callback. Internal fields that contain aligned pointers are + * serialized by this callback if it returns non-zero result. Otherwise it is + * serialized verbatim. */ struct SerializeInternalFieldsCallback { typedef StartupData (*CallbackFunction)(Local holder, int index, @@ -7124,8 +7064,7 @@ class V8_EXPORT Isolate { */ struct CreateParams { CreateParams() - : entry_hook(nullptr), - code_event_handler(nullptr), + : code_event_handler(nullptr), snapshot_blob(nullptr), counter_lookup_callback(nullptr), create_histogram_callback(nullptr), @@ -7135,16 +7074,6 @@ class V8_EXPORT Isolate { allow_atomics_wait(true), only_terminate_in_safe_scope(false) {} - /** - * The optional entry_hook allows the host application to provide the - * address of a function that's invoked on entry to every V8-generated - * function. Note that entry_hook is invoked at the very start of each - * generated function. - * An entry_hook can only be provided in no-snapshot builds; in snapshot - * builds it must be nullptr. - */ - FunctionEntryHook entry_hook; - /** * Allows the host application to provide the address of a function that is * notified each time code is added, moved or removed. @@ -7230,7 +7159,7 @@ class V8_EXPORT Isolate { */ class V8_EXPORT DisallowJavascriptExecutionScope { public: - enum OnFailure { CRASH_ON_FAILURE, THROW_ON_FAILURE }; + enum OnFailure { CRASH_ON_FAILURE, THROW_ON_FAILURE, DUMP_ON_FAILURE }; DisallowJavascriptExecutionScope(Isolate* isolate, OnFailure on_failure); ~DisallowJavascriptExecutionScope(); @@ -7242,7 +7171,7 @@ class V8_EXPORT Isolate { const DisallowJavascriptExecutionScope&) = delete; private: - bool on_failure_; + OnFailure on_failure_; void* internal_; }; @@ -7264,6 +7193,7 @@ class V8_EXPORT Isolate { private: void* internal_throws_; void* internal_assert_; + void* internal_dump_; }; /** @@ -7387,6 +7317,11 @@ class V8_EXPORT Isolate { kDateToLocaleString = 66, kDateToLocaleDateString = 67, kDateToLocaleTimeString = 68, + kAttemptOverrideReadOnlyOnPrototypeSloppy = 69, + kAttemptOverrideReadOnlyOnPrototypeStrict = 70, + kOptimizedFunctionWithOneShotBytecode = 71, + kRegExpMatchIsTrueishOnNonJSRegExp = 72, + kRegExpMatchIsFalseishOnJSRegExp = 73, // If you add new values here, you'll also need to update Chromium's: // web_feature.mojom, UseCounterCallback.cpp, and enums.xml. V8 changes to @@ -7662,7 +7597,8 @@ class V8_EXPORT Isolate { Local GetCurrentContext(); /** Returns the last context entered through V8's C++ API. */ - Local GetEnteredContext(); + V8_DEPRECATED("Use GetEnteredOrMicrotaskContext().", + Local GetEnteredContext()); /** * Returns either the last context entered through V8's C++ API, or the @@ -7788,7 +7724,7 @@ class V8_EXPORT Isolate { */ typedef void (*AtomicsWaitCallback)(AtomicsWaitEvent event, Local array_buffer, - size_t offset_in_bytes, int32_t value, + size_t offset_in_bytes, int64_t value, double timeout_in_ms, AtomicsWaitWakeHandle* stop_handle, void* data); @@ -8137,13 +8073,9 @@ class V8_EXPORT Isolate { void GetCodeRange(void** start, size_t* length_in_bytes); /** - * Returns a memory range containing the code for V8's embedded functions - * (e.g. builtins) which are shared across isolates. - * - * If embedded builtins are disabled, then the memory range will be a null - * pointer with 0 length. + * Returns the UnwindState necessary for use with the Unwinder API. */ - MemoryRange GetEmbeddedCodeRange(); + UnwindState GetUnwindState(); /** Set the callback to invoke in case of fatal errors. */ void SetFatalErrorHandler(FatalErrorCallback that); @@ -8189,7 +8121,9 @@ class V8_EXPORT Isolate { void SetWasmModuleCallback(ExtensionCallback callback); void SetWasmInstanceCallback(ExtensionCallback callback); - void SetWasmCompileStreamingCallback(ApiImplementationCallback callback); + V8_DEPRECATE_SOON( + "The callback set in SetWasmStreamingCallback is used now", + void SetWasmCompileStreamingCallback(ApiImplementationCallback callback)); void SetWasmStreamingCallback(WasmStreamingCallback callback); @@ -8301,7 +8235,7 @@ class V8_EXPORT Isolate { template friend class PersistentValueMapBase; - internal::Object** GetDataFromSnapshotOnce(size_t index); + internal::Address* GetDataFromSnapshotOnce(size_t index); void ReportExternalAllocationLimitReached(); void CheckMemoryPressure(); }; @@ -8483,15 +8417,17 @@ class V8_EXPORT V8 { * \param context The third argument passed to the Linux signal handler, which * points to a ucontext_t structure. */ - static bool TryHandleSignal(int signal_number, void* info, void* context); + V8_DEPRECATE_SOON("Use TryHandleWebAssemblyTrapPosix", + static bool TryHandleSignal(int signal_number, void* info, + void* context)); #endif // V8_OS_POSIX /** * Enable the default signal handler rather than using one provided by the * embedder. */ - V8_DEPRECATE_SOON("Use EnableWebAssemblyTrapHandler", - static bool RegisterDefaultSignalHandler()); + V8_DEPRECATED("Use EnableWebAssemblyTrapHandler", + static bool RegisterDefaultSignalHandler()); /** * Activate trap-based bounds checking for WebAssembly. @@ -8504,26 +8440,20 @@ class V8_EXPORT V8 { private: V8(); - static internal::Object** GlobalizeReference(internal::Isolate* isolate, - internal::Object** handle); - static internal::Object** CopyPersistent(internal::Object** handle); - static void DisposeGlobal(internal::Object** global_handle); - static void MakeWeak(internal::Object** location, void* data, + static internal::Address* GlobalizeReference(internal::Isolate* isolate, + internal::Address* handle); + static internal::Address* CopyPersistent(internal::Address* handle); + static void DisposeGlobal(internal::Address* global_handle); + static void MakeWeak(internal::Address* location, void* data, WeakCallbackInfo::Callback weak_callback, WeakCallbackType type); - static void MakeWeak(internal::Object** location, void* data, - // Must be 0 or -1. - int internal_field_index1, - // Must be 1 or -1. - int internal_field_index2, - WeakCallbackInfo::Callback weak_callback); - static void MakeWeak(internal::Object*** location_addr); - static void* ClearWeak(internal::Object** location); - static void AnnotateStrongRetainer(internal::Object** location, + static void MakeWeak(internal::Address** location_addr); + static void* ClearWeak(internal::Address* location); + static void AnnotateStrongRetainer(internal::Address* location, const char* label); static Value* Eternalize(Isolate* isolate, Value* handle); - static void RegisterExternallyReferencedObject(internal::Object** object, + static void RegisterExternallyReferencedObject(internal::Address* location, internal::Isolate* isolate); template @@ -8644,8 +8574,8 @@ class V8_EXPORT SnapshotCreator { void operator=(const SnapshotCreator&) = delete; private: - size_t AddData(Local context, internal::Object* object); - size_t AddData(internal::Object* object); + size_t AddData(Local context, internal::Address object); + size_t AddData(internal::Address object); void* data_; }; @@ -9166,7 +9096,7 @@ class V8_EXPORT Context { * stack. * https://html.spec.whatwg.org/multipage/webappapis.html#backup-incumbent-settings-object-stack */ - class V8_EXPORT BackupIncumbentScope { + class V8_EXPORT BackupIncumbentScope final { public: /** * |backup_incumbent_context| is pushed onto the backup incumbent settings @@ -9175,10 +9105,20 @@ class V8_EXPORT Context { explicit BackupIncumbentScope(Local backup_incumbent_context); ~BackupIncumbentScope(); + /** + * Returns address that is comparable with JS stack address. Note that JS + * stack may be allocated separately from the native stack. See also + * |TryCatch::JSStackComparableAddress| for details. + */ + uintptr_t JSStackComparableAddress() const { + return js_stack_comparable_address_; + } + private: friend class internal::Isolate; Local backup_incumbent_context_; + uintptr_t js_stack_comparable_address_ = 0; const BackupIncumbentScope* prev_ = nullptr; }; @@ -9188,7 +9128,7 @@ class V8_EXPORT Context { friend class Object; friend class Function; - internal::Object** GetDataFromSnapshotOnce(size_t index); + internal::Address* GetDataFromSnapshotOnce(size_t index); Local SlowGetEmbedderData(int index); void* SlowGetAlignedPointerFromEmbedderData(int index); }; @@ -9317,6 +9257,55 @@ class V8_EXPORT Locker { internal::Isolate* isolate_; }; +/** + * Various helpers for skipping over V8 frames in a given stack. + * + * The unwinder API is only supported on the x64 architecture. + */ +class V8_EXPORT Unwinder { + public: + /** + * Attempt to unwind the stack to the most recent C++ frame. This function is + * signal-safe and does not access any V8 state and thus doesn't require an + * Isolate. + * + * The unwinder needs to know the location of the JS Entry Stub (a piece of + * code that is run when C++ code calls into generated JS code). This is used + * for edge cases where the current frame is being constructed or torn down + * when the stack sample occurs. + * + * The unwinder also needs the virtual memory range of all possible V8 code + * objects. There are two ranges required - the heap code range and the range + * for code embedded in the binary. The V8 API provides all required inputs + * via an UnwindState object through the Isolate::GetUnwindState() API. These + * values will not change after Isolate initialization, so the same + * |unwind_state| can be used for multiple calls. + * + * \param unwind_state Input state for the Isolate that the stack comes from. + * \param register_state The current registers. This is an in-out param that + * will be overwritten with the register values after unwinding, on success. + * \param stack_base The resulting stack pointer and frame pointer values are + * bounds-checked against the stack_base and the original stack pointer value + * to ensure that they are valid locations in the given stack. If these values + * or any intermediate frame pointer values used during unwinding are ever out + * of these bounds, unwinding will fail. + * + * \return True on success. + */ + static bool TryUnwindV8Frames(const UnwindState& unwind_state, + RegisterState* register_state, + const void* stack_base); + + /** + * Whether the PC is within the V8 code range represented by code_range or + * embedded_code_range in |unwind_state|. + * + * If this returns false, then calling UnwindV8Frames() with the same PC + * and unwind_state will always fail. If it returns true, then unwinding may + * (but not necessarily) be successful. + */ + static bool PCIsInV8(const UnwindState& unwind_state, void* pc); +}; // --- Implementation --- @@ -9335,7 +9324,7 @@ template Local Local::New(Isolate* isolate, T* that) { if (that == nullptr) return Local(); T* that_ptr = that; - internal::Object** p = reinterpret_cast(that_ptr); + internal::Address* p = reinterpret_cast(that_ptr); return Local(reinterpret_cast(HandleScope::CreateHandle( reinterpret_cast(isolate), *p))); } @@ -9378,7 +9367,7 @@ void* WeakCallbackInfo::GetInternalField(int index) const { template T* PersistentBase::New(Isolate* isolate, T* that) { if (that == nullptr) return nullptr; - internal::Object** p = reinterpret_cast(that); + internal::Address* p = reinterpret_cast(that); return reinterpret_cast( V8::GlobalizeReference(reinterpret_cast(isolate), p)); @@ -9391,7 +9380,7 @@ void Persistent::Copy(const Persistent& that) { TYPE_CHECK(T, S); this->Reset(); if (that.IsEmpty()) return; - internal::Object** p = reinterpret_cast(that.val_); + internal::Address* p = reinterpret_cast(that.val_); this->val_ = reinterpret_cast(V8::CopyPersistent(p)); M::Copy(that, this); } @@ -9400,7 +9389,7 @@ template bool PersistentBase::IsIndependent() const { typedef internal::Internals I; if (this->IsEmpty()) return false; - return I::GetNodeFlag(reinterpret_cast(this->val_), + return I::GetNodeFlag(reinterpret_cast(this->val_), I::kNodeIsIndependentShift); } @@ -9409,7 +9398,7 @@ bool PersistentBase::IsNearDeath() const { typedef internal::Internals I; if (this->IsEmpty()) return false; uint8_t node_state = - I::GetNodeState(reinterpret_cast(this->val_)); + I::GetNodeState(reinterpret_cast(this->val_)); return node_state == I::kNodeStateIsNearDeathValue || node_state == I::kNodeStateIsPendingValue; } @@ -9419,15 +9408,15 @@ template bool PersistentBase::IsWeak() const { typedef internal::Internals I; if (this->IsEmpty()) return false; - return I::GetNodeState(reinterpret_cast(this->val_)) == - I::kNodeStateIsWeakValue; + return I::GetNodeState(reinterpret_cast(this->val_)) == + I::kNodeStateIsWeakValue; } template void PersistentBase::Reset() { if (this->IsEmpty()) return; - V8::DisposeGlobal(reinterpret_cast(this->val_)); + V8::DisposeGlobal(reinterpret_cast(this->val_)); val_ = nullptr; } @@ -9459,25 +9448,25 @@ V8_INLINE void PersistentBase::SetWeak( P* parameter, typename WeakCallbackInfo

::Callback callback, WeakCallbackType type) { typedef typename WeakCallbackInfo::Callback Callback; - V8::MakeWeak(reinterpret_cast(this->val_), parameter, + V8::MakeWeak(reinterpret_cast(this->val_), parameter, reinterpret_cast(callback), type); } template void PersistentBase::SetWeak() { - V8::MakeWeak(reinterpret_cast(&this->val_)); + V8::MakeWeak(reinterpret_cast(&this->val_)); } template template P* PersistentBase::ClearWeak() { return reinterpret_cast( - V8::ClearWeak(reinterpret_cast(this->val_))); + V8::ClearWeak(reinterpret_cast(this->val_))); } template void PersistentBase::AnnotateStrongRetainer(const char* label) { - V8::AnnotateStrongRetainer(reinterpret_cast(this->val_), + V8::AnnotateStrongRetainer(reinterpret_cast(this->val_), label); } @@ -9485,7 +9474,7 @@ template void PersistentBase::RegisterExternalReference(Isolate* isolate) const { if (IsEmpty()) return; V8::RegisterExternallyReferencedObject( - reinterpret_cast(this->val_), + reinterpret_cast(this->val_), reinterpret_cast(isolate)); } @@ -9493,7 +9482,7 @@ template void PersistentBase::MarkIndependent() { typedef internal::Internals I; if (this->IsEmpty()) return; - I::UpdateNodeFlag(reinterpret_cast(this->val_), true, + I::UpdateNodeFlag(reinterpret_cast(this->val_), true, I::kNodeIsIndependentShift); } @@ -9501,7 +9490,7 @@ template void PersistentBase::MarkActive() { typedef internal::Internals I; if (this->IsEmpty()) return; - I::UpdateNodeFlag(reinterpret_cast(this->val_), true, + I::UpdateNodeFlag(reinterpret_cast(this->val_), true, I::kNodeIsActiveShift); } @@ -9510,7 +9499,7 @@ template void PersistentBase::SetWrapperClassId(uint16_t class_id) { typedef internal::Internals I; if (this->IsEmpty()) return; - internal::Object** obj = reinterpret_cast(this->val_); + internal::Address* obj = reinterpret_cast(this->val_); uint8_t* addr = reinterpret_cast(obj) + I::kNodeClassIdOffset; *reinterpret_cast(addr) = class_id; } @@ -9520,14 +9509,13 @@ template uint16_t PersistentBase::WrapperClassId() const { typedef internal::Internals I; if (this->IsEmpty()) return 0; - internal::Object** obj = reinterpret_cast(this->val_); + internal::Address* obj = reinterpret_cast(this->val_); uint8_t* addr = reinterpret_cast(obj) + I::kNodeClassIdOffset; return *reinterpret_cast(addr); } - -template -ReturnValue::ReturnValue(internal::Object** slot) : value_(slot) {} +template +ReturnValue::ReturnValue(internal::Address* slot) : value_(slot) {} template template @@ -9536,7 +9524,7 @@ void ReturnValue::Set(const Persistent& handle) { if (V8_UNLIKELY(handle.IsEmpty())) { *value_ = GetDefaultValue(); } else { - *value_ = *reinterpret_cast(*handle); + *value_ = *reinterpret_cast(*handle); } } @@ -9547,7 +9535,7 @@ void ReturnValue::Set(const Global& handle) { if (V8_UNLIKELY(handle.IsEmpty())) { *value_ = GetDefaultValue(); } else { - *value_ = *reinterpret_cast(*handle); + *value_ = *reinterpret_cast(*handle); } } @@ -9558,7 +9546,7 @@ void ReturnValue::Set(const Local handle) { if (V8_UNLIKELY(handle.IsEmpty())) { *value_ = GetDefaultValue(); } else { - *value_ = *reinterpret_cast(*handle); + *value_ = *reinterpret_cast(*handle); } } @@ -9646,15 +9634,15 @@ void ReturnValue::Set(S* whatever) { TYPE_CHECK(S*, Primitive); } -template -internal::Object* ReturnValue::GetDefaultValue() { +template +internal::Address ReturnValue::GetDefaultValue() { // Default value is always the pointer below value_ on the stack. return value_[-1]; } template -FunctionCallbackInfo::FunctionCallbackInfo(internal::Object** implicit_args, - internal::Object** values, +FunctionCallbackInfo::FunctionCallbackInfo(internal::Address* implicit_args, + internal::Address* values, int length) : implicit_args_(implicit_args), values_(values), length_(length) {} @@ -9823,19 +9811,19 @@ AccessorSignature* AccessorSignature::Cast(Data* data) { } Local Object::GetInternalField(int index) { -#ifndef V8_ENABLE_CHECKS - typedef internal::Object O; +#if !defined(V8_ENABLE_CHECKS) && !defined(V8_COMPRESS_POINTERS) + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); // Fast path: If the object is a plain JSObject, which is the common case, we // 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::kJSSpecialApiObjectType) { - int offset = I::kJSObjectHeaderSize + (internal::kApiPointerSize * index); - O* value = I::ReadField(obj, offset); - O** result = HandleScope::CreateHandle( + int offset = I::kJSObjectHeaderSize + (I::kEmbedderDataSlotSize * index); + A value = I::ReadField(obj, offset); + A* result = HandleScope::CreateHandle( reinterpret_cast(obj), value); return Local(reinterpret_cast(result)); } @@ -9845,17 +9833,17 @@ Local Object::GetInternalField(int index) { void* Object::GetAlignedPointerFromInternalField(int index) { -#ifndef V8_ENABLE_CHECKS - typedef internal::Object O; +#if !defined(V8_ENABLE_CHECKS) && !defined(V8_COMPRESS_POINTERS) + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); // Fast path: If the object is a plain JSObject, which is the common case, we // 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::kJSSpecialApiObjectType)) { - int offset = I::kJSObjectHeaderSize + (internal::kApiPointerSize * index); + int offset = I::kJSObjectHeaderSize + (I::kEmbedderDataSlotSize * index); return I::ReadField(obj, offset); } #endif @@ -9871,7 +9859,7 @@ String* String::Cast(v8::Value* value) { Local String::Empty(Isolate* isolate) { - typedef internal::Object* S; + typedef internal::Address S; typedef internal::Internals I; I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kEmptyStringRootIndex); @@ -9880,9 +9868,9 @@ Local String::Empty(Isolate* isolate) { String::ExternalStringResource* String::GetExternalStringResource() const { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); ExternalStringResource* result; if (I::IsExternalTwoByteString(I::GetInstanceType(obj))) { @@ -9900,9 +9888,9 @@ String::ExternalStringResource* String::GetExternalStringResource() const { String::ExternalStringResourceBase* String::GetExternalStringResourceBase( String::Encoding* encoding_out) const { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); int type = I::GetInstanceType(obj) & I::kFullStringRepresentationMask; *encoding_out = static_cast(type & I::kStringEncodingMask); ExternalStringResourceBase* resource; @@ -9929,9 +9917,9 @@ bool Value::IsUndefined() const { } bool Value::QuickIsUndefined() const { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); if (!I::HasHeapObjectTag(obj)) return false; if (I::GetInstanceType(obj) != I::kOddballType) return false; return (I::GetOddballKind(obj) == I::kUndefinedOddballKind); @@ -9947,9 +9935,9 @@ bool Value::IsNull() const { } bool Value::QuickIsNull() const { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); if (!I::HasHeapObjectTag(obj)) return false; if (I::GetInstanceType(obj) != I::kOddballType) return false; return (I::GetOddballKind(obj) == I::kNullOddballKind); @@ -9964,9 +9952,9 @@ bool Value::IsNullOrUndefined() const { } bool Value::QuickIsNullOrUndefined() const { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); if (!I::HasHeapObjectTag(obj)) return false; if (I::GetInstanceType(obj) != I::kOddballType) return false; int kind = I::GetOddballKind(obj); @@ -9982,9 +9970,9 @@ bool Value::IsString() const { } bool Value::QuickIsString() const { - typedef internal::Object O; + typedef internal::Address A; typedef internal::Internals I; - O* obj = *reinterpret_cast(this); + A obj = *reinterpret_cast(this); if (!I::HasHeapObjectTag(obj)) return false; return (I::GetInstanceType(obj) < I::kFirstNonstringType); } @@ -10166,11 +10154,11 @@ Proxy* Proxy::Cast(v8::Value* value) { return static_cast(value); } -WasmCompiledModule* WasmCompiledModule::Cast(v8::Value* value) { +WasmModuleObject* WasmModuleObject::Cast(v8::Value* value) { #ifdef V8_ENABLE_CHECKS CheckCast(value); #endif - return static_cast(value); + return static_cast(value); } Promise::Resolver* Promise::Resolver::Cast(v8::Value* value) { @@ -10359,7 +10347,7 @@ bool PropertyCallbackInfo::ShouldThrowOnError() const { Local Undefined(Isolate* isolate) { - typedef internal::Object* S; + typedef internal::Address S; typedef internal::Internals I; I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kUndefinedValueRootIndex); @@ -10368,7 +10356,7 @@ Local Undefined(Isolate* isolate) { Local Null(Isolate* isolate) { - typedef internal::Object* S; + typedef internal::Address S; typedef internal::Internals I; I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kNullValueRootIndex); @@ -10377,7 +10365,7 @@ Local Null(Isolate* isolate) { Local True(Isolate* isolate) { - typedef internal::Object* S; + typedef internal::Address S; typedef internal::Internals I; I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kTrueValueRootIndex); @@ -10386,7 +10374,7 @@ Local True(Isolate* isolate) { Local False(Isolate* isolate) { - typedef internal::Object* S; + typedef internal::Address S; typedef internal::Internals I; I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kFalseValueRootIndex); @@ -10421,7 +10409,7 @@ MaybeLocal Isolate::GetDataFromSnapshotOnce(size_t index) { int64_t Isolate::AdjustAmountOfExternalAllocatedMemory( int64_t change_in_bytes) { typedef internal::Internals I; - const int64_t kMemoryReducerActivationLimit = 32 * 1024 * 1024; + constexpr int64_t kMemoryReducerActivationLimit = 32 * 1024 * 1024; int64_t* external_memory = reinterpret_cast( reinterpret_cast(this) + I::kExternalMemoryOffset); int64_t* external_memory_limit = reinterpret_cast( @@ -10429,15 +10417,14 @@ int64_t Isolate::AdjustAmountOfExternalAllocatedMemory( int64_t* external_memory_at_last_mc = reinterpret_cast(reinterpret_cast(this) + I::kExternalMemoryAtLastMarkCompactOffset); - const int64_t amount = *external_memory + change_in_bytes; + const int64_t amount = *external_memory + change_in_bytes; *external_memory = amount; int64_t allocation_diff_since_last_mc = - *external_memory_at_last_mc - *external_memory; - allocation_diff_since_last_mc = allocation_diff_since_last_mc < 0 - ? -allocation_diff_since_last_mc - : allocation_diff_since_last_mc; + *external_memory - *external_memory_at_last_mc; + // Only check memory pressure and potentially trigger GC if the amount of + // external memory increased. if (allocation_diff_since_last_mc > kMemoryReducerActivationLimit) { CheckMemoryPressure(); } @@ -10453,12 +10440,12 @@ int64_t Isolate::AdjustAmountOfExternalAllocatedMemory( } Local Context::GetEmbedderData(int index) { -#ifndef V8_ENABLE_CHECKS - typedef internal::Object O; +#if !defined(V8_ENABLE_CHECKS) && !defined(V8_COMPRESS_POINTERS) + typedef internal::Address A; typedef internal::Internals I; auto* context = *reinterpret_cast(this); - O** result = - HandleScope::CreateHandle(context, I::ReadEmbedderData(this, index)); + A* result = + HandleScope::CreateHandle(context, I::ReadEmbedderData(this, index)); return Local(reinterpret_cast(result)); #else return SlowGetEmbedderData(index); @@ -10467,7 +10454,7 @@ Local Context::GetEmbedderData(int index) { void* Context::GetAlignedPointerFromEmbedderData(int index) { -#ifndef V8_ENABLE_CHECKS +#if !defined(V8_ENABLE_CHECKS) && !defined(V8_COMPRESS_POINTERS) typedef internal::Internals I; return I::ReadEmbedderData(this, index); #else @@ -10485,14 +10472,14 @@ MaybeLocal Context::GetDataFromSnapshotOnce(size_t index) { template size_t SnapshotCreator::AddData(Local context, Local object) { T* object_ptr = *object; - internal::Object** p = reinterpret_cast(object_ptr); + internal::Address* p = reinterpret_cast(object_ptr); return AddData(context, *p); } template size_t SnapshotCreator::AddData(Local object) { T* object_ptr = *object; - internal::Object** p = reinterpret_cast(object_ptr); + internal::Address* p = reinterpret_cast(object_ptr); return AddData(*p); } diff --git a/deps/v8/include/v8config.h b/deps/v8/include/v8config.h index 93c4629825b..1841bdbcae8 100644 --- a/deps/v8/include/v8config.h +++ b/deps/v8/include/v8config.h @@ -236,6 +236,10 @@ # define V8_HAS_CXX11_ALIGNAS (__has_feature(cxx_alignas)) +# if __cplusplus >= 201402L +# define V8_CAN_HAVE_DCHECK_IN_CONSTEXPR 1 +# endif + #elif defined(__GNUC__) # define V8_CC_GNU 1 diff --git a/deps/v8/infra/config/cq.cfg b/deps/v8/infra/config/cq.cfg index 53ea0cdd441..cdd6cd3fa06 100644 --- a/deps/v8/infra/config/cq.cfg +++ b/deps/v8/infra/config/cq.cfg @@ -42,10 +42,13 @@ verifiers { name: "v8_linux64_rel_ng_triggered" triggered_by: "v8_linux64_rel_ng" } + # TODO(machenbach): Figure out if bot should be removed or if + # functionality should be revived. builders { name: "v8_linux64_sanitizer_coverage_rel" - experiment_percentage: 100 + experiment_percentage: 10 } + builders { name: "v8_linux64_shared_compile_rel" } builders { name: "v8_linux64_verify_csa_rel_ng" } builders { name: "v8_linux64_verify_csa_rel_ng_triggered" @@ -77,7 +80,6 @@ verifiers { name: "v8_linux_rel_ng_triggered" triggered_by: "v8_linux_rel_ng" } - builders { name: "v8_linux_shared_compile_rel" } builders { name: "v8_linux_verify_csa_rel_ng" } builders { name: "v8_linux_verify_csa_rel_ng_triggered" @@ -89,7 +91,10 @@ verifiers { triggered_by: "v8_mac64_rel_ng" } builders { name: "v8_node_linux64_rel" } - builders { name: "v8_presubmit" } + builders { + name: "v8_presubmit" + disable_reuse: true + } builders { name: "v8_win64_msvc_compile_rel" } builders { name: "v8_win64_rel_ng" } builders { @@ -107,21 +112,43 @@ verifiers { name: "v8_win_rel_ng_triggered" triggered_by: "v8_win_rel_ng" } + builders { + name: "v8_linux_noi18n_rel_ng" + path_regexp: ".*intl.*" + path_regexp: ".*test262.*" + } } - # TODO(machenbach): Remove after testing in practice and migrate to - # PRESUBMIT.py scripts. + buckets { name: "luci.chromium.try" builders { - name: "cast_shell_android" - experiment_percentage: 20 + name: "linux_chromium_rel_ng" + path_regexp: "include/.+\\.h" + path_regexp: "src/api\\.cc" } builders { - name: "cast_shell_linux" + name: "linux_chromium_headless_rel" + path_regexp: "src/inspector/.+" + path_regexp: "test/inspector/.+" + } + builders { + name: "linux-blink-rel" + path_regexp: "src/inspector/.+" + path_regexp: "test/inspector/.+" + } + # TODO(machenbach): Uncomment path_regexp after testing, as currently, + # path_regexp can not be combined with experiment_percentage. See more + # details at crbug.com/v8/8058. + builders { + name: "cast_shell_android" + #path_regexp: "include/.+\\.h" + #path_regexp: "src/api\\.cc" experiment_percentage: 20 } builders { - name: "linux-chromeos-rel" + name: "cast_shell_linux" + #path_regexp: "include/.+\\.h" + #path_regexp: "src/api\\.cc" experiment_percentage: 20 } } diff --git a/deps/v8/infra/mb/mb_config.pyl b/deps/v8/infra/mb/mb_config.pyl index 124524c552f..9b9b01581af 100644 --- a/deps/v8/infra/mb/mb_config.pyl +++ b/deps/v8/infra/mb/mb_config.pyl @@ -62,6 +62,7 @@ 'V8 Linux64 - custom snapshot - debug builder': 'debug_x64_custom', 'V8 Linux64 - internal snapshot': 'release_x64_internal', 'V8 Linux64 - debug - header includes': 'debug_x64_header_includes', + 'V8 Linux64 - shared': 'release_x64_shared_verify_heap', 'V8 Linux64 - verify csa': 'release_x64_verify_csa', # Jumbo. 'V8 Linux64 Jumbo': 'release_x64_jumbo', @@ -91,8 +92,9 @@ 'V8 Linux gcc 4.8': 'release_x86_gcc', 'V8 Linux64 gcc 4.8 - debug': 'debug_x64_gcc', # FYI. - 'V8 Linux - embedded builtins': 'release_x86_embedded_builtins', - 'V8 Linux - embedded builtins - debug': 'debug_x86_embedded_builtins', + 'V8 Linux64 - pointer compression': 'release_x64_pointer_compression', + 'V8 Linux - noembed': 'release_x86_noembed', + 'V8 Linux - noembed - debug': 'debug_x86_noembed', 'V8 Fuchsia': 'release_x64_fuchsia', 'V8 Fuchsia - debug': 'debug_x64_fuchsia', 'V8 Linux64 - cfi': 'release_x64_cfi', @@ -120,8 +122,6 @@ 'V8 Clusterfuzz Linux64 - release builder': 'release_x64_correctness_fuzzer', 'V8 Clusterfuzz Linux64 - debug builder': 'debug_x64', - 'V8 Clusterfuzz Linux64 - nosnap release builder': 'release_x64_no_snap', - 'V8 Clusterfuzz Linux64 - nosnap debug builder': 'debug_x64_no_snap', 'V8 Clusterfuzz Linux64 ASAN no inline - release builder': 'release_x64_asan_symbolized_edge_verify_heap', 'V8 Clusterfuzz Linux64 ASAN - debug builder': 'debug_x64_asan_edge', @@ -146,6 +146,8 @@ 'V8 Android Arm - builder': 'release_android_arm', 'V8 Linux - arm - sim': 'release_simulate_arm', 'V8 Linux - arm - sim - debug': 'debug_simulate_arm', + 'V8 Linux - arm - sim - lite': 'release_simulate_arm_lite', + 'V8 Linux - arm - sim - lite - debug': 'debug_simulate_arm_lite', # Arm64. 'V8 Android Arm64 - builder': 'release_android_arm64', 'V8 Android Arm64 - debug builder': 'debug_android_arm64', @@ -189,7 +191,7 @@ 'v8_android_arm64_compile_dbg': 'debug_android_arm64', 'v8_android_arm64_n5x_rel_ng': 'release_android_arm64', 'v8_fuchsia_rel_ng': 'release_x64_fuchsia_trybot', - 'v8_linux_embedded_builtins_rel_ng': 'release_x86_embedded_builtins_trybot', + 'v8_linux_noembed_rel_ng': 'release_x86_noembed_trybot', 'v8_linux_rel_ng': 'release_x86_gcmole_trybot', 'v8_linux_optional_rel_ng': 'release_x86_trybot', 'v8_linux_verify_csa_rel_ng': 'release_x86_verify_csa', @@ -207,7 +209,9 @@ 'v8_linux64_gcc_compile_dbg': 'debug_x64_gcc', 'v8_linux64_header_includes_dbg': 'debug_x64_header_includes', 'v8_linux64_fyi_rel_ng': 'release_x64_test_features_trybot', + 'v8_linux64_pointer_compression_rel_ng': 'release_x64_pointer_compression', 'v8_linux64_rel_ng': 'release_x64_test_features_trybot', + 'v8_linux64_shared_compile_rel': 'release_x64_shared_verify_heap', 'v8_linux64_verify_csa_rel_ng': 'release_x64_verify_csa', 'v8_linux64_asan_rel_ng': 'release_x64_asan_minimal_symbols', 'v8_linux64_cfi_rel_ng': 'release_x64_cfi', @@ -239,6 +243,7 @@ 'v8_mac64_asan_rel': 'release_x64_asan_no_lsan', 'v8_mips_compile_rel': 'release_mips_no_snap_no_i18n', 'v8_linux_arm_rel_ng': 'release_simulate_arm_trybot', + 'v8_linux_arm_lite_rel_ng': 'release_simulate_arm_lite_trybot', 'v8_linux_arm_dbg': 'debug_simulate_arm', 'v8_linux_arm_armv8a_rel': 'release_simulate_arm_trybot', 'v8_linux_arm_armv8a_dbg': 'debug_simulate_arm', @@ -330,6 +335,8 @@ 'debug_bot', 'simulate_arm'], 'debug_simulate_arm_asan_edge': [ 'debug_bot', 'simulate_arm', 'asan', 'edge'], + 'debug_simulate_arm_lite': [ + 'debug_bot', 'simulate_arm', 'v8_enable_lite_mode'], 'debug_simulate_arm64': [ 'debug_bot', 'simulate_arm64'], 'debug_simulate_arm64_asan_edge': [ @@ -341,8 +348,12 @@ # Release configs for simulators. 'release_simulate_arm': [ 'release_bot', 'simulate_arm'], + 'release_simulate_arm_lite': [ + 'release_bot', 'simulate_arm', 'v8_enable_lite_mode'], 'release_simulate_arm_trybot': [ 'release_trybot', 'simulate_arm'], + 'release_simulate_arm_lite_trybot': [ + 'release_trybot', 'simulate_arm', 'v8_enable_lite_mode'], 'release_simulate_arm64': [ 'release_bot', 'simulate_arm64'], 'release_simulate_arm64_msan': [ @@ -427,8 +438,9 @@ 'release_trybot', 'x64', 'jumbo_limited'], 'release_x64_minimal_symbols': [ 'release_bot', 'x64', 'minimal_symbols'], - 'release_x64_no_snap': [ - 'release_bot', 'x64', 'v8_snapshot_none'], + 'release_x64_pointer_compression': [ + 'release_bot', 'x64', 'dcheck_always_on', 'v8_enable_slow_dchecks', + 'v8_enable_pointer_compression'], 'release_x64_trybot': [ 'release_trybot', 'x64'], 'release_x64_test_features_trybot': [ @@ -445,6 +457,8 @@ 'release_bot', 'x64', 'edge', 'ubsan_vptr_recover'], 'release_x64_ubsan_vptr_minimal_symbols': [ 'release_bot', 'x64', 'ubsan_vptr', 'minimal_symbols'], + 'release_x64_shared_verify_heap': [ + 'release_bot', 'x64', 'shared', 'v8_verify_heap'], 'release_x64_verify_csa': [ 'release_bot', 'x64', 'dcheck_always_on', 'v8_enable_slow_dchecks', 'v8_verify_csa'], @@ -471,17 +485,14 @@ 'debug_bot', 'x64', 'jumbo_limited'], 'debug_x64_minimal_symbols': [ 'debug_bot', 'x64', 'minimal_symbols'], - 'debug_x64_no_snap': [ - 'debug_bot', 'x64', 'v8_snapshot_none'], 'debug_x64_trybot': [ 'debug_trybot', 'x64'], # Debug configs for x86. 'debug_x86': [ 'debug_bot', 'x86'], - 'debug_x86_embedded_builtins': [ - 'debug_bot', 'x86', 'v8_enable_embedded_builtins', - 'v8_no_untrusted_code_mitigations'], + 'debug_x86_noembed': [ + 'debug_bot', 'x86', 'v8_no_enable_embedded_builtins'], 'debug_x86_minimal_symbols': [ 'debug_bot', 'x86', 'minimal_symbols'], 'debug_x86_no_i18n': [ @@ -501,12 +512,10 @@ # Release configs for x86. 'release_x86': [ 'release_bot', 'x86'], - 'release_x86_embedded_builtins': [ - 'release_bot', 'x86', 'v8_enable_embedded_builtins', - 'v8_no_untrusted_code_mitigations'], - 'release_x86_embedded_builtins_trybot': [ - 'release_trybot', 'x86', 'v8_enable_embedded_builtins', - 'v8_no_untrusted_code_mitigations'], + 'release_x86_noembed': [ + 'release_bot', 'x86', 'v8_no_enable_embedded_builtins'], + 'release_x86_noembed_trybot': [ + 'release_trybot', 'x86', 'v8_no_enable_embedded_builtins'], 'release_x86_gcc': [ 'release_bot', 'x86', 'gcc'], 'release_x86_gcc_minimal_symbols': [ @@ -656,7 +665,10 @@ }, 'mips_bundled_toolchain': { - 'gn_args': 'custom_toolchain="//tools/toolchain:mips-bundled"', + 'gn_args': 'custom_toolchain="tools/toolchain:mips-bundled" ' + 'ldso_path="tools/mips_toolchain/sysroot/usr/lib/ld.so.1" ' + 'gcc_target_rpath="tools/mips_toolchain/sysroot/usr/lib:' + 'tools/mips_toolchain/mips-mti-linux-gnu/lib:\$ORIGIN/."', }, 'msan': { @@ -769,14 +781,22 @@ 'gn_args': 'v8_correctness_fuzzer=true v8_multi_arch_build=true', }, - 'v8_enable_embedded_builtins': { - 'gn_args': 'v8_enable_embedded_builtins=true', + 'v8_no_enable_embedded_builtins': { + 'gn_args': 'v8_enable_embedded_builtins=false', + }, + + 'v8_enable_lite_mode': { + 'gn_args': 'v8_enable_lite_mode=true', }, 'v8_enable_slow_dchecks': { 'gn_args': 'v8_enable_slow_dchecks=true', }, + 'v8_enable_pointer_compression': { + 'gn_args': 'v8_enable_pointer_compression=true', + }, + 'v8_enable_test_features': { 'gn_args': 'v8_enable_test_features=true', }, @@ -818,10 +838,6 @@ 'gn_args': 'v8_use_snapshot=false', }, - 'v8_no_untrusted_code_mitigations': { - 'gn_args': 'v8_untrusted_code_mitigations=false', - }, - 'v8_verify_heap': { 'gn_args': 'v8_enable_verify_heap=true', }, diff --git a/deps/v8/infra/testing/builders.pyl b/deps/v8/infra/testing/builders.pyl index 31aef9c3214..3e2250c7a95 100644 --- a/deps/v8/infra/testing/builders.pyl +++ b/deps/v8/infra/testing/builders.pyl @@ -127,7 +127,7 @@ {'name': 'mozilla', 'variant': 'extra'}, {'name': 'optimize_for_size'}, {'name': 'test262_variants', 'shards': 4}, - {'name': 'test262_variants', 'variant': 'extra', 'shards': 2}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 3}, {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'suffix': 'isolates', 'test_args': ['--isolates'], 'shards': 2}, {'name': 'v8testing', 'variant': 'extra'}, @@ -270,6 +270,11 @@ {'name': 'v8testing', 'shards': 5}, ], }, + 'v8_linux64_pointer_compression_rel_ng_triggered': { + 'tests': [ + {'name': 'v8testing', 'shards': 3}, + ], + }, 'v8_linux64_rel_ng_triggered': { 'swarming_dimensions' : { 'cpu': 'x86-64-avx2', @@ -280,7 +285,7 @@ {'name': 'mjsunit_sp_frame_access'}, {'name': 'optimize_for_size'}, {'name': 'test262_variants', 'shards': 4}, - {'name': 'test262_variants', 'variant': 'extra', 'shards': 2}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 3}, {'name': 'v8initializers'}, {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'variant': 'extra'}, @@ -299,6 +304,11 @@ {'name': 'v8testing', 'shards': 2}, ], }, + 'v8_linux64_sanitizer_coverage_rel': { + 'tests': [ + {'name': 'v8testing', 'shards': 3}, + ], + }, 'v8_linux64_tsan_rel': { 'tests': [ {'name': 'benchmarks'}, @@ -329,10 +339,10 @@ 'v8_linux_arm64_dbg': { 'tests': [ {'name': 'mjsunit_sp_frame_access'}, - {'name': 'mozilla'}, - {'name': 'test262'}, - {'name': 'v8testing', 'shards': 7}, - {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, + {'name': 'mozilla', 'shards': 2}, + {'name': 'test262', 'shards': 2}, + {'name': 'v8testing', 'shards': 10}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 6}, ], }, 'v8_linux_arm64_gc_stress_dbg': { @@ -481,7 +491,7 @@ }, 'tests': [ {'name': 'mozilla'}, - {'name': 'test262'}, + {'name': 'test262', 'shards': 2}, {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'variant': 'extra'}, ], @@ -563,8 +573,8 @@ {'name': 'mozilla', 'variant': 'extra'}, {'name': 'optimize_for_size'}, {'name': 'test262_variants', 'shards': 6}, - {'name': 'test262_variants', 'variant': 'code_serializer', 'shards': 1}, - {'name': 'test262_variants', 'variant': 'extra', 'shards': 2}, + {'name': 'test262_variants', 'variant': 'code_serializer', 'shards': 2}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 3}, {'name': 'v8testing', 'shards': 3}, { 'name': 'v8testing', @@ -620,8 +630,13 @@ ], }, 'V8 Linux - full debug': { + 'swarming_task_attrs': { + 'expiration': 14400, + 'hard_timeout': 3600, + 'priority': 35, + }, 'tests': [ - {'name': 'v8testing', 'variant': 'default'}, + {'name': 'v8testing', 'variant': 'default', 'shards': 3}, ], }, 'V8 Linux - gc stress': { @@ -664,7 +679,7 @@ }, 'tests': [ {'name': 'mozilla', 'variant': 'default'}, - {'name': 'test262', 'variant': 'default', 'shards': 2}, + {'name': 'test262', 'variant': 'default', 'shards': 3}, {'name': 'v8testing', 'variant': 'default', 'shards': 3}, ], }, @@ -763,7 +778,7 @@ {'name': 'mozilla', 'variant': 'extra'}, {'name': 'optimize_for_size'}, {'name': 'test262_variants', 'shards': 5}, - {'name': 'test262_variants', 'variant': 'extra', 'shards': 2}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 3}, {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'variant': 'extra'}, {'name': 'v8testing', 'variant': 'minor_mc', 'shards': 1}, @@ -815,6 +830,18 @@ {'name': 'v8testing'}, ], }, + 'V8 Linux64 - pointer compression': { + 'tests': [ + {'name': 'v8testing', 'shards': 2}, + ], + }, + 'V8 Linux64 - shared': { + 'tests': [ + {'name': 'mozilla'}, + {'name': 'test262'}, + {'name': 'v8testing'}, + ], + }, 'V8 Linux64 - verify csa': { 'tests': [ {'name': 'v8testing'}, @@ -876,7 +903,7 @@ }, 'V8 Linux64 TSAN - isolates': { 'tests': [ - {'name': 'v8testing', 'test_args': ['--isolates'], 'shards': 5}, + {'name': 'v8testing', 'test_args': ['--isolates'], 'shards': 7}, ], }, 'V8 Linux64 UBSan': { @@ -897,7 +924,7 @@ 'tests': [ {'name': 'mozilla'}, {'name': 'test262'}, - {'name': 'v8testing'}, + {'name': 'v8testing', 'shards': 2}, {'name': 'v8testing', 'variant': 'extra'}, ], }, @@ -908,7 +935,7 @@ }, 'tests': [ {'name': 'mozilla'}, - {'name': 'test262'}, + {'name': 'test262', 'shards': 2}, {'name': 'v8testing', 'shards': 3}, {'name': 'v8testing', 'variant': 'extra'}, ], @@ -1037,7 +1064,9 @@ 'cores': '8', 'os': 'Ubuntu-16.04', 'cpu': 'armv7l-32-ODROID-XU4', - } + }, + # Less parallelism to prevent OOMs in benchmarks. + 'test_args': ['-j2'], }, { 'name': 'optimize_for_size', @@ -1179,7 +1208,7 @@ {'name': 'mjsunit_sp_frame_access'}, {'name': 'mozilla'}, {'name': 'test262'}, - {'name': 'v8testing', 'shards': 7}, + {'name': 'v8testing', 'shards': 8}, {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, # Armv8-a. { @@ -1196,7 +1225,7 @@ 'name': 'v8testing', 'suffix': 'armv8-a', 'test_args': ['--extra-flags', '--enable-armv8'], - 'shards': 7 + 'shards': 8 }, # Novfp3. { @@ -1216,7 +1245,7 @@ 'suffix': 'novfp3', 'variant': 'default', 'test_args': ['--novfp3'], - 'shards': 7 + 'shards': 8 }, ], }, @@ -1240,10 +1269,14 @@ ], }, 'V8 Linux - arm64 - sim - debug': { + # TODO(machenbach): Remove longer timeout when this builder scales better. + 'swarming_task_attrs': { + 'hard_timeout': 3600, + }, 'tests': [ {'name': 'mjsunit_sp_frame_access'}, - {'name': 'mozilla'}, - {'name': 'test262'}, + {'name': 'mozilla', 'shards': 2}, + {'name': 'test262', 'shards': 2}, {'name': 'v8testing', 'shards': 10}, {'name': 'v8testing', 'variant': 'extra', 'shards': 6}, ], @@ -1463,44 +1496,8 @@ }, ], }, - 'V8 NumFuzz - nosnap': { - 'swarming_task_attrs': { - 'expiration': 14400, - 'hard_timeout': 3600, - 'priority': 35, - }, - 'tests': [ - { - 'name': 'numfuzz', - 'suffix': 'interrupt-budget', - 'test_args': [ - '--total-timeout-sec=2100', - '--stress-interrupt-budget=10', - '--stress-deopt=5', - ] - }, - ], - }, - 'V8 NumFuzz - nosnap debug': { - 'swarming_task_attrs': { - 'expiration': 14400, - 'hard_timeout': 3600, - 'priority': 35, - }, - 'tests': [ - { - 'name': 'numfuzz', - 'suffix': 'interrupt-budget', - 'test_args': [ - '--total-timeout-sec=2100', - '--stress-interrupt-budget=10', - '--stress-deopt=5', - ] - }, - ], - }, ############################################################################## - # Clusterfuzz. + # Branches. 'V8 Linux - beta branch': { 'swarming_task_attrs': { 'expiration': 14400, diff --git a/deps/v8/snapshot_toolchain.gni b/deps/v8/snapshot_toolchain.gni index 756413e5ce4..f1c69094394 100644 --- a/deps/v8/snapshot_toolchain.gni +++ b/deps/v8/snapshot_toolchain.gni @@ -83,7 +83,13 @@ if (v8_snapshot_toolchain == "") { if (v8_current_cpu == "x64" || v8_current_cpu == "x86") { _cpus = v8_current_cpu } else if (v8_current_cpu == "arm64" || v8_current_cpu == "mips64el") { - _cpus = "x64_v8_${v8_current_cpu}" + if (is_win && v8_current_cpu == "arm64") { + # set _cpus to blank for Windows ARM64 so host_toolchain could be + # selected as snapshot toolchain later. + _cpus = "" + } else { + _cpus = "x64_v8_${v8_current_cpu}" + } } else if (v8_current_cpu == "arm" || v8_current_cpu == "mipsel") { _cpus = "x86_v8_${v8_current_cpu}" } else { @@ -94,6 +100,9 @@ if (v8_snapshot_toolchain == "") { if (_cpus != "") { v8_snapshot_toolchain = "//build/toolchain/${host_os}:${_clang}${_cpus}" + } else if (is_win && v8_current_cpu == "arm64") { + # cross compile Windows arm64 with Windows x64 toolchain. + v8_snapshot_toolchain = host_toolchain } } } diff --git a/deps/v8/src/DEPS b/deps/v8/src/DEPS index 99873803c99..f8190e8fd9d 100644 --- a/deps/v8/src/DEPS +++ b/deps/v8/src/DEPS @@ -27,6 +27,8 @@ include_rules = [ "+src/interpreter/interpreter-generator.h", "+src/interpreter/setup-interpreter.h", "-src/trap-handler", + "+src/trap-handler/handler-inside-posix.h", + "+src/trap-handler/handler-inside-win.h", "+src/trap-handler/trap-handler.h", "+testing/gtest/include/gtest/gtest_prod.h", "-src/libplatform", diff --git a/deps/v8/src/OWNERS b/deps/v8/src/OWNERS index 5f6fedcd362..abad5274c88 100644 --- a/deps/v8/src/OWNERS +++ b/deps/v8/src/OWNERS @@ -2,7 +2,6 @@ per-file intl.*=cira@chromium.org per-file intl.*=mnita@google.com per-file intl.*=jshin@chromium.org per-file typing-asm.*=aseemgarg@chromium.org -per-file typing-asm.*=bradnelson@chromium.org per-file objects-body-descriptors*=hpayer@chromium.org per-file objects-body-descriptors*=mlippautz@chromium.org per-file objects-body-descriptors*=ulan@chromium.org diff --git a/deps/v8/src/PRESUBMIT.py b/deps/v8/src/PRESUBMIT.py deleted file mode 100644 index b97eefaeb06..00000000000 --- a/deps/v8/src/PRESUBMIT.py +++ /dev/null @@ -1,29 +0,0 @@ -# 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. - -"""Presubmit script for //v8/src - -See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts -for more details about the presubmit API built into depot_tools. -""" - -import os - - -def PostUploadHook(cl, change, output_api): - """git cl upload will call this hook after the issue is created/modified. - - This hook adds extra try bots to the CL description in order to run layout - tests in addition to CQ try bots. - """ - def is_api_cc(f): - return 'api.cc' == os.path.split(f.LocalPath())[1] - if not change.AffectedFiles(file_filter=is_api_cc): - return [] - return output_api.EnsureCQIncludeTrybotsAreAdded( - cl, - [ - 'luci.chromium.try:linux_chromium_rel_ng' - ], - 'Automatically added layout test trybots to run tests on CQ.') diff --git a/deps/v8/src/accessors.cc b/deps/v8/src/accessors.cc index 226178394db..b62edb489c6 100644 --- a/deps/v8/src/accessors.cc +++ b/deps/v8/src/accessors.cc @@ -6,6 +6,7 @@ #include "src/api-inl.h" #include "src/contexts.h" +#include "src/counters.h" #include "src/deoptimizer.h" #include "src/execution.h" #include "src/frames-inl.h" @@ -156,7 +157,7 @@ void Accessors::ArrayLengthGetter( RuntimeCallCounterId::kArrayLengthGetter); DisallowHeapAllocation no_allocation; HandleScope scope(isolate); - JSArray* holder = JSArray::cast(*Utils::OpenHandle(*info.Holder())); + JSArray holder = JSArray::cast(*Utils::OpenHandle(*info.Holder())); Object* result = holder->length(); info.GetReturnValue().Set(Utils::ToLocal(Handle(result, isolate))); } @@ -235,7 +236,7 @@ void Accessors::ModuleNamespaceEntryGetter( v8::Local name, const v8::PropertyCallbackInfo& info) { i::Isolate* isolate = reinterpret_cast(info.GetIsolate()); HandleScope scope(isolate); - JSModuleNamespace* holder = + JSModuleNamespace holder = JSModuleNamespace::cast(*Utils::OpenHandle(*info.Holder())); Handle result; if (!holder @@ -560,13 +561,11 @@ Handle Accessors::MakeFunctionArgumentsInfo(Isolate* isolate) { // Accessors::FunctionCaller // - -static inline bool AllowAccessToFunction(Context* current_context, - JSFunction* function) { +static inline bool AllowAccessToFunction(Context current_context, + JSFunction function) { return current_context->HasSameSecurityTokenAs(function->context()); } - class FrameFunctionIterator { public: explicit FrameFunctionIterator(Isolate* isolate) @@ -795,7 +794,7 @@ MaybeHandle ClearInternalStackTrace(Isolate* isolate, Handle error) { RETURN_ON_EXCEPTION( isolate, - JSReceiver::SetProperty( + Object::SetProperty( isolate, error, isolate->factory()->stack_trace_symbol(), isolate->factory()->undefined_value(), LanguageMode::kStrict), JSReceiver); diff --git a/deps/v8/src/address-map.cc b/deps/v8/src/address-map.cc index ad71a25a99d..d8a80dd22e6 100644 --- a/deps/v8/src/address-map.cc +++ b/deps/v8/src/address-map.cc @@ -14,15 +14,15 @@ RootIndexMap::RootIndexMap(Isolate* isolate) { map_ = isolate->root_index_map(); if (map_ != nullptr) return; map_ = new HeapObjectToIndexHashMap(); - for (RootIndex root_index = RootIndex::kFirstStrongRoot; - root_index <= RootIndex::kLastStrongRoot; ++root_index) { - Object* root = isolate->heap()->root(root_index); + for (RootIndex root_index = RootIndex::kFirstStrongOrReadOnlyRoot; + root_index <= RootIndex::kLastStrongOrReadOnlyRoot; ++root_index) { + Object* root = isolate->root(root_index); if (!root->IsHeapObject()) continue; // Omit root entries that can be written after initialization. They must // not be referenced through the root list in the snapshot. // Since we map the raw address of an root item to its root list index, the // raw address must be constant, i.e. the object must be immovable. - if (isolate->heap()->RootCanBeTreatedAsConstant(root_index)) { + if (RootsTable::IsImmortalImmovable(root_index)) { HeapObject* heap_object = HeapObject::cast(root); Maybe maybe_index = map_->Get(heap_object); uint32_t index = static_cast(root_index); @@ -32,11 +32,6 @@ RootIndexMap::RootIndexMap(Isolate* isolate) { } else { map_->Set(heap_object, index); } - } else { - // Immortal immovable root objects are constant and allocated on the first - // page of old space. Non-constant roots cannot be immortal immovable. The - // root index map contains all immortal immmovable root objects. - CHECK(!Heap::RootIsImmortalImmovable(root_index)); } } isolate->set_root_index_map(map_); diff --git a/deps/v8/src/address-map.h b/deps/v8/src/address-map.h index f7a1cc2ad9a..0c150403c39 100644 --- a/deps/v8/src/address-map.h +++ b/deps/v8/src/address-map.h @@ -57,7 +57,7 @@ class RootIndexMap { explicit RootIndexMap(Isolate* isolate); // Returns true on successful lookup and sets *|out_root_list|. - bool Lookup(HeapObject* obj, RootIndex* out_root_list) { + bool Lookup(HeapObject* obj, RootIndex* out_root_list) const { Maybe maybe_index = map_->Get(obj); if (maybe_index.IsJust()) { *out_root_list = static_cast(maybe_index.FromJust()); @@ -65,6 +65,9 @@ class RootIndexMap { } return false; } + bool Lookup(Address obj, RootIndex* out_root_list) { + return Lookup(reinterpret_cast(obj), out_root_list); + } private: HeapObjectToIndexHashMap* map_; diff --git a/deps/v8/src/allocation-site-scopes-inl.h b/deps/v8/src/allocation-site-scopes-inl.h index e114bb3885c..67378adf849 100644 --- a/deps/v8/src/allocation-site-scopes-inl.h +++ b/deps/v8/src/allocation-site-scopes-inl.h @@ -12,6 +12,13 @@ namespace v8 { namespace internal { +void AllocationSiteContext::InitializeTraversal(Handle site) { + top_ = site; + // {current_} is updated in place to not create unnecessary Handles, hence + // we initially need a separate handle. + current_ = Handle::New(*top_, isolate()); +} + Handle AllocationSiteUsageContext::EnterNewScope() { if (top().is_null()) { InitializeTraversal(top_site_); diff --git a/deps/v8/src/allocation-site-scopes.h b/deps/v8/src/allocation-site-scopes.h index 0a729948db2..4ae065ad303 100644 --- a/deps/v8/src/allocation-site-scopes.h +++ b/deps/v8/src/allocation-site-scopes.h @@ -7,6 +7,7 @@ #include "src/handles.h" #include "src/objects.h" +#include "src/objects/allocation-site.h" #include "src/objects/map.h" namespace v8 { @@ -29,15 +30,10 @@ class AllocationSiteContext { protected: void update_current_site(AllocationSite* site) { - *(current_.location()) = site; + *(current_.location()) = site->ptr(); } - void InitializeTraversal(Handle site) { - top_ = site; - // {current_} is updated in place to not create unnecessary Handles, hence - // we initially need a separate handle. - current_ = Handle::New(*top_, isolate()); - } + inline void InitializeTraversal(Handle site); private: Isolate* isolate_; diff --git a/deps/v8/src/allocation.cc b/deps/v8/src/allocation.cc index 6327a9c965a..9d8ee2a1289 100644 --- a/deps/v8/src/allocation.cc +++ b/deps/v8/src/allocation.cc @@ -11,8 +11,9 @@ #include "src/base/lsan-page-allocator.h" #include "src/base/page-allocator.h" #include "src/base/platform/platform.h" -#include "src/utils.h" +#include "src/memcopy.h" #include "src/v8.h" +#include "src/vector.h" #if V8_LIBC_BIONIC #include // NOLINT @@ -45,13 +46,16 @@ struct InitializePageAllocator { v8::PageAllocator* page_allocator = V8::GetCurrentPlatform()->GetPageAllocator(); if (page_allocator == nullptr) { - static v8::base::PageAllocator default_allocator; - page_allocator = &default_allocator; + // On the heap and leaked so that no destructor needs to run at exit time. + static auto* default_allocator = new v8::base::PageAllocator; + page_allocator = default_allocator; } #if defined(LEAK_SANITIZER) { - static v8::base::LsanPageAllocator lsan_allocator(page_allocator); - page_allocator = &lsan_allocator; + // On the heap and leaked so that no destructor needs to run at exit time. + static auto* lsan_allocator = + new v8::base::LsanPageAllocator(page_allocator); + page_allocator = lsan_allocator; } #endif *page_allocator_ptr = page_allocator; @@ -71,6 +75,13 @@ v8::PageAllocator* GetPlatformPageAllocator() { return page_allocator.Get(); } +v8::PageAllocator* SetPlatformPageAllocatorForTesting( + v8::PageAllocator* new_page_allocator) { + v8::PageAllocator* old_page_allocator = GetPlatformPageAllocator(); + *page_allocator.Pointer() = new_page_allocator; + return old_page_allocator; +} + void* Malloced::New(size_t size) { void* result = AllocWithRetry(size); if (result == nullptr) { @@ -155,7 +166,7 @@ void* AllocatePages(v8::PageAllocator* page_allocator, void* address, PageAllocator::Permission access) { DCHECK_NOT_NULL(page_allocator); DCHECK_EQ(address, AlignedAddress(address, alignment)); - DCHECK_EQ(0UL, size & (page_allocator->AllocatePageSize() - 1)); + DCHECK(IsAligned(size, page_allocator->AllocatePageSize())); void* result = nullptr; for (int i = 0; i < kAllocationTries; ++i) { result = page_allocator->AllocatePages(address, size, alignment, access); @@ -169,7 +180,7 @@ void* AllocatePages(v8::PageAllocator* page_allocator, void* address, bool FreePages(v8::PageAllocator* page_allocator, void* address, const size_t size) { DCHECK_NOT_NULL(page_allocator); - DCHECK_EQ(0UL, size & (page_allocator->AllocatePageSize() - 1)); + DCHECK(IsAligned(size, page_allocator->AllocatePageSize())); return page_allocator->FreePages(address, size); } @@ -177,6 +188,7 @@ bool ReleasePages(v8::PageAllocator* page_allocator, void* address, size_t size, size_t new_size) { DCHECK_NOT_NULL(page_allocator); DCHECK_LT(new_size, size); + DCHECK(IsAligned(new_size, page_allocator->CommitPageSize())); return page_allocator->ReleasePages(address, size, new_size); } @@ -209,12 +221,14 @@ VirtualMemory::VirtualMemory(v8::PageAllocator* page_allocator, size_t size, void* hint, size_t alignment) : page_allocator_(page_allocator) { DCHECK_NOT_NULL(page_allocator); + DCHECK(IsAligned(size, page_allocator_->CommitPageSize())); size_t page_size = page_allocator_->AllocatePageSize(); alignment = RoundUp(alignment, page_size); - size = RoundUp(size, page_size); - Address address = reinterpret_cast
(AllocatePages( - page_allocator_, hint, size, alignment, PageAllocator::kNoAccess)); + Address address = reinterpret_cast
( + AllocatePages(page_allocator_, hint, RoundUp(size, page_size), alignment, + PageAllocator::kNoAccess)); if (address != kNullAddress) { + DCHECK(IsAligned(address, alignment)); region_ = base::AddressRegion(address, size); } } @@ -241,7 +255,7 @@ bool VirtualMemory::SetPermissions(Address address, size_t size, size_t VirtualMemory::Release(Address free_start) { DCHECK(IsReserved()); - DCHECK(IsAddressAligned(free_start, page_allocator_->CommitPageSize())); + DCHECK(IsAligned(free_start, page_allocator_->CommitPageSize())); // Notice: Order is important here. The VirtualMemory object might live // inside the allocated region. diff --git a/deps/v8/src/allocation.h b/deps/v8/src/allocation.h index 3a21310af8e..df6e416e702 100644 --- a/deps/v8/src/allocation.h +++ b/deps/v8/src/allocation.h @@ -86,6 +86,13 @@ void AlignedFree(void *ptr); // Returns platfrom page allocator instance. Guaranteed to be a valid pointer. V8_EXPORT_PRIVATE v8::PageAllocator* GetPlatformPageAllocator(); +// Sets the given page allocator as the platform page allocator and returns +// the current one. This function *must* be used only for testing purposes. +// It is not thread-safe and the testing infrastructure should ensure that +// the tests do not modify the value simultaneously. +V8_EXPORT_PRIVATE v8::PageAllocator* SetPlatformPageAllocatorForTesting( + v8::PageAllocator* page_allocator); + // Gets the page granularity for AllocatePages and FreePages. Addresses returned // by AllocatePages and AllocatePage are aligned to this size. V8_EXPORT_PRIVATE size_t AllocatePageSize(); @@ -160,7 +167,7 @@ class V8_EXPORT_PRIVATE VirtualMemory final { // Reserves virtual memory containing an area of the given size that is // aligned per |alignment| rounded up to the |page_allocator|'s allocate page - // size. + // size. The |size| must be aligned with |page_allocator|'s commit page size. // This may not be at the position returned by address(). VirtualMemory(v8::PageAllocator* page_allocator, size_t size, void* hint, size_t alignment = 1); @@ -170,6 +177,8 @@ class V8_EXPORT_PRIVATE VirtualMemory final { VirtualMemory(v8::PageAllocator* page_allocator, Address address, size_t size) : page_allocator_(page_allocator), region_(address, size) { DCHECK_NOT_NULL(page_allocator); + DCHECK(IsAligned(address, page_allocator->AllocatePageSize())); + DCHECK(IsAligned(size, page_allocator->CommitPageSize())); } // Releases the reserved memory, if any, controlled by this VirtualMemory diff --git a/deps/v8/src/api-arguments-inl.h b/deps/v8/src/api-arguments-inl.h index 1e5d6b2aaa7..478b807383d 100644 --- a/deps/v8/src/api-arguments-inl.h +++ b/deps/v8/src/api-arguments-inl.h @@ -10,6 +10,7 @@ #include "src/api-inl.h" #include "src/debug/debug.h" #include "src/objects/api-callbacks.h" +#include "src/objects/slots-inl.h" #include "src/tracing/trace-event.h" #include "src/vm-state-inl.h" @@ -19,28 +20,33 @@ namespace internal { CustomArgumentsBase::CustomArgumentsBase(Isolate* isolate) : Relocatable(isolate) {} +template +CustomArguments::~CustomArguments() { + slot_at(kReturnValueOffset).store(ObjectPtr(kHandleZapValue)); +} + template template Handle CustomArguments::GetReturnValue(Isolate* isolate) { // Check the ReturnValue. - Object** handle = &this->begin()[kReturnValueOffset]; + FullObjectSlot slot = slot_at(kReturnValueOffset); // Nothing was set, return empty handle as per previous behaviour. - if ((*handle)->IsTheHole(isolate)) return Handle(); - Handle result = Handle::cast(Handle(handle)); + if ((*slot)->IsTheHole(isolate)) return Handle(); + Handle result = Handle::cast(Handle(slot.location())); result->VerifyApiCallResultType(); return result; } -inline JSObject* PropertyCallbackArguments::holder() { - return JSObject::cast(this->begin()[T::kHolderIndex]); +inline JSObject PropertyCallbackArguments::holder() { + return JSObject::cast(*slot_at(T::kHolderIndex)); } inline Object* PropertyCallbackArguments::receiver() { - return Object::cast(this->begin()[T::kThisIndex]); + return Object::cast(*slot_at(T::kThisIndex)); } -inline JSObject* FunctionCallbackArguments::holder() { - return JSObject::cast(this->begin()[T::kHolderIndex]); +inline JSObject FunctionCallbackArguments::holder() { + return JSObject::cast(*slot_at(T::kHolderIndex)); } #define FOR_EACH_CALLBACK(F) \ @@ -61,7 +67,7 @@ inline JSObject* FunctionCallbackArguments::holder() { } \ VMState state(ISOLATE); \ ExternalCallbackScope call_scope(ISOLATE, FUNCTION_ADDR(F)); \ - PropertyCallbackInfo callback_info(begin()); + PropertyCallbackInfo callback_info(values_); #define PREPARE_CALLBACK_INFO_FAIL_SIDE_EFFECT_CHECK(ISOLATE, F, RETURN_VALUE, \ API_RETURN_TYPE) \ @@ -70,7 +76,7 @@ inline JSObject* FunctionCallbackArguments::holder() { } \ VMState state(ISOLATE); \ ExternalCallbackScope call_scope(ISOLATE, FUNCTION_ADDR(F)); \ - PropertyCallbackInfo callback_info(begin()); + PropertyCallbackInfo callback_info(values_); #define CREATE_NAMED_CALLBACK(FUNCTION, TYPE, RETURN_TYPE, API_RETURN_TYPE, \ INFO_FOR_SIDE_EFFECT) \ @@ -136,7 +142,7 @@ Handle FunctionCallbackArguments::Call(CallHandlerInfo* handler) { } VMState state(isolate); ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); - FunctionCallbackInfo info(begin(), argv_, argc_); + FunctionCallbackInfo info(values_, argv_, argc_); f(info); return GetReturnValue(isolate); } diff --git a/deps/v8/src/api-arguments.cc b/deps/v8/src/api-arguments.cc index 4b290d9dabb..82cbdd0b0ff 100644 --- a/deps/v8/src/api-arguments.cc +++ b/deps/v8/src/api-arguments.cc @@ -11,43 +11,41 @@ namespace internal { PropertyCallbackArguments::PropertyCallbackArguments(Isolate* isolate, Object* data, Object* self, - JSObject* holder, + JSObject holder, ShouldThrow should_throw) : Super(isolate) { - Object** values = this->begin(); - values[T::kThisIndex] = self; - values[T::kHolderIndex] = holder; - values[T::kDataIndex] = data; - values[T::kIsolateIndex] = reinterpret_cast(isolate); - values[T::kShouldThrowOnErrorIndex] = - Smi::FromInt(should_throw == kThrowOnError ? 1 : 0); + slot_at(T::kThisIndex).store(self); + slot_at(T::kHolderIndex).store(holder); + slot_at(T::kDataIndex).store(data); + slot_at(T::kIsolateIndex).store(reinterpret_cast(isolate)); + slot_at(T::kShouldThrowOnErrorIndex) + .store(Smi::FromInt(should_throw == kThrowOnError ? 1 : 0)); // Here the hole is set as default value. // It cannot escape into js as it's removed in Call below. HeapObject* the_hole = ReadOnlyRoots(isolate).the_hole_value(); - values[T::kReturnValueDefaultValueIndex] = the_hole; - values[T::kReturnValueIndex] = the_hole; - DCHECK(values[T::kHolderIndex]->IsHeapObject()); - DCHECK(values[T::kIsolateIndex]->IsSmi()); + slot_at(T::kReturnValueDefaultValueIndex).store(the_hole); + slot_at(T::kReturnValueIndex).store(the_hole); + DCHECK((*slot_at(T::kHolderIndex))->IsHeapObject()); + DCHECK((*slot_at(T::kIsolateIndex))->IsSmi()); } FunctionCallbackArguments::FunctionCallbackArguments( internal::Isolate* isolate, internal::Object* data, internal::HeapObject* callee, internal::Object* holder, - internal::HeapObject* new_target, internal::Object** argv, int argc) + internal::HeapObject* new_target, internal::Address* argv, int argc) : Super(isolate), argv_(argv), argc_(argc) { - Object** values = begin(); - values[T::kDataIndex] = data; - values[T::kHolderIndex] = holder; - values[T::kNewTargetIndex] = new_target; - values[T::kIsolateIndex] = reinterpret_cast(isolate); + slot_at(T::kDataIndex).store(data); + slot_at(T::kHolderIndex).store(holder); + slot_at(T::kNewTargetIndex).store(new_target); + slot_at(T::kIsolateIndex).store(reinterpret_cast(isolate)); // Here the hole is set as default value. // It cannot escape into js as it's remove in Call below. HeapObject* the_hole = ReadOnlyRoots(isolate).the_hole_value(); - values[T::kReturnValueDefaultValueIndex] = the_hole; - values[T::kReturnValueIndex] = the_hole; - DCHECK(values[T::kHolderIndex]->IsHeapObject()); - DCHECK(values[T::kIsolateIndex]->IsSmi()); + slot_at(T::kReturnValueDefaultValueIndex).store(the_hole); + slot_at(T::kReturnValueIndex).store(the_hole); + DCHECK((*slot_at(T::kHolderIndex))->IsHeapObject()); + DCHECK((*slot_at(T::kIsolateIndex))->IsSmi()); } } // namespace internal diff --git a/deps/v8/src/api-arguments.h b/deps/v8/src/api-arguments.h index d8fc2b49ab2..e0fc359302d 100644 --- a/deps/v8/src/api-arguments.h +++ b/deps/v8/src/api-arguments.h @@ -8,6 +8,7 @@ #include "src/api.h" #include "src/debug/debug.h" #include "src/isolate.h" +#include "src/objects/slots.h" #include "src/visitors.h" namespace v8 { @@ -26,14 +27,11 @@ class CustomArguments : public CustomArgumentsBase { public: static const int kReturnValueOffset = T::kReturnValueIndex; - ~CustomArguments() override { - this->begin()[kReturnValueOffset] = - reinterpret_cast(kHandleZapValue); - } + ~CustomArguments() override; inline void IterateInstance(RootVisitor* v) override { - v->VisitRootPointers(Root::kRelocatable, nullptr, values_, - values_ + T::kArgsLength); + v->VisitRootPointers(Root::kRelocatable, nullptr, slot_at(0), + slot_at(T::kArgsLength)); } protected: @@ -44,11 +42,17 @@ class CustomArguments : public CustomArgumentsBase { Handle GetReturnValue(Isolate* isolate); inline Isolate* isolate() { - return reinterpret_cast(this->begin()[T::kIsolateIndex]); + return reinterpret_cast(*slot_at(T::kIsolateIndex)); } - inline Object** begin() { return values_; } - Object* values_[T::kArgsLength]; + inline FullObjectSlot slot_at(int index) { + // This allows index == T::kArgsLength so "one past the end" slots + // can be retrieved for iterating purposes. + DCHECK_LE(static_cast(index), + static_cast(T::kArgsLength)); + return FullObjectSlot(values_ + index); + } + Address values_[T::kArgsLength]; }; // Note: Calling args.Call() sets the return value on args. For multiple @@ -68,7 +72,7 @@ class PropertyCallbackArguments static const int kShouldThrowOnErrorIndex = T::kShouldThrowOnErrorIndex; PropertyCallbackArguments(Isolate* isolate, Object* data, Object* self, - JSObject* holder, ShouldThrow should_throw); + JSObject holder, ShouldThrow should_throw); // ------------------------------------------------------------------------- // Accessor Callbacks @@ -135,7 +139,7 @@ class PropertyCallbackArguments GenericNamedPropertyGetterCallback f, Handle name, Handle info, Handle receiver = Handle()); - inline JSObject* holder(); + inline JSObject holder(); inline Object* receiver(); // Don't copy PropertyCallbackArguments, because they would both have the @@ -160,7 +164,7 @@ class FunctionCallbackArguments internal::HeapObject* callee, internal::Object* holder, internal::HeapObject* new_target, - internal::Object** argv, int argc); + internal::Address* argv, int argc); /* * The following Call function wraps the calling of all callbacks to handle @@ -173,9 +177,9 @@ class FunctionCallbackArguments inline Handle Call(CallHandlerInfo* handler); private: - inline JSObject* holder(); + inline JSObject holder(); - internal::Object** argv_; + internal::Address* argv_; int argc_; }; diff --git a/deps/v8/src/api-inl.h b/deps/v8/src/api-inl.h index 5758729dd32..bc3519e7176 100644 --- a/deps/v8/src/api-inl.h +++ b/deps/v8/src/api-inl.h @@ -6,6 +6,7 @@ #define V8_API_INL_H_ #include "src/api.h" +#include "src/handles-inl.h" #include "src/objects-inl.h" #include "src/objects/stack-frame-info.h" @@ -115,7 +116,8 @@ MAKE_TO_LOCAL(ScriptOrModuleToLocal, Script, ScriptOrModule) DCHECK(that == nullptr || \ (*reinterpret_cast(that))->Is##To()); \ return v8::internal::Handle( \ - reinterpret_cast(const_cast(that))); \ + reinterpret_cast( \ + const_cast(that))); \ } OPEN_HANDLE_LIST(MAKE_OPEN_HANDLE) @@ -126,7 +128,9 @@ OPEN_HANDLE_LIST(MAKE_OPEN_HANDLE) namespace internal { Handle HandleScopeImplementer::MicrotaskContext() { - if (microtask_context_) return Handle(microtask_context_, isolate_); + if (!microtask_context_.is_null()) { + return Handle(microtask_context_, isolate_); + } return Handle::null(); } @@ -135,6 +139,12 @@ Handle HandleScopeImplementer::LastEnteredContext() { return Handle(entered_contexts_.back(), isolate_); } +Handle HandleScopeImplementer::LastEnteredOrMicrotaskContext() { + if (MicrotaskContextIsLastEnteredContext()) return MicrotaskContext(); + if (entered_contexts_.empty()) return Handle::null(); + return Handle(entered_contexts_.back(), isolate_); +} + } // namespace internal } // namespace v8 diff --git a/deps/v8/src/api-natives.cc b/deps/v8/src/api-natives.cc index 11b63d56d8d..aa8c3e62e94 100644 --- a/deps/v8/src/api-natives.cc +++ b/deps/v8/src/api-natives.cc @@ -7,9 +7,10 @@ #include "src/api-inl.h" #include "src/isolate-inl.h" #include "src/lookup.h" -#include "src/messages.h" +#include "src/message-template.h" #include "src/objects/api-callbacks.h" #include "src/objects/hash-table-inl.h" +#include "src/objects/property-cell.h" #include "src/objects/templates.h" namespace v8 { @@ -348,11 +349,11 @@ void UncacheTemplateInstantiation(Isolate* isolate, int serial_number, } bool IsSimpleInstantiation(Isolate* isolate, ObjectTemplateInfo* info, - JSReceiver* new_target) { + JSReceiver new_target) { DisallowHeapAllocation no_gc; if (!new_target->IsJSFunction()) return false; - JSFunction* fun = JSFunction::cast(new_target); + JSFunction fun = JSFunction::cast(new_target); if (fun->shared()->function_data() != info->constructor()) return false; if (info->immutable_proto()) return false; return fun->context()->native_context() == isolate->raw_native_context(); @@ -467,9 +468,9 @@ MaybeHandle InstantiateFunction(Isolate* isolate, } Handle prototype; if (!data->remove_prototype()) { - Object* prototype_templ = data->prototype_template(); + Object* prototype_templ = data->GetPrototypeTemplate(); if (prototype_templ->IsUndefined(isolate)) { - Object* protoype_provider_templ = data->prototype_provider_template(); + Object* protoype_provider_templ = data->GetPrototypeProviderTemplate(); if (protoype_provider_templ->IsUndefined(isolate)) { prototype = isolate->factory()->NewJSObject(isolate->object_function()); } else { @@ -486,7 +487,7 @@ MaybeHandle InstantiateFunction(Isolate* isolate, Handle(), data->hidden_prototype(), true), JSFunction); } - Object* parent = data->parent_template(); + Object* parent = data->GetParentTemplate(); if (!parent->IsUndefined(isolate)) { Handle parent_prototype; ASSIGN_RETURN_ON_EXCEPTION(isolate, parent_prototype, @@ -498,8 +499,8 @@ MaybeHandle InstantiateFunction(Isolate* isolate, } InstanceType function_type = (!data->needs_access_check() && - data->named_property_handler()->IsUndefined(isolate) && - data->indexed_property_handler()->IsUndefined(isolate)) + data->GetNamedPropertyHandler()->IsUndefined(isolate) && + data->GetIndexedPropertyHandler()->IsUndefined(isolate)) ? JS_API_OBJECT_TYPE : JS_SPECIAL_API_OBJECT_TYPE; @@ -570,7 +571,8 @@ MaybeHandle ApiNatives::InstantiateRemoteObject( FunctionTemplateInfo::cast(data->constructor()), isolate); Handle object_map = isolate->factory()->NewMap( JS_SPECIAL_API_OBJECT_TYPE, - JSObject::kHeaderSize + data->embedder_field_count() * kPointerSize, + JSObject::kHeaderSize + + data->embedder_field_count() * kEmbedderDataSlotSize, TERMINAL_FAST_ELEMENTS_KIND); object_map->SetConstructor(*constructor); object_map->set_is_access_check_needed(true); @@ -662,7 +664,7 @@ Handle ApiNatives::CreateApiFunction( if (prototype->IsTheHole(isolate)) { prototype = isolate->factory()->NewFunctionPrototype(result); - } else if (obj->prototype_provider_template()->IsUndefined(isolate)) { + } else if (obj->GetPrototypeProviderTemplate()->IsUndefined(isolate)) { JSObject::AddProperty(isolate, Handle::cast(prototype), isolate->factory()->constructor_string(), result, DONT_ENUM); @@ -670,17 +672,17 @@ Handle ApiNatives::CreateApiFunction( int embedder_field_count = 0; bool immutable_proto = false; - if (!obj->instance_template()->IsUndefined(isolate)) { - Handle instance_template = Handle( - ObjectTemplateInfo::cast(obj->instance_template()), isolate); - embedder_field_count = instance_template->embedder_field_count(); - immutable_proto = instance_template->immutable_proto(); + if (!obj->GetInstanceTemplate()->IsUndefined(isolate)) { + Handle GetInstanceTemplate = Handle( + ObjectTemplateInfo::cast(obj->GetInstanceTemplate()), isolate); + embedder_field_count = GetInstanceTemplate->embedder_field_count(); + immutable_proto = GetInstanceTemplate->immutable_proto(); } // JS_FUNCTION_TYPE requires information about the prototype slot. DCHECK_NE(JS_FUNCTION_TYPE, type); - int instance_size = - JSObject::GetHeaderSize(type) + kPointerSize * embedder_field_count; + int instance_size = JSObject::GetHeaderSize(type) + + kEmbedderDataSlotSize * embedder_field_count; Handle map = isolate->factory()->NewMap(type, instance_size, TERMINAL_FAST_ELEMENTS_KIND); @@ -693,7 +695,7 @@ Handle ApiNatives::CreateApiFunction( // undetectable and callable. If we ever see the need to have an object // that is undetectable but not callable, we need to update the types.h // to allow encoding this. - CHECK(!obj->instance_call_handler()->IsUndefined(isolate)); + CHECK(!obj->GetInstanceCallHandler()->IsUndefined(isolate)); map->set_is_undetectable(true); } @@ -704,17 +706,18 @@ Handle ApiNatives::CreateApiFunction( } // Set interceptor information in the map. - if (!obj->named_property_handler()->IsUndefined(isolate)) { + if (!obj->GetNamedPropertyHandler()->IsUndefined(isolate)) { map->set_has_named_interceptor(true); map->set_may_have_interesting_symbols(true); } - if (!obj->indexed_property_handler()->IsUndefined(isolate)) { + if (!obj->GetIndexedPropertyHandler()->IsUndefined(isolate)) { map->set_has_indexed_interceptor(true); } // Mark instance as callable in the map. - if (!obj->instance_call_handler()->IsUndefined(isolate)) { + if (!obj->GetInstanceCallHandler()->IsUndefined(isolate)) { map->set_is_callable(true); + map->set_is_constructor(!obj->undetectable()); } if (immutable_proto) map->set_is_immutable_proto(true); diff --git a/deps/v8/src/api-natives.h b/deps/v8/src/api-natives.h index ff6cdc6c864..9a9ae50da81 100644 --- a/deps/v8/src/api-natives.h +++ b/deps/v8/src/api-natives.h @@ -16,6 +16,7 @@ namespace v8 { namespace internal { // Forward declarations. +enum InstanceType : uint16_t; class ObjectTemplateInfo; class TemplateInfo; diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 64676f06c1a..c7c5588b36f 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -26,12 +26,12 @@ #include "src/bootstrapper.h" #include "src/builtins/builtins-utils.h" #include "src/char-predicates-inl.h" -#include "src/code-stubs.h" #include "src/compiler-dispatcher/compiler-dispatcher.h" #include "src/compiler.h" #include "src/contexts.h" #include "src/conversions-inl.h" #include "src/counters.h" +#include "src/date.h" #include "src/debug/debug-coverage.h" #include "src/debug/debug-evaluate.h" #include "src/debug/debug-type-profile.h" @@ -51,6 +51,10 @@ #include "src/messages.h" #include "src/objects-inl.h" #include "src/objects/api-callbacks.h" +#include "src/objects/embedder-data-array-inl.h" +#include "src/objects/embedder-data-slot-inl.h" +#include "src/objects/hash-table-inl.h" +#include "src/objects/heap-object.h" #include "src/objects/js-array-inl.h" #include "src/objects/js-collection-inl.h" #include "src/objects/js-generator-inl.h" @@ -58,6 +62,8 @@ #include "src/objects/js-regexp-inl.h" #include "src/objects/module-inl.h" #include "src/objects/ordered-hash-table-inl.h" +#include "src/objects/slots.h" +#include "src/objects/smi.h" #include "src/objects/stack-frame-info-inl.h" #include "src/objects/templates.h" #include "src/parsing/parse-info.h" @@ -76,15 +82,16 @@ #include "src/runtime-profiler.h" #include "src/runtime/runtime.h" #include "src/simulator.h" -#include "src/snapshot/builtin-serializer.h" #include "src/snapshot/code-serializer.h" #include "src/snapshot/natives.h" +#include "src/snapshot/partial-serializer.h" +#include "src/snapshot/read-only-serializer.h" #include "src/snapshot/snapshot.h" +#include "src/snapshot/startup-serializer.h" #include "src/startup-data-util.h" #include "src/string-hasher.h" #include "src/tracing/trace-event.h" #include "src/trap-handler/trap-handler.h" -#include "src/unicode-cache-inl.h" #include "src/unicode-inl.h" #include "src/v8.h" #include "src/v8threads.h" @@ -97,6 +104,18 @@ #include "src/wasm/wasm-result.h" #include "src/wasm/wasm-serialization.h" +#if V8_OS_LINUX || V8_OS_MACOSX +#include +#include "include/v8-wasm-trap-handler-posix.h" +#include "src/trap-handler/handler-inside-posix.h" +#endif + +#if V8_OS_WIN +#include +#include "include/v8-wasm-trap-handler-win.h" +#include "src/trap-handler/handler-inside-win.h" +#endif + namespace v8 { /* @@ -217,7 +236,7 @@ namespace v8 { namespace { Local ContextFromNeverReadOnlySpaceObject( - i::Handle obj) { + i::Handle obj) { return reinterpret_cast(obj->GetIsolate())->GetCurrentContext(); } @@ -253,14 +272,12 @@ class CallDepthScope { ? i::InterruptsScope::kRunInterrupts : i::InterruptsScope::kPostponeInterrupts) : i::InterruptsScope::kNoop) { - // TODO(dcarney): remove this when blink stops crashing. - DCHECK(!isolate_->external_caught_exception()); isolate_->handle_scope_implementer()->IncrementCallDepth(); isolate_->set_next_v8_call_is_safe_for_termination(false); if (!context.IsEmpty()) { i::Handle env = Utils::OpenHandle(*context); i::HandleScopeImplementer* impl = isolate->handle_scope_implementer(); - if (isolate->context() != nullptr && + if (!isolate->context().is_null() && isolate->context()->native_context() == env->native_context()) { context_ = Local(); } else { @@ -289,8 +306,10 @@ class CallDepthScope { escaped_ = true; auto handle_scope_implementer = isolate_->handle_scope_implementer(); handle_scope_implementer->DecrementCallDepth(); - bool call_depth_is_zero = handle_scope_implementer->CallDepthIsZero(); - isolate_->OptionalRescheduleException(call_depth_is_zero); + bool clear_exception = + handle_scope_implementer->CallDepthIsZero() && + isolate_->thread_local_top()->try_catch_handler() == nullptr; + isolate_->OptionalRescheduleException(clear_exception); } private: @@ -343,20 +362,19 @@ void i::V8::FatalProcessOutOfMemory(i::Isolate* isolate, const char* location, i::HeapStats heap_stats; if (isolate == nullptr) { - isolate = Isolate::Current(); + isolate = Isolate::TryGetCurrent(); } if (isolate == nullptr) { - // On a background thread -> we cannot retrieve memory information from the - // Isolate. Write easy-to-recognize values on the stack. + // If the Isolate is not available for the current thread we cannot retrieve + // memory information from the Isolate. Write easy-to-recognize values on + // the stack. memset(last_few_messages, 0x0BADC0DE, Heap::kTraceRingBufferSize + 1); memset(js_stacktrace, 0x0BADC0DE, Heap::kStacktraceBufferSize + 1); memset(&heap_stats, 0xBADC0DE, sizeof(heap_stats)); - // Note that the embedder's oom handler won't be called in this case. We - // just crash. - FATAL( - "API fatal error handler returned after process out of memory on the " - "background thread"); + // Note that the embedder's oom handler is also not available and therefore + // won't be called in this case. We just crash. + FATAL("Fatal process out of memory: %s", location); UNREACHABLE(); } @@ -387,6 +405,8 @@ void i::V8::FatalProcessOutOfMemory(i::Isolate* isolate, const char* location, heap_stats.map_space_capacity = &map_space_capacity; size_t lo_space_size; heap_stats.lo_space_size = &lo_space_size; + size_t code_lo_space_size; + heap_stats.code_lo_space_size = &code_lo_space_size; size_t global_handle_count; heap_stats.global_handle_count = &global_handle_count; size_t weak_global_handle_count; @@ -563,8 +583,8 @@ SnapshotCreator::SnapshotCreator(Isolate* isolate, SnapshotCreator::SnapshotCreator(const intptr_t* external_references, StartupData* existing_snapshot) - : SnapshotCreator(reinterpret_cast(new i::Isolate()), - external_references, existing_snapshot) {} + : SnapshotCreator(Isolate::Allocate(), external_references, + existing_snapshot) {} SnapshotCreator::~SnapshotCreator() { SnapshotCreatorData* data = SnapshotCreatorData::cast(data_); @@ -608,13 +628,13 @@ size_t SnapshotCreator::AddTemplate(Local