Code Monkey home page Code Monkey logo

v8.dev's Introduction

V8 JavaScript Engine

V8 is Google's open source JavaScript engine.

V8 implements ECMAScript as specified in ECMA-262.

V8 is written in C++ and is used in Google Chrome, the open source browser from Google.

V8 can run standalone, or can be embedded into any C++ application.

V8 Project page: https://v8.dev/docs

Getting the Code

Checkout depot tools, and run

    fetch v8

This will checkout V8 into the directory v8 and fetch all of its dependencies. To stay up to date, run

    git pull origin
    gclient sync

For fetching all branches, add the following into your remote configuration in .git/config:

    fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
    fetch = +refs/tags/*:refs/tags/*

Contributing

Please follow the instructions mentioned at v8.dev/docs/contribute.

v8.dev's People

Contributors

ajklein avatar alrra avatar backes avatar bmeurer avatar camillobruni avatar chicoxyzzy avatar gahaas avatar gsathya avatar jakobkummerow avatar kripken avatar leszekswirski avatar lutzvahl avatar marjakh avatar mathiasbynens avatar mayalekova avatar mi-ac avatar mlippautz avatar natorion avatar ngzhian avatar nschonni avatar psmarshall avatar ripsawridge avatar rreverser avatar santiaboy avatar schuay avatar syg avatar szuend avatar tebbi avatar tomayac avatar victorgomes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

v8.dev's Issues

Website firewall issue follow-up.

This is a follow-up to #240 which was closed by @dtig, but the issue isn’t resolved, so I don’t feel that it should be closed. This issue is, unfortunately, making it harder for me to do some work that I’m doing with V8.

As I mentioned in #240:

When I try v8.dev from my tablet without VPN, it works, but on my laptop with VPN, all of my requests are dropped. Barring disabling my VPN (which is a non-option for me on my laptop, unfortunately), there’s nothing that I can do on my end. Is there a policy against VPN users? If not, can y’all update the firewall settings?

Thank you.

Consider hosting V8 tools under /tools

We could host the HTML files + assets for Turbolizer, parse-processor, etc. under v8.dev/tools/* if we wanted to.

This seems like a good idea, but an open question remains how we'll keep it in sync with the V8 repo. Requiring a manual PRs for every change seems awkward. We could set up a bot to automate sending such PRs, but there'd still be some overhead.

Ideally, we'd be able to simply proxy through to the source files in the V8 repo. Perhaps using a rawgit-like Firebase function is the way to go here?

V8 API documentation

For a long time, https://v8.paulfryzel.com/docs/master was the place to go for up-to-date documentation on V8's public (and private) API surface. Unfortunately, this incredible resource is no longer maintained. v8.dev seems like an excellent place to host an official version of doxygen, although I don't know exactly how one would go about wiring that up. Perhaps a github action on https://github.com/v8/v8?

Translation v8.dev into different languages

Hello!

First of all, thank you for your work on this precious resource.

I have a proposal. It would be cool to see translation of articles in the blog into different languages. What do you think?

I think the community will help with translation (for example I can help with translation to Russian). In the code itself we need to add some changes to static site generator and add button for changing of language of the article.

Add option to search the docs

It's kinda hard to find the info I'm looking for if I don't know the exact page. Previously I used the github search to find stuff on the wiki.

Add dark mode

We should be able to do better than html, img, h1 a, #footer { filter: invert(1); } 👻

Ugly screenshot of the above:

Width on code blocks

Thank y'all for the v8 site - it's fantastic!

Example Page

https://v8.dev/docs/build

Screenshot

image

Problem

The code blocks stretch out a bit too far on the right. These declarations are responsible:

width: calc(100% + 4em);
width: calc(100% + var(--offset)*2);

Dropping the declaration(s) fixes the width.

After Screenshot

image

Docs on Blink layout tests seems outdated

https://v8.dev/docs/blink-layout-tests

I'm having troubles with the third point (rebaselining the tests in Chromium), if you try to commit [ NeedsRebaseline ] it will fail during presubmit checks (as you can see here).

Another document exists with a manual way to do it (which is known to work): https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_tests.md#Rebaselining-Web-Tests.

Status: I'm currently following it and I can report the result here.

Redirect Service Worker Error

Introduction

iOS 12 Safari shows an error saying “response server by service worker has redirections” and refuses to open the page. This happens after the service worker has been installed i.e. after the first couple visits.

Error

Safari refuses to open v8.dev due to a service worker error.

How to Reproduce

  1. Visit v8.dev and bookmark the site
  2. Close the tab and then close the browser
  3. Reopen safari and open the bookmark. If the error doesn’t appear, repeat this step.

Edit

I forgot to mention that I had ServiceWorkers enabled which is an experimental option in safari. So this is likely a safari bug. To turn on service workers: Settings>Safari>Advanced>Experimental Features>ServiceWorker>ON.

Service worker fails to register if using uBlock origin

workbox-sw.js:1 Unable to import module 'workbox-google-analytics' from 'https://storage.googleapis.com/workbox-cdn/releases/3.6.1/workbox-google-analytics.prod.js'.
loadModule @ workbox-sw.js:1
get @ workbox-sw.js:1
(anonymous) @ sw.js:1
workbox-sw.js:1

Uncaught 
loadModule @ workbox-sw.js:1
get @ workbox-sw.js:1
(anonymous) @ sw.js:1

(index):1 Uncaught (in promise) TypeError: Failed to register a ServiceWorker: ServiceWorker script evaluation failed

Might be more of a workbox issue, but seems bad.

Update Torque syntax highlighting per recent changes

Prism.languages.torque = {
'comment': {
pattern: /(^|[^\\:])\/\/.*/,
lookbehind: true,
greedy: true,
},
'string': {
pattern: /(["'])(?:\\(?:\n|.)|(?!\1)[^\\\n])*\1/s,
greedy: true,
},
'class-name': [
{
pattern: /((?:\:\s+(\bconstexpr\b\s+)?))[\w]+(?:\s*(?:\)|;|,|=|{|labels))/i,
inside: {
keyword: /\b(?:constexpr|labels)\b/,
},
},
{
pattern: /((?:\b(?:type\s+[\w]+\s+=)\s+))[\w\|]+/i,
lookbehind: true,
},
{
pattern: /((?:\b(?:type|extends)\s+))[\w]+/i,
lookbehind: true,
}
],
'builtin': /\b(?:UnsafeCast|Convert|Cast|check|assert)\b/,
'keyword': /\b(?:typeswitch|javascript|generates|constexpr|otherwise|continue|operator|runtime|builtin|extends|labels|return|module|extern|while|macro|const|label|break|type|else|case|let|try|for|if)\b/,
'boolean': /\b(?:[tT]rue|[fF]alse)\b/,
'number': /\b0x[\da-fA-F]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,
'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,
'punctuation': /[{}[\];(),.:]/,
};

It might make sense to leave a comment linking to https://github.com/v8/v8/blob/master/src/torque/torque-parser.cc to the file as well.

Serving locally requires login

hablich@host~/src/v8.dev$ npm start

> @ start .../hablich/src/v8.dev
> firebase serve --port=9001


Error: Command requires authentication, please run firebase login
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ start: `firebase serve --port=9001`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @ start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     .../hablich/.npm/_logs/2018-10-15T14_25_38_340Z-debug.log

Add lint check ensuring that new files have a `description` field

E.g. https://raw.githubusercontent.com/v8/v8.dev/master/src/blog/array-sort.md has:

---
title: 'Getting things sorted in V8'
author: 'Simon Zünd ([@nimODota](https://twitter.com/nimODota)), consistent comparator'
avatars:
  - simon-zuend
date: 2018-09-28 11:20:37
tags:
  - ECMAScript
  - internals
description: 'Starting with V8 v7.0 / Chrome 70, Array.prototype.sort is stable.'
tweet: '1045656758700650502'
---

We should add a lint check that ensures this field is present for any new files that are added in PRs. The difficulty is that not all existing pages have this field.

Add automated checks for src/_img/avatars/*

All images in src/_img/avatars/* follow certain conventions:

  • JPEG format
  • the @2x version is named [email protected] and must be exactly 192×192px
  • the @1x version is named first-last.jpg and must be exactly 96×96px
  • all images must be optimized i.e. below a certain file size threshold (10 kB?)
    • I tend to use Squoosh with MozJPEG @ quality=75, and then run the result through ImageOptim.app with “optimization level” set to “insane” for further savings.

All of the above could use automated CI checks, so that we don’t accidentally merge PRs that deviate from the convention.

Consider adding ToC for larger documentation entries

I was just browsing the Torque user manual and thought a table of contents or something similar would be nice for larger articles. Especially for articles like the torque user manual, where readers might only be interested in one specific section.

Automate feature support data updates

For the feature support listings on v8.dev/features, we started small and shipped a manually maintained version. The maintenance overhead is acceptable, since once a feature ships in any one environment, we can update our feature support listing, and then we (generally) never have to update that specific feature+environment entry again.

However, it would be nice to automate this whole thing, and use a centralized data source like ChromeStatus, CanIUse, or MDN.

Website down?

Unfortunately, v8.dev has been down for at least a week now. Are y’all aware of this?

Thank you.

Add glossary to docs?

Maybe we need a glossary page with linkable quick explanations of common V8 concepts, such as "Smi".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.