profile
viewpoint
Mathias Bynens mathiasbynens @Google Germany https://mathiasbynens.be/ Web standards fanatic. JavaScript, HTML, CSS, HTTP, performance, security, Bash, Unicode, macOS.

domchristie/turndown 4821

🛏 An HTML to Markdown converter written in JavaScript

kangax/html-minifier 4211

Javascript-based HTML compressor/minifier (with Node.js support)

addyosmani/puppeteer-webperf 1181

Automating Web Performance testing with Puppeteer 🎪

GoogleChromeLabs/jsvu 1036

JavaScript (engine) Version Updater

GoogleChromeLabs/jsbi 580

JSBI is a pure-JavaScript implementation of the official ECMAScript BigInt proposal.

bramus/mixed-content-scan 502

Scan your HTTPS-enabled website for Mixed Content

googlesamples/web-fundamentals 286

Google Web Fundamentals

konklone/shaaaaaaaaaaaaa 207

Check if a website has weak SHA-1 TLS certificates.

gf3/WAT 103

LOLWAT?

GoogleChromeLabs/json-parse-benchmark 80

Benchmark comparing JSON.parse vs. equivalent JavaScript literals across JavaScript engines.

issue commentnode-fetch/node-fetch

Feature request: Reach out Chrome team

@jschfflr, could you please take a look?

tinovyatkin

comment created time in 8 hours

create barnchv8/v8.dev

branch : fix-typo

created branch time in 13 hours

PR opened v8/v8.dev

Fix typo
+1 -1

0 comment

1 changed file

pr created time in 13 hours

CommitCommentEvent

delete branch puppeteer/puppeteer

delete branch : cvd

delete time in 14 hours

push eventpuppeteer/puppeteer

Mathias Bynens

commit sha 7eab7f8dd9838489432882bedee5a9d3df66aa2c

