Twitter hashtag: #esspec
便利ツール
自己紹介 (近況報告)
syumai syumai.icon
こう言うのを始めました
初回来月13日(金)です
満員御礼であったyebis0942.icon
tars0x9752 (たーず / naoki aoyama) tars0x9752.icon
特になし
Nodejs 16 EOL
yebis0942 (えびす) yebis0942.icon
Go, Reactを書いて暮らしています
最近はFetchの仕様書を読んだりしていました
If input is a string, then:
と書きつつ、実装では暗黙的にtoStringしてそう
If response is a network error, then reject p with a TypeError and abort these steps.
ネットワークエラーでもTypeErrorが投げられる。マジか
TypeError is used to indicate an unsuccessful operation when none of the other NativeError objects are an appropriate indication of the failure cause.
antisatori
急に使ってみたくなって初めてneovimの設定しました
nvchad 使ったら見た目だけvscodeみたいになりましたが難しくてすぐ辞めそう tars0x9752.icon nvchad 知らなかった
syumai > すごいVimの動画です
https://www.youtube.com/watch?v=cWvAhmfZJZg
tars0x9752.icon vimmer ではないけど git のコミットメッセージ書くときだけ neovim 使ってます
yebis0942.icon 最近テキストオブジェクトの使い方を教えてもらって大感動しました
前回のあらすじ
今回の範囲
11.2.3 Non-ECMAScript Functions
関数 exotic object
native codeで定義された関数っぽい
12 ECMAScript Language: Lexical Grammar
multiple goal symbolの列挙
これは例示ではなくて仕様の記述っぽい
table:multiple goal symbols
Goal Symbol 使われる文脈
InputElementHashbangOrRegExp Script or Moduleの最初
InputElementRegExpOrTemplateTail RegularExpressionLiteral, TemplateMiddle, TemplateTailが許される場所
InputElementRegExp RegularExpressionLiteralが許されるが、TemplateMiddleもTemplateTailも許されない場所
InputElementDiv 他のすべての文脈
これは何のためのルールなのか?
たぶん曖昧な文法を解消するためのルール
具体的には…
InputElementHashbangOrRegExp: ソースコードの先頭だけでHashbangを受け付けるようにするルール
その他は/を割り算の記号と正規表現の記号のどちらと判定するかで曖昧性が生じないようにするルール
「先頭に割られるものがなければ正規表現」みたいな感じっぽい
code:hashbang.js
// huga (これがInputElementHashbangOrRegExpになる)
コメント
/の扱いややこしいですね
ScalaにはXMLリテラルという機能があってパースが大変そう
かつてECMAScript for XMLという仕様があった(廃止済み)
table:syntax
Component InputElementDiv InputElementRegExp InputElementRegExpOrTemplateTail InputElementTemplateTail InputElementHashbangOrRegExp
WhiteSpace ✓ ✓ ✓ ✓ ✓
LineTerminator ✓ ✓ ✓ ✓ ✓
Comment ✓ ✓ ✓ ✓ ✓
CommonToken ✓ ✓ ✓ ✓ ✓
DivPunctuator ✓ ✓
RightBracePunctuator ✓ ✓
RegularExpressionLiteral ✓ ✓ ✓
TemplateSubstitutionTail ✓ ✓
HashbangComment ✓
12.1 Unicode Format-Control Characters, 12.2 White Space
Unicode format-control characters: テキストの向きを制御したりできるunicode文字
U+200C (ZERO WIDTH NON-JOINER) and U+200D (ZERO WIDTH JOINER)
Identifierには使える(ただし先頭に登場してはいけない)
code:js
eval("let \u200c") // Uncaught SyntaxError: illegal character U+200C
eval("let a\u200c") // OK
eval("let a\u200c\u200c") // OK
文字間を分離するための文字
文字をくっつけるための文字
絵文字とかにも使える
ZERO WIDTH NO-BREAK SPACE
copy("\ufeff")
RIGHT-TO-LEFT MARK
Space_Separator