document ECMAScript quirks (#5148)
authorAlex Lam S.L <alexlamsl@gmail.com>
Sat, 16 Oct 2021 05:28:13 +0000 (06:28 +0100)
committerGitHub <noreply@github.com>
Sat, 16 Oct 2021 05:28:13 +0000 (13:28 +0800)
- exclude Node.js v0.8 from CI as npm registry no longer works

closes #5146

.github/workflows/ci.yml
README.md

index b1bbd93..3acb9ab 100644 (file)
@@ -7,14 +7,9 @@ jobs:
   test:
     strategy:
       matrix:
-        node: [ '0.8', '0.10', '0.12', '4', '6', '8', '10', '12', '14', latest ]
+        node: [ '0.10', '0.12', '4', '6', '8', '10', '12', '14', latest ]
         os: [ ubuntu-latest, windows-latest ]
         script: [ compress, mocha, release/benchmark, release/jetstream ]
-        exclude:
-          - node: '0.8'
-            script: release/benchmark
-          - node: '0.8'
-            script: release/jetstream
     name: ${{ matrix.node }} ${{ matrix.os }} ${{ matrix.script }}
     runs-on: ${{ matrix.os }}
     env:
index ea11a02..8fbe07c 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1199,6 +1199,17 @@ To allow for better optimizations, the compiler makes various assumptions:
 - Object properties can be added, removed and modified (not prevented with
   `Object.defineProperty()`, `Object.defineProperties()`, `Object.freeze()`,
   `Object.preventExtensions()` or `Object.seal()`).
+- If array destructuring is present, index-like properties in `Array.prototype`
+  have not been overridden:
+  ```javascript
+  Object.prototype[0] = 42;
+  var [ a ] = [];
+  var { 0: b } = {};
+  // 42 undefined
+  console.log([][0], a);
+  // 42 42
+  console.log({}[0], b);
+  ```
 - Earlier versions of JavaScript will throw `SyntaxError` with the following:
   ```javascript
   ({