feat(api): add page.emulateVisionDeficiency(type) (#5901) Design doc: https://goo.gle/devtools-cvd

view details

push time in 14 hours

PR merged puppeteer/puppeteer

Reviewers
feat(api): add page.emulateVisionDeficiency(type) cla: yes feature

To make it possible for contributors to check this out locally, I've temporarily checked in a random Chromium roll for a binary that works on macOS. Before merging, we'd separate this out to a separate commit which rolls Chromium + updates src/protocol.d.ts. This has now happened as part of #5879.

+118 -0

0 comment

9 changed files

mathiasbynens

pr closed time in 14 hours

push eventpuppeteer/puppeteer

Mathias Bynens

commit sha 2d219f28d8e952c366e18623cb5fdc8819c18ef6

Add DocLint exception *sigh*

view details

push time in 14 hours

PR closed puppeteer/puppeteer

Create nodejs.yml cla: yes

cla

+76 -0

1 comment

2 changed files

andy0937

pr closed time in 15 hours

push eventpuppeteer/puppeteer

Jack Franklin

commit sha 24ac11e76eacf2adc44f1fd57d21a7e3e21b053c

chore: fix undefined `rm` in mocha-utils (#5920) Closes #5916.

view details

push time in 15 hours

delete branch puppeteer/puppeteer

delete branch : fix-mocha-rm

delete time in 15 hours

PR merged puppeteer/puppeteer

chore: Fix undefined `rm` in mocha-utils cla: yes

Closes #5916.

+3 -1

0 comment

1 changed file

jackfranklin

pr closed time in 15 hours

issue closedpuppeteer/puppeteer

rm is undefined in mocha-utils.js

https://github.com/puppeteer/puppeteer/blob/6cfe142af1cc8188d8011fff00e8b37d480934c7/test/mocha-utils.js#L85

closed time in 15 hours

mathiasbynens

issue commentpuppeteer/puppeteer

Use the devtools-protocol npm package

Sounds good!

How is devtools-protocol versioned exactly? We need to be able to get definitions for the exact Chromium revision we ship.

jackfranklin

comment created time in 15 hours

push eventpuppeteer/puppeteer

Mathias Bynens

commit sha e36388b5a44e4878e36f5f56fdd6a9380e236a08

Tweak types

view details

push time in 15 hours

push eventpuppeteer/puppeteer

Mathias Bynens

commit sha b0138920aa83928b10d7453b6f1c92717a29b805

Tweak types

view details

push time in 15 hours

push eventpuppeteer/ispuppeteerfirefoxready

Mathias Bynens

commit sha 7af4827bc3de57c3e8d8cab5e6d4b2705b14149f

Add back previous HTML output as `console.log`s

view details

push time in 15 hours

push eventpuppeteer/ispuppeteerfirefoxready

mathiasbynens

commit sha d7dad99821d5f387335cdee1297a36b4ce0d6bfd

Deploying to gh-pages from master @ fac13b19d6ba67530f13a2e216f1431ea2ceeb26 🚀

view details

push time in 15 hours

issue commentpuppeteer/ispuppeteerfirefoxready

Display historical data of test expectations as graph

There's now a chart version: https://puppeteer.github.io/ispuppeteerfirefoxready/ Note that this only considers tests with a single expectation: https://github.com/puppeteer/ispuppeteerfirefoxready/blob/fac13b19d6ba67530f13a2e216f1431ea2ceeb26/preprocess-data.js#L15 Should we consider all expectations? (That might make the chart less useful, since it'd count the PASS in [PASS, FAIL].)

whimboo

comment created time in 15 hours

push eventpuppeteer/ispuppeteerfirefoxready

mathiasbynens

commit sha 9c17c78a861a441afa234ebbc9b624a864be4e0c

Deploying to gh-pages from master @ fac13b19d6ba67530f13a2e216f1431ea2ceeb26 🚀

view details

push time in 15 hours

push eventpuppeteer/ispuppeteerfirefoxready

Mathias Bynens

commit sha fac13b19d6ba67530f13a2e216f1431ea2ceeb26

Use curved lines

view details

push time in 15 hours

push eventpuppeteer/ispuppeteerfirefoxready

Mathias Bynens

commit sha 5ae5d7dc9a7ee114c8ef82ccb31b41d204bab659

Use curved lines

view details

push time in 15 hours

delete branch puppeteer/ispuppeteerfirefoxready

delete branch : simplify

delete time in 15 hours

Pull request review commenttc39/proposal-promise-any

[spec] change `errors` from a prototype accessor to an own data property

 <h1>AggregateError ( _errors_, _message_ )</h1>         <p>When the *AggregateError* function is called with arguments _errors_ and _message_, the following steps are taken:</p>         <emu-alg>           1. If NewTarget is *undefined*, let _newTarget_ be the active function object, else let _newTarget_ be NewTarget.-          1. Let _O_ be ? OrdinaryCreateFromConstructor(_newTarget_, `"%AggregateError.prototype%"`, « [[ErrorData]], [[AggregateErrors]] »).+          1. Let _O_ be ? OrdinaryCreateFromConstructor(_newTarget_, `"%AggregateError.prototype%"`, « [[ErrorData]] »).           1. Let _errorsList_ be ? IterableToList(_errors_).-          1. Set _O_.[[AggregateErrors]] to _errorsList_.+          1. Perform ! CreateDataPropertyOrThrow(_O_, `"errors"`, _errorsList_).

Good catch. Agreed that the property creation order should match between the two scenarios.

ljharb

comment created time in 15 hours

push eventpuppeteer/ispuppeteerfirefoxready

hanselfmu

commit sha c52e2df13d697009d846967315aca05c7be882a5

Deploying to gh-pages from master @ e1ea2c75b3f193890f06bd3df02dec062b6b5da7 🚀

view details

push time in 15 hours

push eventpuppeteer/ispuppeteerfirefoxready

hanselfmu

commit sha 7ca457ca4b80f77bc4e1f9662fe74d59ef65f52a

Deploying to gh-pages from master @ e1ea2c75b3f193890f06bd3df02dec062b6b5da7 🚀

view details

push time in 15 hours

pull request commentv8/v8.dev

Update authentication command

@mi-ac Thanks for doing the update in https://github.com/v8/v8.dev/commit/9ca4a0a78625240674882ea4ed0ba7c6f5d32edc. In general however, please send pull requests even for small changes instead of committing to master directly. (You're one of the few people who are able to commit straight to master since you have admin rights on the v8 org.)

MayaLekova

comment created time in 16 hours

push eventpuppeteer/ispuppeteerfirefoxready

Mathias Bynens

commit sha 54bfd596cb3ed6f83e7675ddb400309b214130e8

Simplify chart generation

view details

push time in 16 hours

PR opened puppeteer/ispuppeteerfirefoxready

Reviewers
Simplify chart generation

FYI, this is what I had in mind.

It seems simpler to me: we don't introduce an additional Puppeteer-based build script, and all the page's JS can be edited in a single place. PTAL

+28 -113

0 comment

4 changed files

pr created time in 16 hours

create barnchpuppeteer/ispuppeteerfirefoxready

branch : simplify

created branch time in 16 hours

push eventpuppeteer/ispuppeteerfirefoxready

mathiasbynens

commit sha dfcb33262cbdffcbb7c144b6aba7ef7ab850ae5e

Deploying to gh-pages from master @ 17017b0fde8c1172b6d7cbe776a18b571feffba6 🚀

view details

push time in 16 hours

push eventpuppeteer/ispuppeteerfirefoxready

mathiasbynens

commit sha a656366a63baf5ca9363dabe5fb9967f42f0a52c

Deploying to gh-pages from master @ 17017b0fde8c1172b6d7cbe776a18b571feffba6 🚀

view details

push time in 16 hours

push eventpuppeteer/ispuppeteerfirefoxready

Changhao Han

commit sha 17017b0fde8c1172b6d7cbe776a18b571feffba6

Visualize the progress using a chart (#2) Ref. #1.

view details

push time in 16 hours

Pull request review commentpuppeteer/ispuppeteerfirefoxready

feat: add a chart to visualize Puppeteer FF progress

 async function main() {   await server.start(9001);   await page.goto('http://localhost:9001/');   await page.waitForSelector('.passing');++  const chartContent = await generateChartSVG();+  await page.evaluate((content) => document.querySelector('#chart').innerHTML = content, chartContent);

For the record, what I had in mind was a little different. I was thinking we'd simply add the chart JS to main.mjs where we already have access to the data. The build script would then not need any changes.

hanselfmu

comment created time in 16 hours

push eventpuppeteer/ispuppeteerfirefoxready

mathiasbynens

commit sha db16868664c15ed97e58081b91f3cdd9d31a8580

Deploying to gh-pages from master @ cd0f59ff125005c886d252958c13c7cbdda71f84 🚀

view details

push time in 16 hours

push eventpuppeteer/ispuppeteerfirefoxready

mathiasbynens

commit sha a5c6198289330a83f70a4ef650d903add7c624f1

Deploying to gh-pages from master @ cd0f59ff125005c886d252958c13c7cbdda71f84 🚀

view details

push time in 16 hours

push eventpuppeteer/ispuppeteerfirefoxready

Changhao Han

commit sha cd0f59ff125005c886d252958c13c7cbdda71f84

Visualize the progress using a chart (#2) Ref. #1.

view details

push time in 16 hours

delete branch puppeteer/ispuppeteerfirefoxready

delete branch : visualize

delete time in 16 hours

Pull request review commentpuppeteer/ispuppeteerfirefoxready

feat: add a chart to visualize Puppeteer FF progress

 async function parseExpectations(url) {   const expectations = await response.json();   const counts = {     passing: 0,+    failing: 0,+    skipping: 0,     total: 0,   };   for (const [name, expectation] of Object.entries(expectations)) {     counts.total++;-    if (expectation.length === 1 && expectation[0] === 'PASS') {-      counts.passing++;+    if (expectation.length === 1) {+      switch (expectation[0]) {+        case 'PASS':+          counts.passing++;+          break;+        case 'FAIL':+          counts.failing++;+          break;+        case 'SKIP':+          counts.skipping++;+          break;+      }

Hmm, tests marked [PASS, FAIL] will now count as "passing". Not sure if that's what we want.

hanselfmu

comment created time in 16 hours

Pull request review commentpuppeteer/puppeteer

feat(api): add page.emulateVisionDeficiency(type)

 describe('Emulation', () => {       expect(error.message).toBe('Invalid timezone ID: Baz/Qux');     });   });++  describeFailsFirefox('Page.emulateVisionDeficiency', function () {+    it('should work', async () => {+      const { page, server } = getTestState();++      await page.setViewport({ width: 500, height: 500 });+      await page.goto(server.PREFIX + '/grid.html');++      {+        await page.emulateVisionDeficiency('none');+        const screenshot = await page.screenshot();+        expect(screenshot).toBeGolden('screenshot-sanity.png');+      }++      {+        await page.emulateVisionDeficiency('achromatopsia');+        const screenshot = await page.screenshot();+        expect(screenshot).toBeGolden('vision-deficiency-achromatopsia.png');+      }++      {+        await page.emulateVisionDeficiency('blurredVision');+        const screenshot = await page.screenshot();+        expect(screenshot).toBeGolden('vision-deficiency-blurredVision.png');+      }++      {+        await page.emulateVisionDeficiency('deuteranopia');+        const screenshot = await page.screenshot();+        expect(screenshot).toBeGolden('vision-deficiency-deuteranopia.png');+      }++      {+        await page.emulateVisionDeficiency('protanopia');+        const screenshot = await page.screenshot();+        expect(screenshot).toBeGolden('vision-deficiency-protanopia.png');+      }++      {+        await page.emulateVisionDeficiency('tritanopia');+        const screenshot = await page.screenshot();+        expect(screenshot).toBeGolden('vision-deficiency-tritanopia.png');+      }++      {+        await page.emulateVisionDeficiency('none');+        const screenshot = await page.screenshot();+        expect(screenshot).toBeGolden('screenshot-sanity.png');+      }+    });

I see what you're saying. I think the reason it's done this way for existing tests is because we'd otherwise have to duplicate the page.setViewport + page.goto setup for each subtest.

mathiasbynens

comment created time in 16 hours

MemberEvent
MemberEvent

push eventpuppeteer/puppeteer

Henrik Skupin

commit sha 6cfe142af1cc8188d8011fff00e8b37d480934c7

Don't use expect within Promises (#5466) (#5473) * Don't use expect within Promises (#5466) If a call to expect fails within a Promise it will not be resolved, and causing the test to crash. The patch aligns the code similar to what is used by all the other tests.

view details

Mathias Bynens

commit sha a01245ee1217414e4412f85b57040432340a1d01

feat(api): add page.emulateVisionDeficiency(type) Design doc: https://goo.gle/devtools-cvd

view details

push time in 18 hours

push eventpuppeteer/puppeteer

Henrik Skupin

commit sha 8fb51189630815d6c27adfc00cbc1786704ca36b

Don't use expect within Promises (#5466) (#5473) * Don't use expect within Promises (#5466) If a call to expect fails within a Promise it will not be resolved, and causing the test to crash. The patch aligns the code similar to what is used by all the other tests.

view details

push time in 18 hours

issue openedpuppeteer/puppeteer

rm is undefined in mocha-utils.js

https://github.com/puppeteer/puppeteer/blob/6cfe142af1cc8188d8011fff00e8b37d480934c7/test/mocha-utils.js#L85

created time in 18 hours

push eventpuppeteer/puppeteer

Mathias Bynens

commit sha b0c8e75ec48089f57fea871e3a6ef2daef991d9e

feat(api): add page.emulateVisionDeficiency(type)

view details

push time in 18 hours

push eventpuppeteer/puppeteer

Mathias Bynens

commit sha 5f903132745ec39c8838aa6ba80d192b2399c919

feat(api): add page.emulateVisionDeficiency(type)

view details

push time in 18 hours

push eventpuppeteer/puppeteer

Jack Franklin

commit sha d8e0557d1859b7de7bcc7129db9f4f63d6c94506

chore: update Travis to run latest macOS and fix HTTPS test (#5903) * chore: fix invalid SSL assertion on Catalina The error Chrome gives with an invalid cert changes between older Mac versions and Catalina as detailed here: https://support.google.com/chrome/thread/18125056?hl=en. This PR changes Travis to run Catalina (and we think most devs run up to date OS versions) so this fix ensures the test behaviour is consistent locally and on Travis. For those on older Mac versions I've left a comment by the tests to hopefully save them debugging! Co-authored-by: Mathias Bynens <mathias@qiwi.be>

view details

Jack Franklin

commit sha dfb2e6056b3980d7f479a93763bdaf667c53f7a4

chore: stop Protocol types being globally available (#5899) We should import them just like any other module. This commit makes that change. It does not change any behaviours or the types themselves. EXPECTED_PROTOCOL_DIFF as we're updating the structure of it.

view details

Henrik Skupin

commit sha 6cfe142af1cc8188d8011fff00e8b37d480934c7

Don't use expect within Promises (#5466) (#5473) * Don't use expect within Promises (#5466) If a call to expect fails within a Promise it will not be resolved, and causing the test to crash. The patch aligns the code similar to what is used by all the other tests.

view details

Mathias Bynens

commit sha 8243a18e016b061edfbe4a21e3b78eebf052ac7b

feat(api): add page.emulateVisionDeficiency(type)

view details

push time in 18 hours

issue commentw3c/css-houdini-drafts

[css-typed-om] Color conversion and contrast ratio

Excited to hear you're prototyping something! Eventually having a standardized Color constructor living on CSS.Color seems like a natural fit here, IMHO.

I know Lea and Chris are already well aware of this, but for those reading along, this came up earlier in this whatwg/html issue. There might be some useful suggestions in the comments.

atanassov

comment created time in a day

Pull request review commentpuppeteer/puppeteer

feat: Improve error reporting on AArch64

 export class BrowserFetcher {     if (!(await existsAsync(this._downloadsFolder)))       await mkdirAsync(this._downloadsFolder);     try {-      await downloadFile(url, archivePath, progressCallback);-      await install(archivePath, outputPath);+      if (os.arch() === 'arm64') {+        fs.stat('/usr/bin/chromium-browser', function (err, stats) {+          if (stats === undefined) {+            console.error(` The chromium binary is not available for arm64: `);+            console.error(` If you are on Ubuntu,You can install with: `);+            console.error(` \n apt-get install chromium-browser\n`);+            throw new Error();+          }+        });+      } else {+        await downloadFile(url, archivePath, progressCallback);+        await install(archivePath, outputPath);+      }     } finally {-      if (await existsAsync(archivePath)) await unlinkAsync(archivePath);+      if (os.arch() !== 'arm64')+        if (await existsAsync(archivePath)) await unlinkAsync(archivePath);     }     const revisionInfo = this.revisionInfo(revision);-    if (revisionInfo) await chmodAsync(revisionInfo.executablePath, 0o755);-    return revisionInfo;+    if (revisionInfo) {+      if (os.arch() !== 'arm64')+        await chmodAsync(revisionInfo.executablePath, 0o755);+      return revisionInfo;+    }

Let's indeed keep the arm64-specific logic in a single place. Something like this:

if (os.arch() === 'arm64') {
  await handleArm64();
  return;
}
// existing code for non-arm64 goes here...
ossdev07

comment created time in a day

pull request commenttc39/ecma262

Editorial: Rename Unicode encoding/decoding operations

Came here to say what @jmdyck already said: UTF16CodePointToCodeUnitsCodePoint[s]ToUTF16CodeUnits, at a minimum. That said, I like the suggestion to just use String even better.

bakkot

comment created time in a day

issue openedtibiamaps/tibia-map-data

Summer Update 2020

https://www.tibia.com/news/?subtopic=newsarchive&id=5568

created time in a day

Pull request review commenttc39/ecma262

Normative: Add String.prototype.replaceAll

 <h1>Static Semantics: CodePointAt ( _string_, _position_ )</h1>       </emu-alg>     </emu-clause> +    <emu-clause id="sec-stringindexof" aoid="StringIndexOf">+      <h1>Static Semantics: StringIndexOf ( _string_, _searchValue_, _fromIndex_ )</h1>+      <p>The abstract operation StringIndexOf takes arguments _string_ (a String), _searchValue_ (a String), and _fromIndex_ (a non-negative integer). It performs the following steps when called:</p>+      <emu-alg>+        1. Assert: Type(_string_) is String.+        1. Assert: Type(_searchValue_) is String.+        1. Assert: ! IsNonNegativeInteger(_fromIndex_) is *true*.+        1. Let _len_ be the length of _string_.+        1. If _searchValue_ is the empty String, and _fromIndex_ &le; _len_, return _fromIndex_.+        1. Let _searchLen_ be the length of _searchValue_.+        1. If there exists any integer _k_ such that _fromIndex_ &le; _k_ &le; _len_ - _searchLen_ and for all nonnegative integers _j_ less than _searchLen_, the code unit at index _k_ + _j_ within _string_ is the same as the code unit at index _j_ within _searchValue_, let _pos_ be the smallest (closest to *-&infin;*) such integer. Otherwise, let _pos_ be -1.+        1. Return _pos_.+      </emu-alg>+      <emu-note>+        <p>If _searchValue_ is empty and _fromIndex_ is less than or equal to the length of _string_, this algorithm returns _fromIndex_. An empty _searchValue_ is effectively found at every position within a string, including after the last code unit.</p>+      </emu-note>+      <emu-note>+        <p>The above algorithm accepts out-of-bounds _fromIndex_ values (where _fromIndex_ &ge; the length of _string_).</p>

I like it! Done.

mathiasbynens

comment created time in 2 days

push eventmathiasbynens/ecma262

Mathias Bynens

commit sha 9c06d72dca9e00e6a09ef8eac0e72ee226973f70

Normative: Add String.prototype.replaceAll Proposal: https://github.com/tc39/proposal-string-replaceall Note that the changes to String.prototype.matchAll that were part of this proposal have already been merged here: https://github.com/tc39/ecma262/pull/1716. Co-authored-by: Jakob Gruber <jgruber@chromium.org> Co-authored-by: Mathias Bynens <mathias@chromium.org>

view details

push time in 2 days

push eventmathiasbynens/ecma262

Mathias Bynens

commit sha 4933c0e355696ccd20b8fbc01d31a4fc44417a28

Normative: Add String.prototype.replaceAll Proposal: https://github.com/tc39/proposal-string-replaceall Note that the changes to String.prototype.matchAll that were part of this proposal have already been merged here: https://github.com/tc39/ecma262/pull/1716. Co-authored-by: Jakob Gruber <jgruber@chromium.org> Co-authored-by: Mathias Bynens <mathias@chromium.org>

view details

push time in 2 days

push eventpuppeteer/ispuppeteerfirefoxready

mathiasbynens

commit sha f0cd1c12c2d1cc4ba6d4001b7e04a6c11c7a6f61

Deploying to gh-pages from master @ ecd06732f73350243963e7935109e209724d398b 🚀

view details

push time in 2 days

push eventpuppeteer/ispuppeteerfirefoxready

mathiasbynens

commit sha 32737a04aec41fd84b1d049021f53ea225e9583b

Deploying to gh-pages from master @ ecd06732f73350243963e7935109e209724d398b 🚀

view details

push time in 2 days

push eventpuppeteer/ispuppeteerfirefoxready

Mathias Bynens

commit sha ecd06732f73350243963e7935109e209724d398b

Leverage page.content()

view details

push time in 2 days

Pull request review commentv8/v8.dev

Blog post: High-performance garbage collection for C++

+<?xml version="1.0" encoding="UTF-8"?>

Please run these SVGs through SVGOMG to compress them.

mlippautz

comment created time in 2 days

PR opened v8/v8.dev

Reviewers
Update @MayaLekova’s Twitter handle meta
+4 -4

0 comment

4 changed files

pr created time in 2 days

create barnchv8/v8.dev

branch : maya-twitter

created branch time in 2 days

pull request commentGoogleChrome/web.dev

subscribe copy just for live page

@samthor Done: #2990

samthor

comment created time in 2 days

issue openedGoogleChrome/web.dev

Improve behavior of hotlinks to web.dev LIVE schedule

Copied from https://github.com/GoogleChrome/web.dev/pull/2933#pullrequestreview-417585837:

Browsing to https://web.dev/live/#schedule in a new tab results in:

Could we make it behave more like this?

(Asking because I'm using this for a demo and have to currently manually fix the scroll position)

created time in 2 days

Pull request review commentGoogleChrome/web.dev

subscribe copy just for live page

 draft: true    <hr /> -  <section class="w-event-section">+  <section id="schedule" class="w-event-section">

Browsing to https://web.dev/live/#schedule in a new tab results in:

Could we make it behave more like this?

(Asking because I'm using this for a demo and have to currently manually fix the scroll position)

samthor

comment created time in 2 days

create barnchtc39/agendas

branch : add-slides

created branch time in 2 days

PR opened tc39/agendas

Add slides for Promise.any & AggregateError update
+1 -1

0 comment

1 changed file

pr created time in 2 days

delete branch puppeteer/puppeteer

delete branch : log-for-bad-node-versions

delete time in 2 days

pull request commentpuppeteer/puppeteer

chore: Error for bad Node versions

I might make a PR to make the expected version slightly clearer and easier to spot on the README.

Sounds good. If we do this we should also update https://github.com/puppeteer/puppeteer/blob/master/CONTRIBUTING.md#for-project-maintainers to include an explicit step updating the Node.js version in the README for each release (since it would otherwise be forgotten at times). Alternatively, we could point to the package.json#engines from the README instead of listing a specific version number.

jackfranklin

comment created time in 2 days

pull request commentpuppeteer/puppeteer

[WIP] Use Mitt as the Event Emitter

Excited to see this! Looking good so far. Feel free to ping me for review once you no longer consider this WIP 👍

jackfranklin

comment created time in 2 days

push eventmathiasbynens/ecma262

Mathias Bynens

commit sha 4d5efbd511d81e2a2281b7d0685ac119d7c1b724

Normative: Add String.prototype.replaceAll Proposal: https://github.com/tc39/proposal-string-replaceall Note that the changes to String.prototype.matchAll that were part of this proposal have already been merged here: https://github.com/tc39/ecma262/pull/1716. Co-authored-by: Jakob Gruber <jgruber@chromium.org> Co-authored-by: Mathias Bynens <mathias@chromium.org>

view details

push time in 2 days

push eventmathiasbynens/ecma262

Mathias Bynens

commit sha e221f2010e634d00fc6e405f077c9523f97ad6e7

Normative: Add String.prototype.replaceAll Proposal: https://github.com/tc39/proposal-string-replaceall Note that the changes to String.prototype.matchAll that were part of this proposal have already been merged here: https://github.com/tc39/ecma262/pull/1716. Co-authored-by: Jakob Gruber <jgruber@chromium.org> Co-authored-by: Mathias Bynens <mathias@chromium.org>

view details

push time in 2 days

push eventtc39/proposal-string-replaceall

mathiasbynens

commit sha 8e3d2ecd9796b7d4ca02a5d73cd6470c9dba8c36

Update gh-pages @ 9cf2b403d6f1b68934af0ff36d6771bab75638b0

view details

push time in 2 days

push eventtc39/proposal-string-replaceall

Mathias Bynens

commit sha 9cf2b403d6f1b68934af0ff36d6771bab75638b0

Fix nit

view details

push time in 2 days

push eventmathiasbynens/ecma262

Mathias Bynens

commit sha b40b0f2e1462b084c9d1f9eae229ff6f9c3cdab4

Normative: Add String.prototype.replaceAll Proposal: https://github.com/tc39/proposal-string-replaceall Note that the changes to String.prototype.matchAll that were part of this proposal have already been merged here: https://github.com/tc39/ecma262/pull/1716. Co-authored-by: Jakob Gruber <jgruber@chromium.org> Co-authored-by: Mathias Bynens <mathias@chromium.org>

view details

push time in 2 days

push eventtc39/proposal-promise-any

mathiasbynens

commit sha c80bb04a222b0d72ac9d2771ebf13bd17d6617c6

Update gh-pages @ 524e9b9d58febd5a0f74e8c763f139d3b3f47392

view details

push time in 2 days

push eventtc39/proposal-promise-any

Mathias Bynens

commit sha 524e9b9d58febd5a0f74e8c763f139d3b3f47392

Add placeholder for June 2020 notes

view details

push time in 2 days

push eventtc39/agendas

Mathias Bynens

commit sha 423cc9b48f15743a0c37811046f5aa5b1fe21c01

2020.06: Add Promise.any & AggregateError update

view details

Mathias Bynens

commit sha 88d32c290947a22c88e96d46223a91d7ebff12b6

Merge into a single Promise.any update

view details

Mathias Bynens

commit sha 82635be6076ba24d38e07170edf61032500dfe52

Merge pull request #766 from tc39/add-promise-any-update Add Promise.any & AggregateError update

view details

push time in 2 days

delete branch tc39/agendas

delete branch : add-promise-any-update

delete time in 2 days

PR merged tc39/agendas

Add Promise.any & AggregateError update

@syg, we could also just merge our items into one big “update” topic where we discuss the open PRs for this proposal, WDYT?

+1 -1

0 comment

1 changed file

mathiasbynens

pr closed time in 2 days

push eventtc39/agendas

Mathias Bynens

commit sha 88d32c290947a22c88e96d46223a91d7ebff12b6

Merge into a single Promise.any update

view details

push time in 2 days

push eventtc39/proposal-string-replaceall

mathiasbynens

commit sha 80cd9fb5b065e369c371b6d1f7c79c9bc3b4f7ad

Update gh-pages @ b92a3945aa5c5a6e78f3de9d0900b08929701c9c

view details

push time in 2 days

push eventtc39/proposal-string-replaceall

Mathias Bynens

commit sha b92a3945aa5c5a6e78f3de9d0900b08929701c9c

Fix editorial nits

view details

push time in 2 days

push eventmathiasbynens/ecma262

Mathias Bynens

commit sha fbc3b9dd9756ff1a0bfc0f811fef1ce145df5213

Normative: Add String.prototype.replaceAll Proposal: https://github.com/tc39/proposal-string-replaceall Note that the changes to String.prototype.matchAll that were part of this proposal have already been merged here: https://github.com/tc39/ecma262/pull/1716. Co-authored-by: Jakob Gruber <jgruber@chromium.org> Co-authored-by: Mathias Bynens <mathias@chromium.org>

view details

push time in 2 days

pull request commenttc39/ecma262

Normative: Add String.prototype.replaceAll

Thanks for the reviews! I've addressed the feedback.

mathiasbynens

comment created time in 2 days

Pull request review commenttc39/ecma262

Normative: Add String.prototype.replaceAll

 <h1>Static Semantics: CodePointAt ( _string_, _position_ )</h1>       </emu-alg>     </emu-clause> +    <emu-clause id="sec-stringindexof">+      <h1>Static Semantics: StringIndexOf ( _string_, _searchValue_, _fromIndex_ )</h1>+      <p>The abstract operation _StringIndexOf_ performs the following steps:</p>+      <!-- Note: OOB fromIndex values (fromIndex >= string.length) are accepted by the algorithm. -->

Done.

mathiasbynens

comment created time in 2 days

push eventmathiasbynens/ecma262

Mathias Bynens

commit sha bf8244e11236e918e4e2399949f941ff1003522a

Normative: Add String.prototype.replaceAll Proposal: https://github.com/tc39/proposal-string-replaceall Note that the changes to String.prototype.matchAll that were part of this proposal have already been merged here: https://github.com/tc39/ecma262/pull/1716. Co-authored-by: Jakob Gruber <jgruber@chromium.org> Co-authored-by: Mathias Bynens <mathias@chromium.org>

view details

push time in 2 days

Pull request review commenttc39/ecma262

Normative: Add String.prototype.replaceAll

 <h1>Static Semantics: CodePointAt ( _string_, _position_ )</h1>       </emu-alg>     </emu-clause> +    <emu-clause id="sec-stringindexof">

As a note, I'd love to just click "commit suggestion" instead of applying all these changes locally but GitHub won't let me, instead showing the "This diff has recently been updated. Refresh and try again." error. If there is some trick to making this work, please let me know.

mathiasbynens

comment created time in 2 days

push eventmathiasbynens/ecma262

Mathias Bynens

commit sha 6353c08a5d20e476ab4ba4e997ba095010c8fcc9

Normative: Add String.prototype.replaceAll Proposal: https://github.com/tc39/proposal-string-replaceall Note that the changes to String.prototype.matchAll that were part of this proposal have already been merged here: https://github.com/tc39/ecma262/pull/1716. Co-authored-by: Jakob Gruber <jgruber@chromium.org> Co-authored-by: Mathias Bynens <mathias@chromium.org>

view details

push time in 3 days

pull request commenttc39/ecma262

Normative: Update RegExp property aliases per Unicode v13

My bad, was looking at the wrong PR for the wrong description! Ignore my last comment.

mathiasbynens

comment created time in 3 days

delete branch mathiasbynens/ecma262

delete branch : add-aliases

delete time in 3 days

pull request commenttc39/ecma262

Normative: Update RegExp property aliases per Unicode v13

What happened here? The change that landed is completely different from what my original PR was. I'll post the original diff here in case that link stops to work:

From c1c1299244cd6e57fd47623636c7fe890c57c615 Mon Sep 17 00:00:00 2001
From: Mathias Bynens <mathias@qiwi.be>
Date: Wed, 11 Mar 2020 14:35:51 -0300
Subject: [PATCH] Normative: Update Unicode property lists per Unicode v13

https://unicode.org/versions/Unicode13.0.0/
---
 table-unicode-script-values.html | 36 ++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/table-unicode-script-values.html b/table-unicode-script-values.html
index 652c4288b..b5451aeca 100644
--- a/table-unicode-script-values.html
+++ b/table-unicode-script-values.html
@@ -205,6 +205,15 @@
       </td>
       <td>`Cham`</td>
     </tr>
+    <tr>
+      <td>
+        <ul>
+          <li>`Chorasmian`</li>
+          <li>`Chrs`</li>
+        </ul>
+      </td>
+      <td>`Chorasmian`</td>
+    </tr>
     <tr>
       <td>
         <ul>
@@ -278,6 +287,15 @@
       </td>
       <td>`Devanagari`</td>
     </tr>
+    <tr>
+      <td>
+        <ul>
+          <li>`Dives_Akuru`</li>
+          <li>`Diak`</li>
+        </ul>
+      </td>
+      <td>`Dives_Akuru`</td>
+    </tr>
     <tr>
       <td>
         <ul>
@@ -558,6 +576,15 @@
       </td>
       <td>`Kharoshthi`</td>
     </tr>
+    <tr>
+      <td>
+        <ul>
+          <li>`Khitan_Small_Script`</li>
+          <li>`Kits`</li>
+        </ul>
+      </td>
+      <td>`Khitan_Small_Script`</td>
+    </tr>
     <tr>
       <td>
         <ul>
@@ -1359,6 +1386,15 @@
       </td>
       <td>`Warang_Citi`</td>
     </tr>
+    <tr>
+      <td>
+        <ul>
+          <li>`Yezidi`</li>
+          <li>`Yezi`</li>
+        </ul>
+      </td>
+      <td>`Yezidi`</td>
+    </tr>
     <tr>
       <td>
         <ul>
mathiasbynens

comment created time in 3 days

pull request commenttc39/ecma262

Normative: Update Unicode property lists per Unicode v13

Re-reading some of the above comments, I think I now know where the confusion comes from:

If we can get to 100% "always match latest Unicode", that's great! If we can't, however, I'd very much prefer a snapshot that we have to manually update.

We are already there! There's two separate dimensions here:

  1. Data: Using the latest Unicode data for whatever properties the spec refers to (which is observable in identifiers through e.g. ID_Start and in property escapes through which characters e.g. /\p{Script=Greek}/u matches)
  2. Implementation: Extending the set of supported properties in regular expressions (e.g. Unicode 9001 adds a property named Foo and so /\p{Foo}/u now suddenly matches stuff instead of throwing a SyntaxError)

Point 1 was addressed by https://github.com/tc39/ecma262/pull/620 after https://github.com/tc39/notes/blob/master/meetings/2016-07/jul-27.md#10ia-require-unicode-900 (and I hope you're not trying to relitigate that). It sends a very important signal to implementers that they should decouple the implementation from the Unicode data they're using, i.e. have a mechanism in place to quickly update their implementation to the latest Unicode data.

Point 2 is addressed by these annual PRs that add new properties introduced by new Unicode versions. If, hypothetically, such a PR would be rejected, then all the pre-existing properties in ECMAScript's list would continue to be supported, and they would still start matching new characters if the new Unicode version changes their definition, which is exactly the intention.

mathiasbynens

comment created time in 3 days

pull request commenttc39/ecma262

Normative: Update Unicode property lists per Unicode v13

I'm curious what you're planning to present/propose.

AFAICT, we need to refer some list of Unicode properties (and values, and aliases for both) that must be supported in ECMAScript regular expressions, regardless of where that list is maintained. The upstream Unicode Standard does not currently have such a list, and it seems unlikely it ever will given it already publishes property lists that are different from what we explicitly decided to support in ECMAScript.

Feel free to ping me on email before the meeting: mathias@chromium.org

mathiasbynens

comment created time in 3 days

push eventGoogleChromeLabs/jsvu

Mathias Bynens

commit sha 3eacfa4b6b9fa08ae57a5b07292172a0944b076f

Release v1.11.1

view details

push time in 3 days

created tagGoogleChromeLabs/jsvu

tagv1.11.1

JavaScript (engine) Version Updater

created time in 3 days

push eventGoogleChromeLabs/jsvu

Loïc Padier

commit sha d03550281ca82800c240e31910b8b5542e127476

Upgrade tempy (#90) Tempy 0.3.0 created files ending with a period https://github.com/sindresorhus/tempy/pull/19 On windows, this causes jsvu to emit errors in the Testing section of installing runtimes. The runtimes are still installed, but the console has warning messages.

view details

push time in 3 days

PR merged GoogleChromeLabs/jsvu

Upgrade tempy cla: yes

Tempy 0.3.0 created files ending with a period https://github.com/sindresorhus/tempy/pull/19

On windows, this causes jsvu to emit errors in the Testing section of installing runtimes. The runtimes are still installed, but the console has warning messages.

+1 -1

0 comment

1 changed file

lPadier

pr closed time in 3 days

delete branch mathiasbynens/ecma262

delete branch : unicode-13-scripts

delete time in 3 days

PR opened tc39/agendas

Add slides for String#replaceAll

Note that these are not new materials; it's just an easier overview of information that's already in the repository.

+1 -1

0 comment

1 changed file

pr created time in 3 days

more