diff --git a/.vscode/settings.json b/.vscode/settings.json index c563d5f..4337d2e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,5 +13,79 @@ "files.encoding": "utf8", "git.enabled": true, "npm.enableScriptExplorer": true, - "typescript.tsdk": "node_modules/typescript/lib" + "typescript.tsdk": "node_modules/typescript/lib", + "cSpell.ignoreWords": [ + "apis", + "asarray", + "asiterable", + "aspnet", + "berksfile", + "berkshelf", + "changelog", + "checkboxes", + "clavecoder", + "clavecoder's", + "concat", + "cordova", + "ctor", + "destructuring", + "devenv", + "dgeni", + "dist", + "distros", + "dotnet", + "devtool", + "ecma", + "esdoc", + "falsy", + "gitignore", + "golang", + "greenkeeper", + "hypervisor", + "initializations", + "invariants", + "iterability", + "iterable", + "iterables", + "jali", + "jalidev", + "markdownlint", + "metaproperty", + "mkdirp", + "microservice", + "microservices", + "monorepo", + "monorepos", + "multitenant", + "npmignore", + "onboarding", + "partitionable", + "pluggable", + "polyfill", + "prerelease", + "provisioner", + "provisioners", + "relavent", + "repo", + "roadmap", + "semver", + "serverless", + "shortcode", + "simd", + "simlinks", + "srcs", + "submodule", + "tada", + "transpilation", + "triaged", + "toolset", + "truthy", + "typedef", + "typeguard", + "typings", + "vagrantfile", + "validators", + "webpackfile", + "yyyy" + ] } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 95fcacc..f138def 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,7 +33,7 @@ onboarding information. This document explains how to contribute to the Jali project. For an introduction to Jali, see [README.md](./README.md). To understand the -design of the Jali project, see [DESIGN.md](./DESIGN.md). +design of the Jali project, see [DESIGN.md](./project/DESIGN.md). ## Getting Started @@ -116,9 +116,9 @@ To contribute you must sign the For `non-contributors` and `contributors`, Jali issues consist of `Questions` and `Ideas`. Only a `core-contributor` should create a `Bug`, `Enhancement`, or `Epic`. Please follow -[ISSUE-TEMPLATE-INSTRUCTIONS.md](./ISSUE-TEMPLATE-INSTRUCTIONS.md) when +[ISSUE-TEMPLATE-INSTRUCTIONS.md](./project/ISSUE-TEMPLATE-INSTRUCTIONS.md) when creating a Jali issue. It provides detailed instructions and a -systematic [decision tree](./ISSUE-TEMPLATE-INSTRUCTIONS.md#template-form-decision-tree) +systematic [decision tree](./project/ISSUE-TEMPLATE-INSTRUCTIONS.md#template-form-decision-tree) to determine which issue form you should create. ### Triage diff --git a/cSpell.json b/cSpell.json deleted file mode 100644 index 24f81cd..0000000 --- a/cSpell.json +++ /dev/null @@ -1,88 +0,0 @@ -// cSpell Settings -{ - // Version of the setting file. Always 0.1 - "version": "0.1", - // language - current active spelling language - "language": "en", - // words - list of words to be always considered correct - "words": [ - "apis", - "asarray", - "asiterable", - "aspnet", - "berksfile", - "berkshelf", - "changelog", - "checkboxes", - "clavecoder", - "clavecoder's", - "concat", - "cordova", - "ctor", - "destructuring", - "devenv", - "dgeni", - "dist", - "distros", - "dotnet", - "devtool", - "ecma", - "esdoc", - "falsy", - "gitignore", - "golang", - "greenkeeper", - "hypervisor", - "initializations", - "invariants", - "iterability", - "iterable", - "iterables", - "jali", - "jalidev", - "markdownlint", - "metaproperty", - "mkdirp", - "microservice", - "microservices", - "monorepo", - "monorepos", - "multitenant", - "npmignore", - "onboarding", - "partitionable", - "pluggable", - "polyfill", - "prerelease", - "provisioner", - "provisioners", - "relavent", - "repo", - "roadmap", - "semver", - "serverless", - "shortcode", - "simd", - "simlinks", - "srcs", - "submodule", - "tada", - "transpilation", - "triaged", - "toolset", - "truthy", - "typedef", - "typeguard", - "typings", - "vagrantfile", - "validators", - "webpackfile", - "yyyy" - ], - // flagWords - list of words to be always considered incorrect - // This is useful for offensive words and common spelling errors. - // For example "hte" should be "the" - "flagWords": [ - "hte" - ] -} diff --git a/ecmascript-proposals.md b/ecmascript-proposals.md index 49c9ade..3ee154f 100644 --- a/ecmascript-proposals.md +++ b/ecmascript-proposals.md @@ -35,30 +35,31 @@ Table of ECMAScript proposals and their usage in **Jail**. | [Object.getOwnPropertyDescriptors][6]| ES2017 | [mdn10] | Yes | core.js | Yes | NA | 8 LTS | | | [trailing commas from function calls][9]| ES2017 | [2ality00] | Yes | | Yes | [syntax-trailing-function-commas] | 8 LTS | | | [Async Functions][8] | ES2017 | [mdn11] | Yes | | Yes | [transform-async-to-generator] | 8 LTS | | -| [Shared memory and atomics][14] | ES2017 | [mdn13] | See notes| | [2.6][ts26] #[15753]| | 9 | Typescript supports the syntax. Implementation support javascript runtime and version| -| [Lifting Template Literal Restriction][24]| ES2018 | [mdn14]
[2ality02]| | | #[12700] | V7 Core See PR #[274] | 9 | | +| [Shared memory and atomics][14] | ES2017 | [mdn13] | See notes| | Yes | | 9 | Typescript supports the syntax. Implementation support javascript runtime and version| +| [Lifting Template Literal Restriction][24]| ES2018 | [mdn14]
[2ality02]| | | #[12700] | V7 Core See PR #[274] | 9 | On TypeScript 3.2 roadmap | | [`s` (`dotAll`) flag for regular expressions][37]| ES2018| [2ality10] | Yes | | | [transform-modern-regexp] | 9 | | | [RegExp named capture groups][35] | ES2018 | [2ality09] | Yes | | | [transform-modern-regexp] | 10 | Babel may also support through regexpu See [babel proposals #35][babel-proposals-35]| | [RegExp Lookbehind Assertions][39] | ES2018 | [2ality07] | | | | No. See [transform-modern-regexp #5][transform-modern-regexp5]| 9| | | [RegExp Unicode Property Escapes][23]| ES2018 | [2ality08] | Yes | | | [transform-unicode-property-regex] | 10 | | -| [Rest/Spread Properties][13] | ES2018 | [2ality04] | Yes | | [2.1][ts21]] | [transform-object-rest-spread] | 8 LTS | | -| [Promise#finally][16] | ES2018 | [2ality11] | Yes | core.js | | | 10 | [promise.prototype.finally][promise.prototype.finally] | -| [Asynchronous Iteration][11] | ES2018 | [2ality05] | Yes | | [2.3][ts23] #[11326]| [transform-async-generator-functions]| 10 | | -| [Optional catch binding][44] | ES2019 | [2ality14] | Yes | | [2.5][ts25] #[17467]| [transform-optional-catch-binding]| | [Added to chrome codebase 2018-01-19](https://bugs.chromium.org/p/v8/issues/detail?id=6889)| -| [JSON superset][65] | ES2019 | | | | | PR #[#7985] | | | +| [Rest/Spread Properties][13] | ES2018 | [2ality04] | Yes | | Yes | [transform-object-rest-spread] | 8 LTS | | +| [Promise#finally][16] | ES2018 | [2ality11] | Yes | core.js | Yes | | 10 | [promise.prototype.finally][promise.prototype.finally] | +| [Asynchronous Iteration][11] | ES2018 | [2ality05] | Yes | | Yes | [transform-async-generator-functions]| 10 | | +| [Optional catch binding][44] | ES2019 | [2ality14] | Yes | | Yes | [transform-optional-catch-binding] | | [Added to chrome codebase 2018-01-19](https://bugs.chromium.org/p/v8/issues/detail?id=6889)| +| [JSON superset][65] | ES2019 | | | | | [proposal-json-strings ] | | | | [Function#toString revision][10] | Stage 3 | [2ality01] | | | | | 10. 6 LTS (Partial)| | -| [global][15] | Stage 3 | [2ality03] | Yes | core.js | #[12902] | | | core.js v2.5.0 | -| [import()][34] | Stage 3 | [2ality06] | Yes | | [2.4][ts24] #[14495]| [syntax-dynamic-import] | | Babel syntax/transform not used as dynamic modules are [supported by Webpack 2][code-splitting-with-es2015].
Used by AVA based unit testing| +| [global][15] | Stage 3 | [2ality03] | Yes | core.js | #[12902] | | | | +| [import()][34] | Stage 3 | [2ality06] | Yes | | Yes | [syntax-dynamic-import] | | Babel syntax/transform not used as dynamic modules are [supported by Webpack 2][code-splitting-with-es2015].
Used by AVA based unit testing| | [Legacy RegExp features in JavaScript][32]| Stage 3| | | | | | | | -| [BigInt][43] | Stage 3 | [2ality12] | | | #[15096] | PR #[6015] | | | -| [`import.meta`][45] | Stage 3 | [2ality15] | | | | | | | +| [BigInt][43] | Stage 3 | [2ality12] | | | #[15096] | PR #[6015] | | On TypeScript 3.2 roadmap | +| [`import.meta`][45] | Stage 3 | [2ality15] | Partial| | Yes | | 10. | See Typescript PR #[23327] for instructions how to use | | [Private instance methods and accessors][46]| Stage 3|[2ality13] | | | #[9950] | V7 [transform-class-properties] | | See #[7842] Merged 2018-05-18 for 7.0.0-beta.48 | -| [Array#{flat,flatMap}][49] | Stage 3 | | Yes | core.js | | | | | +| [Array#{flat,flatMap}][49] | Stage 3 | | Yes | core.sj | | | | | | [Instance class fields and methods][47]| Stage 3 | [2ality13] | Yes | | Yes. See comment| [transform-class-properties] | | Bug in TypeScript #[12212] does not pass through to Babel| | [Static class fields and methods][75]| Stage 3 | [2ality13] | Yes | | Yes. See comment| [transform-class-properties] | | Bug in TypeScript #[12212] does not pass through to Babel| | [String#{trimStart,trimEnd}][17] | Stage 3 | | Yes | core.js | | | | | | [String#matchAll][41] | Stage 3 | | Yes | core.js | | | | | -| [Symbol#description][60] | Stage 3 | | Yes | core.js | | | | | +| [Symbol#description][60] | Stage 3 | | | core.js | | | | | +| [Object.fromEntries][84] | Stage 3 | | | core.js | PR #[26149] | | | | | [Numeric separators][48] | Stage 2 | | | | *2.7* #[20582]| [transform-numeric-separator] | | | | [function.sent metaproperty][12] | Stage 2 | | Yes | | | [transform-function-sent] | | | | [Decorators][18] | Stage 2 | | Yes | | Yes | [transform-decorators-legacy] | | [Needs write in Babel][babel-2016-12-07] | @@ -66,15 +67,18 @@ Table of ECMAScript proposals and their usage in **Jail**. | [Atomics.waitAsync][59] | Stage 2 | | | | | | | | | [Hashbang Grammar][85] | Stage 2 | | | | | | | | | [WeakRefs][29] | Stage 2 | | | | | | | | -| [Object.fromEntries][84] | Stage 2 | | | | | | | | | [Top-level await][79] | Stage 2 | | | | | | | | | [New Set methods][82] | Stage 2 | | | | | | | | | [Well-formed `JSON.stringify`][90] | Stage 2 | | | | | | | | | [Function#toString() censorship][78] | Stage 2 | | | | | | | | | [Realms][56] | Stage 2 | | | | | | | | -| [Date.parse fallback semantics][25] | Stage 1 | | | | | | | | +| [ArrayBuffer#transfer][96] | Stage 2 | | | | | | | | +| [RegExp Match array offsets][95] | Stage 2 | | | | | | | | +| [Sequence properties in Unicode property escapes][88]| Stage 2| | | | | | | | +| [InterpreterDirective][68] | Stage 2 | | | | | | | | +| [Temporal][57] | Stage 2 | | | | | | | | | [export v from "mod"; statements][27]| Stage 1 | | | | | | | | -| [Observable][19] | Stage 1 | | Yes | core.js | | | | | +| [Observable][19] | Stage 1 | | Yes | core.js | | | | core-js/fn/observable | | [Frozen Realms][30] | Stage 1 | | | | | | | | | [Math Extensions][22] | Stage 1 | | Yes | core.js | | | | | | [`of` and `from` on collection constructors][33]| Stage 1| | Yes | core.js | | | | | @@ -84,7 +88,6 @@ Table of ECMAScript proposals and their usage in **Jail**. | [Math.signbit: IEEE-754 sign bit][53]| Stage 1 | | Yes | core.js | | | | | | [Error stacks][54] | Stage 1 | | | | | | | | | [do expressions][55] | Stage 1 | | | | | | | | -| [Temporal][57] | Stage 1 | | | | | | | | | [Float16 on TypedArrays, DataView, Math.hfround][58]| Stage 1| | | | | | | | | [Number.{parseInt,parseFloat} changes| Stage 1 | | | | | | | | | [Binary AST][61] | Stage 1 | | | | | | | | @@ -94,7 +97,6 @@ Table of ECMAScript proposals and their usage in **Jail**. | [Nullary coalescing operator][66] | Stage 1 | | | | | | | | | [Partial application][67] | Stage 1 | | | | | | | | | [Cancellation API][74] | Stage 1 | | | | | | | | -| [InterpreterDirective][68] | Stage 1 | | | | | | | | | [String#replaceAll][69] | Stage 1 | | | | | | | | | [String#codePoints][70] | Stage 1 | | | | | | | | | [Distinguishing literal strings][71] | Stage 1 | | | | | | | | @@ -108,23 +110,43 @@ Table of ECMAScript proposals and their usage in **Jail**. | [Richer Keys][86] | Stage 1 | | | | | | | | | [Slice notation][87] | Stage 1 | | | | | | | | | [Logical Assignment Operators][88] | Stage 1 | | | | | | | | -| [Sequence properties in Unicode property escapes][88]| Stage 1| | | | | | | | | [Module Keys][91] | Stage 1 | | | | | | | | | [Class Static Block][92] | Stage 1 | | | | | | | | | [class Access Expressions][93] | Stage 1 | | | | | | | | | [Pattern Matching][94] | Stage 1 | | | | | | | | -| [RegExp Match array offsets][95] | Stage 1 | | | | | | | | -| [String.prototype.at][21] | Stage 0 | | Yes | core.js | | | | | +| [Explicit Resource Management][97] | Stage 1 | | | | | | | | +| [Dynamic Modules][98] | Stage 1 | | | | | | | | +| [JavaScript Standard Library][99] | Stage 1 | | | | | | | | +| ["use modules"][100] | Stage 1 | | | | | | | | +| [for-in mechanics][101] | Stage 1 | | | | | | | | +| [Uniform Date.parse][102] | Stage 1 | | | | | | | | +| [JSON.parse source text access][103] | Stage 1 | | | | | | | | + +### Core-js imports + +| Proposal | Imports | +|:-------------------------------------|:-------| +| [global][15] | core-js/fn/global | +| [Array#{flat,flatMap}][49] | core-js/fn/array/flat-map
core-js/fn/array/flatten (but renamed v. > 2.5.7!)| +| [String#{trimStart,trimEnd}][17] | core-js/fn/string/trim-left
core-js/fn/string/trim-right| +| [String#matchAll][41] | core-js/fn/string/match-all | +| [Symbol#description][60] | v > 2.5.7, core-js/fn/symbol/description | +| [Object.fromEntries][84] | v > 2.5.7, core-js/fn/object/fromEntries | +| [Observable][19] | core-js/fn/observable | +| [Math Extensions][22] | ## Document Workflow -Next update to process for meeting **TC39 2018-05** from TC39 Proposals -README document is 83f2325 on 2018-05-22. +Processed update for meeting *TC39 2018-09* from TC39 Proposals +Processed README document through commit 1626c4b on 2018-09-27. ### Process Status -- Looking at **TC39 2018-05** +- Looked at *TC39 2018-09* - Add [transform-optional-catch-binding] +- Investigate support for Object.fromEntries +- Upgrade to Babel 7 [Upgrade doc](https://babeljs.io/docs/en/v7-migration) +- Include core-js proposals directly. See [this Babel issue comment](https://github.com/babel/babel/pull/8440#issuecomment-414705718) [1]: http://www.ecma-international.org/ecma-262/6.0/#sec-modules [2]: http://www.ecma-international.org/ecma-262/6.0/#sec-setfunctionname @@ -149,7 +171,6 @@ README document is 83f2325 on 2018-05-22. [22]: https://github.com/rwaldron/proposal-math-extensions [23]: https://github.com/tc39/proposal-regexp-unicode-property-escapes [24]: https://github.com/tc39/proposal-template-literal-revision -[25]: https://github.com/tc39/proposal-date-time-string-format [26]: https://github.com/leebyron/ecmascript-export-ns-from [27]: https://github.com/leebyron/ecmascript-export-default-from [29]: https://github.com/tc39/proposal-weakrefs @@ -184,7 +205,7 @@ README document is 83f2325 on 2018-05-22. [60]: https://github.com/tc39/proposal-Symbol-description [61]: https://github.com/syg/ecmascript-binary-ast [62]: https://github.com/tc39/proposal-pipeline-operator -[63]: https://github.com/littledan/proposal-extensible-numeric-literals +[63]: https://github.com/tc39/proposal-extended-numeric-literals [64]: https://github.com/michaelficarra/proposal-first-class-protocols [65]: https://github.com/tc39/proposal-json-superset [66]: https://github.com/tc39-transfer/proposal-nullish-coalescing @@ -217,6 +238,14 @@ README document is 83f2325 on 2018-05-22. [93]: https://github.com/rbuckton/proposal-class-access-expressions [94]: https://github.com/tc39/proposal-pattern-matching [95]: https://github.com/rbuckton/proposal-regexp-match-offsets +[96]: https://github.com/domenic/proposal-arraybuffer-transfer +[97]: https://github.com/rbuckton/proposal-using-statement +[98]: https://github.com/guybedford/proposal-dynamic-modules +[99]: https://github.com/msaboff/JavaScript-Standard-Library +[100]: https://github.com/tc39/proposal-modules-pragma +[101]: https://github.com/bakkot/for-in-exploration +[102]: https://github.com/gibson042/ecma262-proposal-uniform-interchange-date-parsing +[103]: https://github.com/gibson042/ecma262-proposal-JSON-parse-with-source [syntax-trailing-function-commas]: https://babeljs.io/docs/plugins/syntax-trailing-function-commas/ [syntax-dynamic-import]: https://babeljs.io/docs/plugins/syntax-dynamic-import/ @@ -238,7 +267,6 @@ README document is 83f2325 on 2018-05-22. [4576]: https://github.com/babel/babel/pull/4576 [6015]: https://github.com/babel/babel/pull/6015 [7842]: https://github.com/babel/babel/pull/7842 -[7985]: https://github.com/babel/babel/pull/7985 [transform-modern-regexp5]: https://github.com/DmitrySoshnikov/babel-plugin-transform-modern-regexp/issues/5 [babel-proposals-35]: https://github.com/babel/proposals/issues/35#issuecomment-392068353 @@ -252,6 +280,8 @@ README document is 83f2325 on 2018-05-22. [15753]: https://github.com/Microsoft/TypeScript/issues/15753 [17467]: https://github.com/Microsoft/TypeScript/issues/17467 [20582]: https://github.com/Microsoft/TypeScript/issues/20582 +[23327]: https://github.com/Microsoft/TypeScript/pull/23327 +[26149]: https://github.com/Microsoft/TypeScript/pull/26149 [code-splitting-with-es2015]: https://webpack.js.org/guides/migrating/#code-splitting-with-es2015