Ok, what about a "use strict comments"; solution to prevent web breaking?
On Thu, Oct 20, 2016 at 7:33 PM, Rick Waldron <waldron.r...@gmail.com> wrote: > Overloading comments is not likely to be accepted as a new feature; doing so > could be dramatically "web breaking". > > You may be interested in this: > https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#types > > > Rick > > On Thu, Oct 20, 2016 at 1:14 PM Gert Cuykens <gert.cuyk...@gmail.com> wrote: >> >> Currently there are two ways to make comments `//` and `/**/` in >> Ecma262. I think if Ecma262 has a broader way of implementing comments >> it can open up the door for third party type checkers and leave the >> burden onto others without the need for transpiling. >> >> I am looking into how close ES20XX syntax for example compares to >> typescript syntax. A Ecma262 compiler doesn't need to look at the >> typings at all, just be smart enough to ignore typings. Is the Ecma262 >> community willing to look at a few syntax notations that a Ecma262 >> parser should ignore? >> >> If there is no objection at first look I am going to put in the effort >> to try to cover a complete syntax that extends `//` and `/**/` so >> others can use that to implement for example a type checker? Notice >> that I am not asking for type checking itself, just expanding `//` and >> `/**/` that makes it possible for others to do for example type >> checking and maintain a clean syntax look of their code. >> >> ## Example ES2015 code >> >> ```html >> <!DOCTYPE html> >> <html > >> >> <head> >> <title>Test</title> >> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> >> <meta name="viewport" content="width=device-width, >> initial-scale=1.0, minimum-scale=1.0" /> >> </head> >> >> <body> >> <template> >> <style> >> :host { >> display: block; >> box-sizing: border-box; >> border: 1px solid red; >> margin: 13px 0; >> padding: 0 17px; >> } >> </style> >> <p>Test <slot></slot></p> >> </template> >> <script> >> class HelloWorld extends HTMLElement { >> constructor() { >> super() >> const t = document.querySelector('template') >> const instance = t.content.cloneNode(true) >> const shadowRoot = this.attachShadow({ mode: 'open' }) >> shadowRoot.appendChild(instance) >> } >> } >> customElements.define('hello-world', HelloWorld) >> </script> >> <hello-world>Hello World</hello-world> >> </body> >> </html> >> ``` >> >> ## Example typescript code >> >> ```html >> <!DOCTYPE html> >> <html > >> >> <head> >> <title>Test</title> >> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> >> <meta name="viewport" content="width=device-width, >> initial-scale=1.0, minimum-scale=1.0" /> >> </head> >> >> <body> >> <template> >> <style> >> :host { >> display: block; >> box-sizing: border-box; >> border: 1px solid red; >> margin: 13px 0; >> padding: 0 17px; >> } >> </style> >> <p>Test <slot></slot></p> >> </template> >> <script type="ts/module"> >> class HelloWorld extends HTMLElement { >> constructor() { >> super() >> const t:type1 = document.querySelector('template') >> const instance:type2 = t.content.cloneNode(true) >> const shadowRoot:type3 = this.attachShadow({ mode: 'open' }) >> shadowRoot.appendChild(instance) >> } >> } >> customElements.define('hello-world', HelloWorld) >> </script> >> <hello-world>Hello World</hello-world> >> </body> >> </html> >> ``` >> _______________________________________________ >> es-discuss mailing list >> es-discuss@mozilla.org >> https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss