[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 03/07 01:59 / Filesize : 110 KB / Number-of Response : 495
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ECMAScript デス 3



1 名前:デフォルトの名無しさん [2007/09/19(水) 09:08:01 ]
《ECMAScriptを語るスレ》

1. - 概要 -
ECMA-262規格として知られる言語(通称 ECMAScript)についての利用法や言語仕様、
その他四方山話をするスレです。
- ECMA-262 3rd Edition 標準規格(英語)-
www.ecma-international.org/publications/standards/Ecma-262.htm
Under Translation of ECMA-262 3rd Edition (日本語訳)
www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/


前スレ
ECMAScript デス 2
pc11.2ch.net/test/read.cgi/tech/1088298991/

過去スレ
JavaScript デス
pc5.2ch.net/test/read.cgi/tech/1052273054/


239 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 03:20:12 ]
最長一年半じゃない?
ブラウザをアップデイトしない選択肢はないから。

240 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 07:31:57 ]
>>239
いや、結構古いまま使ってる人多いよ。

241 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 10:19:39 ]
うちのアクセスログ、今でもIE5とかある。

242 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 11:53:15 ]
>>241
NS4.7とか言うのもまだあったりするからなぁ

243 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 11:55:04 ]
IEなんて2のころからまともに使ったことないが
シェルに食い込んでるからバージョンアップだけはやってるな。

244 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:02:45 ]
マルチプラットフォームに使えるgeckoとwebkitとoperaだけ確認しておけばok。

245 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:15:22 ]
IEはどのみちJavaScript動かないしね。

246 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 20:37:03 ]
JScriptってコンテキスト周りでecmaすら満たしてなかった気がするが

247 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:28:36 ]
es4はどうよ?
俺は正直イラネ



248 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 21:41:59 ]
ActionScript同様に扱える予定なんだろ、方向性自体は悪くないんじゃね?
まあ現物見てみないとアレだが、長い目で期待してるよ
どうせIEでも使える日は当面来ない

249 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:35:02 ]
>>247
別の言語だと思ってるので遠くから見てる。
>>248 も言ってるようにWebで使いものになるのは当分先だろう…

250 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 06:15:58 ]
es3のほうが言語として美しい。es4はキメラ化した愚作。

251 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 17:37:52 ]
確かに言語としてはes3の方が美しいよな。
クラスベースにしたのにプロトタイプのこすとかイラネ。
まあIEがまともに実装することは永久にないのでwebでは日の目見ないだろうな。
標準クラスライブラリが多すぎるのも問題だ。

252 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 18:12:50 ]
とはいえprototype.jsとか使って疑似クラスとか定義しているのが主流なのを見ると、
言語の機能としてクラスベースを取り入れるのも正しい方向性っちゃそうなのかもしれない。
既存のクラスをprototypeで拡張できなくなるのはちょっと寂しいけどな。

253 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 18:25:13 ]
prototype.jsって別にいらないと思うんだがそんなにプロトタイプベースは嫌いかね?

254 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 18:39:39 ]
今のところ既存のクラスをprototypeで拡張出来るはずだが。

es4 は今がりがり仕様を削ってるところなので様子見。
es3.1 がちっとづつ進んでて興味深い(MS主導)

255 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 20:23:02 ]
>>253
俺もprototype.jsは嫌い。
つーか、マトモな感覚してたらあんなwarning出まくりのライブラリなんて気味悪くて使えん。

256 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 01:10:40 ]
そのマトモな感覚ってのがecmaの仕様理解しててプロトタイプベースも使いこなしてるって事だから
実際にajaxアプリ書いてる連中には居ないだろうな。


257 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 04:26:31 ]
このスレ見て俺ってまだ勉強不足なんだなって思ったよ
ああ・・・



258 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 13:49:16 ]
似非クラスベースやりたいだけならprototype.jsなしでも
継承モデルとか作れなくもないしな
カプセル化の面で多少悩みは残るけど

でもjQueryは手放せない

259 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 13:56:49 ]
継承させる場合はFunction.apply()使えば良いけどミックスインしか出来ないんだよな。

260 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 09:11:18 ]
Yahoo UIってどうよ
めちゃくちゃメソッド・プロパティあるけど

261 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 11:57:47 ]
ecma-262関係ないな。

262 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 16:14:32 ]
fx3がリリースされてjs1.8が登場したわけだが・・・rhinoはまだか!?

263 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 20:20:40 ]
1.8以前に1.7R2がまだ…
ttp://blog.norrisboyd.com/search/label/rhino

264 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 22:08:11 ]
SpiderMonkey の 1.8 が出てからじゃない?そうでないと仕様確定できないとか?
Fx 3.0.* が結構出てからでしょ。

developer.mozilla.org/en/docs/New_in_JavaScript_1.8
もまだいまいち、JSON, Slice Syntax は js には入ってないし、
https://bugzilla.mozilla.org/show_bug.cgi?id=404734
が入ってない。

265 名前:sage mailto:sage [2008/06/29(日) 22:55:41 ]
tamarin付属のescにて、

es> eval("2/1");
SyntaxError: (EVAL CODE): Binding form not legal: {/*NamespaceFixture*/ 'ns': {/*InternalNamespace*/ 'name': '<#internal (EVAL CODE)>'}}

となるのはなぜですか?

266 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 23:43:48 ]
まだ文法パースすら出来てないんじゃない?
RIもそんな感じだし。

267 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 00:03:49 ]
文法ころころ細かく変わってるからおかしくなるのは仕方ないんだけど、
数値まわりは lexer がおかしいのかも。
RI-M2 で function test2d {...} とやったらエラー出たのはびっくりした。
(2d で数値リテラルと解釈したらしい、なんじゃそら)



268 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 15:03:08 ]
>>267
function test2d() { ... }
じゃないんですか。

269 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 17:32:35 ]
>>268
typo った。スマン

270 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 23:17:16 ]
無名関数を #(x,y)と書く処理系があったのですが、他でも同じように書いて動くのでしょうか?

271 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 23:24:58 ]
初めて聞いたkwsk

272 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 13:13:42 ]
右シフト演算子、「符号ありが >> で、符号なしが >>>」に
決めたのはなぜだろう。
「符号なしが >> で、符号の分を更にシフトする方が >>>」って考えると
しっくり行くのに。っつーかそう誤解してた。
更に、逆に解説してるサイトもある。

273 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 13:56:35 ]
>>272
符号の分をさらにシフトすると何がうれしいんだい?

274 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 14:13:07 ]
>>273
質問の意図がよく判らないけど、
負の数を負のまま扱えるから嬉しい。
算術シフトの名の通り。

275 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 14:25:28 ]
>>274
負の数のまま扱いたければ、普通に算術シフトを使う処理系で>>すればいいだけ。
何かカンチガイしてないか?

276 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 15:20:24 ]
よく判らんなー。
元々は>>272の「>>と>>>を誤解してる人がいる」って話なのに、
>>273が「何がうれしい」と謎の質問をしてるのが、こじれの発端だ。
嬉しい/嬉しくないっていう評価軸の話は元の質問には無関係。
>>275も何か変な事を言ってる。
算術右シフトも論理右シフトも、ECMAScriptの話であって、
「そういう処理系で」って話は、どう飛躍してるんだ。

277 名前:272 mailto:sage [2008/07/07(月) 15:26:46 ]
何か話がややこしく(?)なった様で申し訳ない。
>>273
ビット操作物を書いてる時に、論理シフトを期待して>>を使ったら
MSB=1の時に意図しない動作をしたのが発見の経緯だったので、
「符号をシフトされて(私個人が)嬉しくなかった」という話。
で、>>と>>>を今の様に割り振った理由を知りたいな、と。



278 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 15:58:02 ]
別に理由なんかないと思うがな。最初にそう決めたからそうなんだろう。
数学で足し算の記号に「+」を割り振ったのはなぜか?
とかいわれてもそう定義したからとしか言いようがなくね?

279 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 16:46:53 ]
単に慣例に従っただけってのが大きいと思うよ d.hatena.ne.jp/ryocotan/20070929/p1

280 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 17:43:26 ]
前例があるんじゃ、そりゃ従うわ。
でも>>272
>「符号なしが >> で、符号の分を更にシフトする方が >>>」って考えると
>しっくり行くのに。
はよく判る。
で、>>273は何を訊きたかったんだろう?

281 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 17:46:03 ]
単に茶々入れたかっただけだと思うけどな

282 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 18:01:01 ]
Number型は符号付きだから、
>>が算術シフトで、>>>が論理シフトである方が自然。
C言語でのsigned int + >>の多くの実装(ただし仕様的には未定義動作)と合致してる。


283 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 18:38:19 ]
たぶんECMAScriptが慣例にあわせてるってのはわかってて聞いてるんだと思うんだけど…

数値型に対する演算子なんだから算術シフトの方が自然な動作で
論理シフトの方が例外的な振る舞いだよな…
「符号の分を更に…」って感覚はちょっとわからないな…
シフトしてるビット数は算術のほうが少ないわけだし

284 名前:283 mailto:sage [2008/07/07(月) 19:18:50 ]
なんか違うなw
シフトしてるビット数は同じで、「最上位ビットを0にする」っていう処理が
追加されたのが論理シフトなんだから「符号の分を更に…」って感覚は
よくわからんと言いたかった。

285 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 19:33:44 ]
>>280
いや、MSBを保存することを「更にシフトする」という言い方では普通は理解不能だろ。
俺もわからんかった。普通の算術シフトの後にもう1回シフトするのかと思ったよ。

286 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 19:50:15 ]
>>284
わざわざ「最上位ビットを0にする」って訳じゃない。
左シフトだって、別に最下位ビットを0に「する」んじゃない。

アセンブラ経験者だと判ってくれるかな。
シフトは、左、右、算術右で、
論理型がデフォ、算術は敢えて明示するみたいな。

287 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:07:50 ]
間違った自分はバカじゃないと同意してほしいわけですね、わかります。



288 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 03:22:22 ]
結局、なんで「さらにシフトする」なんて言ったのか、ワケワカランと思うのは俺だけか?
自称よくわかった人が複数いるみたいだからw、教えてよ。
算術シフトのどこがどう「さらにシフトする」ことになるのか。

289 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 08:10:19 ]
「更にシフト」じゃなく、「更にひと手間」だな。

290 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 09:07:18 ]
更にひと手間つーか、MSBをイジらないだけじゃん。全然手間じゃないよ。

291 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 10:17:28 ]
元の奴の感覚は判るが、言葉が悪い。

動作で<<と(空き位置に0が入るという)対称性があるのは>>>だが、
見た目の対称性は<<と>>だから、違和感がある。

と書けばよかった。

292 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 10:17:37 ]
符号「拡張」っていうくらいで、
nビット(n>1)シフトする時は、
上位nビットに補填するけどな。
(いまどき1ビットづつシフトしない)


293 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 10:20:01 ]
>>291
無理やり論理演算の視点になってるよ。
*2, /2だという算術演算の視点なら逆だ。

プログラマは暗黙の仮定に拘泥してはならない。

294 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 13:46:11 ]
>>293
無理やりも何も、シフトは論理演算でしょ。

295 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 13:54:51 ]
シフトはビット演算です。

11.7 Bitwise Shift Operators
11.7.1 The Left Shift Operator(<<)
>>は符号付き算術演算です。
11.7.2 The Signed Right Shift Operator(>>)
>>も符号なし算術演算です。
11.7.3 The Unsigned Right Shift Operator(>>>)

296 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 14:02:04 ]
>>293
なまじ*2、/2の代用になってるからなー。
っつーか、この発想こそアセンブラだ。
なのにアセンブラ的発想は少数派になってる不思議。

297 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 14:22:08 ]
C/C++みたいにbit長も内部表現も仮定しない仕様を持つ言語の「仕様を」知っ
ている人と、Java,Javascriptのようにbit長規定、内部表現も暗に仮定し
ている言語しか知らない人では、かなり温度差があるんじゃないでしょうかね。
前者は、言語習得時に仕様を確認する習慣があると思います。仕様を確かめな
い感覚派は、アセンブラ知っていればこう考えるはずと、自分の感覚に陥って
しまうんじゃないでしょうか。




298 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 15:15:53 ]
ビット演算で32ビットに丸められるのは、レジスタ幅等の効率の面から判るんだけど、
整数リテラルの±2^53って、どういう根拠なんだろう。
IEEE754の64ビット表現だと、仮数部は52ビットだし。

299 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 16:08:22 ]
仮数部52ビットの上に、見えない1が立ってるからでは?

300 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 16:32:06 ]
本当にアセンブリ言語を知ってる人ならば符号付き演算と符号無し演算に最低限の注意は向けるはずです。
変な思い込みで符号に注意を向けない人は、生兵法でアセンブリを使っている人でしょう。

301 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 17:15:40 ]
>>299
あーそっか。俺バカ。

302 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 17:16:55 ]
>>300
最初のネタに戻ると、間違えて逆に解説してる本やサイトがある。

303 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 22:35:02 ]
そりゃ注意はしてても、まさか演算子の動作を逆に解説してるとは思わないよな。
複雑な関数やバグの確認ならともかく、演算子を事前にテストしてから使う様な事はしないし。

304 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:38:29 ]
Webのクソみたいな解説サイトとかあてにしてたらダメだろ
書籍で間違った解説してるものがあるなら被害者を減らすためにも書名を晒すべき

305 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:45:52 ]
今なら乗除はコンパイラ任せの*/で良いね。シフトはunsignedだけで良いんじゃね?



306 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:49:18 ]
コンパイラの意義は抽象化にあるんだから、
シフトはビット操作にだけ使うべきでしょ。
符号の有無じゃなく。

307 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:58:03 ]
My UNIX Series 『入門 JavaScript』、久野靖、アスキー
P.43
■2項演算子
〜(中略)〜
 ●<<、>>、>>>
  左シフト、右シフト、算術右シフト。

奥付では初版。
以降の版で直ってるかは不明。



308 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 00:27:41 ]
まさかだけど、==と===みたいに
途中で意味が入れ替わった訳じゃないよね?

309 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 09:58:00 ]
あれは痛かったなw

310 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 10:27:43 ]
>>308
revision 1の仕様書を読んだが、
The left shift operator ( << )
The signe3d right shift operator( >> )
The unsigned right shift operator( >>> )
というわけで、変わってはいないようだな。
久野さんにしては珍しいチョンボだね。

311 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 12:04:33 ]
久野さんって、fjでお馴染みの、
高校の情報の教科書を書いてたりする人?

312 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 13:15:28 ]
fjナツカシスw

313 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 18:53:58 ]
ES4では、byte型、int型, uint型が増えますが、
shift演算子の意味はES3のままのようですね。
少なくともtamarinでは、今のところそう実装されています。

314 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 19:25:44 ]
だからなに?

315 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 19:46:11 ]
つ お知らせ


316 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 23:54:34 ]
random seed ってないのね。
まったく同じ乱数列をもう一度再現したいんだけど、
自前でそういう乱数を持つしかないか。

そういや、seed を2回設定すると
副作用で時刻が得られる言語があったよね。

317 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 00:48:57 ]
>>313
> ES4では、byte型、int型, uint型が増えますが、
byte 型は×
bugs.ecmascript.org/ticket/234
https://mail.mozilla.org/pipermail/es4-discuss/2008-March/002547.html
int, uint 型も多分×
bugs.ecmascript.org/ticket/371
AS(Tamarin) は独自拡張として残すんだろう、多分。



318 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 10:01:48 ]
tamarinは、ES4モードじゃなくてASモードの時だけ
既存のint, uintを有効にするんじゃないかな。
ES4のint, uint除外は最近のことなので、
// lib-march-2008に関連ドキュメントも至急削除のコメント
tamarinはまだ追いついてないと思う。

319 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 10:20:45 ]
>>316
awkだ。
srandすると、現在時刻がseedになる。
もう一度srandすると、前のseedを返す。

320 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 12:37:48 ]
仕様変更しすぎだな

321 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:01:36 ]
Number型、桁あふれで内部で勝手にfloat, doubleに昇格されると、
疑似乱数生成のアルゴリズム実装に神経使うよなあ。

322 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 03:24:05 ]
var a() = function
{
this.b = function() {}
}

を、prototypeを使って書き直す場合、どうやって書けば良いのでしょうか?


323 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 03:29:37 ]
なんだそりゃ

var a = function() { };
a.prototype = {
  b: function() { }
};

324 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 14:29:38 ]
>>322
一応言っとくが>>322>>323のコードは等価じゃないぞ。

325 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 18:07:23 ]
誰が等価なコードを望んだんだろう

326 名前:デフォルトの名無しさん [2008/07/18(金) 05:17:50 ]
aを実行しちゃっててわろた

327 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 14:56:37 ]
var o = new Object();
o.f = function() {
 return; // 内容は何でもいい
} // ←ここにセミコロン
(function() {
 void 0; // 内容は何でもいい
})();

このままだとエラーで、o.f に代入する関数リテラルの最後にセミコロンを付けると問題ない。
ここは暗黙で文の区切りにならない?



328 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 16:47:10 ]
ならないからエラーになるんじゃないかな。
とりあえず{}かfuncton() {...}に対する関数呼び出しとして扱われてるはず

329 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 19:35:26 ]
暗黙な 文の区切りなんて obsolete ね いつか動かないはずのコード

330 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 01:43:38 ]
というか仕様書読み直して来い
どの識別子が終端文字とみなされるか調べて来い

331 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 16:05:45 ]
>>321
uintは欲しかったな。
ハッシュ計算、疑似乱数、ビット演算用に。
ブラウザ専用言語だと需要が少ないところだろうが。

332 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:46:54 ]
es4は組み込み言語としての汎用性を求めてなかったっけ?

333 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 00:46:57 ]
331だが、ちょっと調べてみると、
JITで型推論するからNumberあれば十分という戦略らしい。
少なくともtamarinはその方向みたいだ。
そりゃmodulo演算してれば、整数型なことが分かるけどなあ…

334 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 04:35:05 ]
>>333
え、型推論をコンパイル時ではなくJITでやるのか・・・ある意味すげーな、それ。
一般の型推論は理論上NP完全だぞ。実際にはそこまで最悪なケースは滅多にないけど。

335 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 21:42:36 ]
>一般の型推論は理論上NP完全
VMが型推論のパターンを学習すればいいんだ!

336 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 22:24:16 ]
「できる」と「簡単にできる」は別物だろ
自分とこの処理系ならできるからいいって言われても…

337 名前:デフォルトの名無しさん [2008/08/17(日) 08:30:22 ]
ttp://tech.slashdot.org/article.pl?sid=08/08/16/1552227
ttps://mail.mozilla.org/pipermail/es-discuss/2008-August/003400.html



338 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:42:55 ]
ECMAScriptHarmony - ECMAScript Harmony
www.hyuki.com/yukiwiki/wiki.cgi?ECMAScriptHarmony

339 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 11:56:26 ]
ES4あぼん、か。

340 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 12:27:53 ]
>>339
packageがなくなるのも確定か…
packageだけは欲しかったのに
early binding, namespaceがなくなるのはいいんだが

341 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 23:55:05 ]
ES ed.4がなくなってES ed.3.1を作るってこと?
まあ無難だがモジュール性の確保がなぁ。

342 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 23:59:08 ]
プロトタイプベースOOP派の勝利だな。

343 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 02:37:40 ]
>>341
4はなくなるわけじゃない。将来の候補の一つ。
大きく変える前に3.1を出して様子見。
MicrosoftとしてはActionscript牽制に成功。

344 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 02:50:29 ]
>>342
それはまだこれからの協議。

package, early binding, namespaceがなくなること決定らしいが、
これは全く意味が分からない。
言語的にライブラリ管理補佐機構が大きく後退。
Ajaxに暗雲垂れ込める感じ。



345 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 15:46:07 ]
early binding はコンパイル時エラー検出や、class や namespace を
コンパイル時(静的)に決定することで速度改善と実行時書き換えによる
セキュリティエラーを防ぐ、ということだったんだが複雑化と実行時定義との
衝突がうまく解決できないということで OUT

package は namespace の構文糖、4月の段階で既に OUT だった。
namespace は識別子の拡張だったんだが、early binding 抜きだと
速度が落ちまくる。

ライブラリ機構は ES-ML ではいまのところ、Scheme の RSR5 というか、
Perl 類似のものを Dojo で採用されているような構文で検討中。

個人的には catchall が何とかなって欲しいんだが、namespace 抜きだと面倒そうなんだよなぁ

346 名前:345 mailto:sage [2008/08/20(水) 18:23:47 ]
> Dojo で採用されているような構文で検討中。
間違えた、ES-ML で出てるのは Helma NG と Caja だった。
dev.helma.org/wiki/Modules+and+Scopes+in+Helma+NG/
google-caja.googlecode.com/svn/trunk/doc/html/cajaModuleSystem/index.html

まぁ議論のベースになってるのはこれ。
wiki.ecmascript.org/doku.php?id=proposals:modules

347 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 23:22:37 ]
es4にはwktkがない!何故だ!?



348 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 11:38:18 ]
公式に終わってんだからあっても困る、ES3.1 は?

349 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 12:19:00 ]
型指定変数宣言

var hoge:Number;

も無くなったの?

350 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 14:12:33 ]
それは困るなぁ

351 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 16:57:42 ]
型周りは一からやりなおし。どうなるかわからんが素案には
wiki.ecmascript.org/doku.php?id=harmony:types
> A type annotation has the syntax " : type-expression ".
とあるがな。


352 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 19:37:51 ]
ECMAScript デス 3

らぶ デス 3に見えたメガネ買い替えてくる・・・。

353 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 20:01:58 ]
メガネより変えるべきものがあるだろ

354 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 20:57:29 ]
>>353
替えの入手先の問題が。メガネは店で売ってるが。

355 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 21:41:59 ]
>>354
脳へ渡す情報なら幾らでも買えるが人生は売ってないからね。

356 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 08:17:51 ]
死ねば負債は清算できるぜ
ES4は修正して継続するようだが。

357 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 08:23:20 ]
へ?ES4は一旦清算するんでしょ?
やりたきゃES3.1ハーモニーの後にしろと。



358 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 08:34:14 ]
ttp://weblogs.mozillazine.org/roadmap/archives/2008/08/tracemonkey_javascript_lightsp.html
もう Nightly に入ってるって聞いたぜ

359 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 14:58:15 ]
おまいら的には Chrome よりコッチだよな
ttp://code.google.com/p/v8/

360 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 15:39:27 ]
もうJITしていられんな

361 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 19:48:00 ]
V8 はコンパイラオンリーな実装なんだね。
これも JIT に入るのかな。

362 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 21:38:11 ]
コードざっと見たけども「V8で(だけ)速く動く」書き方がありそうなんだよ
google提供のjavascript(mapsなんか)はそう書き直されるんじゃなかろうか

いわゆるひとつの非関税障壁になりそうな予感

363 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 21:58:32 ]
ARMあたりに対応してるからそのうちアンドロイドに組み込まれるんじゃないかと

364 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:32:47 ]
>>362
そんなものがない実装なんてないよ。

365 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 03:40:08 ]
>>362
その懸念はありかもね
他インプリもgoogleのjavascriptを基準に最適化しはじめたりしてね
アホすぎるが

366 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 10:29:19 ]
ようするに方言が増えて、移植性の壁が高くなっただけだな。

367 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 11:07:56 ]
修正BSDだから他も全てV8エンジンベースになるんじゃねーの
これだけ速度の違いを見せつけられるとね



368 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 11:20:04 ]
IEはならない。
firefoxもtamarinがあるし、XULを考えると差し換えはかなりの大作業。

369 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:49:13 ]
Rhinoはもとから十分早いし。

370 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:53:41 ]
>>368
firefox に tamarin が入る目はもはやほとんどないよ
tamarin jit だけ移植して終わり

371 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:27:30 ]
ホント、タマリンはこれからどうするんだろね

372 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:47:29 ]
MLでそんな議論になってる?

373 名前:デフォルトの名無しさん [2008/09/05(金) 21:01:13 ]
超超初歩の質問です

document.write("hogehoge");
document.clear();

と書いても、clearを無視されてhogehogeと表示されます。
document内容を動的に消去したいです

374 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 21:22:59 ]
document.open();

375 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 13:07:23 ]
>>370-372
> The project was canceled mainly because tamarin-tracing never caught
> up to SpiderMonkey's speed. Tamarin-tracing also would have needed
> a lot of other features to be useful on the web:
https://wiki.mozilla.org/JavaScript:ActionMonkey
(13:32, 4 September 2008 変更)
ML にもアナウンスはなかったと思う

376 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:00:24 ]
tamarin自体を放棄ってことかい
こりゃtamarin

377 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 23:22:51 ]
chrome/JSv8の影響かな?



378 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:03:54 ]
TraceMonkeyに吸収合併じゃねえの?

379 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:10:46 ]
Adobeカワイソス

380 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:19:04 ]
今のとこ >>370 のとおり Tamarin-tracing の nanojit のみ
TraceMonkey(SpidirMonkey + nanojit) に入れてるだけ。
Adobe が使うから Tamarin-central と Tamarin-tracing の開発は続いてる。

しばらく前に DOM の GC に MMgc(Tamarin の GC) を使うか
jemalloc 利用した GC 作るかって話があったんだが、結論がどうなったか
よくわからん、後者っぽいんだけど…

381 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:31:18 ]
>>378
コードとアイデアを Tamarin-Tracing プロジェクトと共有してるっぽい?
英語つよいひと だれか たすけて

> It is based on a technique developed at UC Irvine
> called "trace trees", and building on code and ideas
> shared with the Tamarin Tracing project.
wiki.mozilla.org/JavaScript:TraceMonkey

382 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 02:31:35 ]
そう。

"trace trees"ってのは、
コード列を木構造にして、JIT対象単位とする手法。

383 名前:190.90.128.210.bf.2iij.net mailto:sage [2008/09/10(水) 14:45:40 ]
>>346
>> まぁ議論のベースになってるのはこれ。
>> wiki.ecmascript.org/doku.php?id=proposals:modules

> | ModuleName '.' '*' 'as' Ident '*' # all with prefix

こんなの入れるくらいなら、階層を持つモジュール名をprefixにして、
参照できるようにしてくれよ!


384 名前:190.90.128.210.bf.2iij.net mailto:sage [2008/09/10(水) 17:15:45 ]
v8のソース、10万行ありますね。

385 名前:p31195-adsau15honb9-acca.tokyo.ocn.ne.jp mailto:sage [2008/09/10(水) 20:39:48 ]
tamarinが15万行ぐらいだし普通じゃね?

386 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:53:29 ]
なんでfusianasanなの?

387 名前:385 mailto:sage [2008/09/10(水) 22:02:18 ]
2chの仕様変更?とnavi2chのバグのあわせ技でした
>>383-384 も同じかも



388 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 23:27:11 ]
それはすごいSGだなw

389 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 23:29:27 ]
>>387
どこ行けば判る? > 仕様変更

390 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 23:30:53 ]
ごめん、>>389は無視して。
navi2chのスレと間違えた。

391 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 22:41:27 ]
js1.9とes3.1はまだかーーー

392 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 10:23:21 ]
ttp://webkit.org/blog/214/introducing-squirrelfish-extreme/
みんないったい何に追われているのか、この何ヶ月、必死すぎ。
この元気があれば ES4 だって Harmony だって物凄い勢いで実装済みそうだぜ

393 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 10:53:49 ]
だって、システムソフトウェアでのかつてのCのように、
Javascript/ECMAScriptがUIの世界を支配しそうだから。

394 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 11:52:22 ]
MacがWindowsを駆逐しそうだしな

395 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 19:31:19 ]
>>394
マジで!?

396 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 21:05:28 ]
インタプリタの最終進化まで行きそうだ

397 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 19:16:30 ]
最初からJavaバイトコード吐いてJavaVMに最適化丸投げ出来るRhinoは楽だな。
deoptimize実装してないVMだと動的プロパティは相性悪そうだが。



398 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 23:10:53 ]
SquirrelFish Extremeが早いらしいね。
リッチコンテンツ使うからどこも必死か。

399 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 18:06:04 ]
> ECMAScript Harmony
> Plus, as some JS implementors have noted with concern, multiple open
> namespaces impose runtime cost unless an implementation works
> significantly harder.

これってどこかに具体的な議論ある?

ES4のNamespaceが1st class objectというのはやりすぎだとは思うが、
ほとんど何もできないObjectだから問題が起きそうにもない。
もしかしてName objekutの方で、属するNamespace(qualifier属性)が
immutableになってないことが問題になっているんだろうか。

400 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 23:05:10 ]
>>399
> これってどこかに具体的な議論ある?
ES4-ML で実装が面倒ってのは何度も出てたけど、これは覚えがない。

> もしかしてName objekutの方で、属するNamespace(qualifier属性)が
> immutableになってないことが問題になっているんだろうか。
そうだと思う。
DOM で
script = document.createElement('script');
...appendChild(script);
のように動的に namespace object を持つスクリプトがロードされたとき、
読み込み元のスクリプトの無修飾の name を読み込まれたものと
衝突しないように、qualifier 属性を再構築しなきゃならなくなる
ということでないかな。

401 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 00:30:10 ]
文字列と整数の掛け算できるようになった?

402 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 14:00:07 ]
>>400
え、DOMの名前空間とJavaScriptの名前空間が一緒になるってこと?
じゃないよね?

403 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 15:34:57 ]
>>402
ちがうちがう。ES4 の import とかだけ使うなら問題はないんだろうけど、
legacy な DOM を介する動的ロードするとコストが増加するってこと。
互換性のことがあるから、切るわけにもいかんのでしょ。

404 名前:399 mailto:sage [2008/10/01(水) 17:37:31 ]
>>400
返事遅れました。調べてもやっぱりよくわかりませんなあ。
そういう"intern"がmission criticalなコードってそうないだろうし。

少なくとも、
>>346
> まぁ議論のベースになってるのはこれ。
> wiki.ecmascript.org/doku.php?id=proposals:modules

この案だって、1st class objectでないもののnamespaceはあるわけで、
Brendan Eichが、ejohn.org/blog/ecmascript-harmony/で改めて、

> However, as I noted in my message to the lists,
> namespaces, packages, and early binding are definitely gone.

こう言いきっている意味は分からないな。
namespaceの全くないmoduleなんてありえないもの。

企業の思惑が絡んでくると、分けの分からない議論になるなあ。
ただ、かなり熱い"harmony"だったことは伝わってくるね。

405 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 23:34:06 ]
> こう言いきっている意味は分からないな。
wiki.ecmascript.org/doku.php?id=proposals:modules
harmony になる前に出された提案(というよりスケッチ)なんで
namespace が残ってる、という単純な話かも。

proposals:modules は macro の言及があるように元々 after ES4 の
ためのものだった。「議論のベース」って言ったのはまずかった、すまん。
いいとこ参照先だ。

> namespaceの全くないmoduleなんてありえないもの。
ES4 のメカニズムにおける namespace がないってことでしょう。

一般的な意味での namespace(パッケージシステム?) をどうするのか
まだ見えないけども、内部構造に namespace を持たない形じゃぁ
ないのかなと思ってる(AST になる段階で namespace が消える)


406 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:54:13 ]
というかnamespaceのないmoduleなんてありえないよ。

FOLDOCより
namespace
A set of names in which all names are unique.

namespaceなしじゃmoduleローカルな識別子も定義できないよ。
namespaceオブジェクトとなると行きすぎだろうけど。


407 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:41:46 ]
>>406
そんなのcoding conventionでmodule nameをprefixとして使うとか、どうにでもできる。



408 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:49:45 ]
elispかよw

409 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 18:00:02 ]
オブジェクトを名前空間として流用する風習はあるのだから
「Rubyかよ」の方が適切じゃないかね

410 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 18:06:23 ]
>>409
はあ?「Smalltalkかよ」だろ。

411 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 21:07:28 ]
ルビ厨はこれだから・・・

412 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:10:09 ]
振り仮名用の5.5ポイント活字ですね、わかります。

413 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 00:30:48 ]
いきなりだけど || 演算子のハナシ。

function foo(s){
s = s || 'default string';
...
}

みたいな記述をたまに見かけるんだけど、これ問題ない?
s が単に true になっちゃう処理系があってもおかしくない気がするんだけど。

function foo(s){
s = s==undefined ? 'default string' : s;
...
}

ってこれまで書いてたんだけど、上の例のほうが短いし、慣れれば読みやすい気もする。
ただ数値の場合は 0 渡したいときに困るかね?

414 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 01:34:38 ]
ECMA262より

The production LogicalORExpression : LogicalORExpression || LogicalANDExpression is
evaluated as follows:
1. Evaluate LogicalORExpression.
2. Call GetValue(Result(1)).
3. Call ToBoolean(Result(2)).
4. If Result(3) is true, return Result(2).
5. Evaluate LogicalANDExpression.
6. Call GetValue(Result(5)).
7. Return Result(6).
(中略)
NOTE
The value produced by a && or || operator is not necessarily of type Boolean.
The value produced will always be the value of one of the two operand expressions.


415 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 03:50:28 ]
たまにどころかprototype.jsはじめそこら中で使われてるべ?
むしろundefinedと==で比較する方がやばくね?

416 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 04:51:27 ]
> s が単に true になっちゃう処理系があってもおかしくない気がするんだけど。

つまり、undefinedがbooleanとしてtrueに扱われる処理系ってこと?
それはない。

417 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 07:47:38 ]
9.2 ToBoolean
The operator ToBoolean converts its argument to a value of type Boolean
according to the following table:

InputType Result
Undefined false
(略)

おまけに、
> 4. If Result(3) is true, return Result(2).

return Result(3)ではない。




418 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 07:52:22 ]
>>415
> むしろundefinedと==で比較する方がやばくね?

やばくないです。長いので省略しますが、11.9.1と11.9.3です。

419 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 08:17:29 ]
>>413
||は、true/falseじゃなく、元の値を返すという言語仕様だから、大丈夫。

420 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:59:10 ]
>>418
argument.length でチェックしないと意味が変わるでしょ
foo が何をする関数なのかにもよるけど 'default string' なら >>413 の後者は「間違い」

421 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:23:51 ]
言いたいことは一度に言って欲しいな

422 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:33:03 ]
>>418
引数のsはnullかもしれないし、falseかもしれないだろ。ダメじゃん。

423 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 21:14:58 ]
x64でうごくやつってないものか

424 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 21:29:09 ]
Rhino

425 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 21:59:35 ]
413 です、フォローありがとう。

今日、仕事帰りに本屋寄ったら、このスレでお勧めのサイ本売ってて、買ってきたよ。
古い本だと思ってたし、4200円と高いのでスルーしてた。

|| の仕様についてちゃんと載ってたよ。
何冊か入門書読んだけど、単なる論理ORだと思ってたが、違ったんだな。

ただ "" が false に型変換されるって記述もあったので、"" を与えたい場合には
やっぱり今までどおり

 s = s==undefined ? "default string" : s;

が良い気がしたよ。ただそれ以外では

 s = s || "default string";

って記述もアリなんだな。いやぁ、面白いわ。

ちなみに俺ってIE4, NS4 の頃あたりに一度、JavaScript やってた人なんだわ。
v1.2 までは || が ture になっちまうってサイ本にあって、俺の記憶と一致した。

この週末、頑張ってサイ本読むわ。

426 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:02:35 ]
>>418

いちおう s===undefinded にしなかったのは、s==undefined だと s==null のときにも反応してくれるから。
これは昔から一緒って言うか、定番の書き方だと俺の灰色の脳細胞に残ってた。

っていうか、サイ本、読んでておもしれーな。

427 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:08:57 ]
サイ本って新版でただろ



428 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:43:00 ]
まぢ? >>427

金曜夜の焼き鳥を諦め、その金で買ってきたのは第5版ってやつなんだが・・・

429 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:47:53 ]
>>428
それで大丈夫よ。427は
> 古い本だと思ってた
にひっかかって注意してくれたんじゃないかな。

焼き鳥で腹を膨らませるよりもよかったと思えることを願っているよ。

430 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:48:06 ]
www.oreilly.co.jp/books/9784873113296/
第5版出たのは去年だがそれが最新。第3版なら古いけど。

431 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:08:45 ]
>>429-430 ありがと、安心した。

読破したら、美味しい焼き鳥で自分を祝っちゃる!

432 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 15:51:19 ]
'aaaggfeeeehhh'.split(/(?=(.)\1*)/);

IE6:    a,a,a,g,g,f,e,e,e,e,h,h,h
Firefox3: a,a,a,a,a,g,g,g,g,f,f,e,e,e,e,e,e,e,e,h,h,h,h,h,h,h
Chrome: a,a,a,a,a,g,g,g,g,f,f,e,e,e,e,e,e,e,e,h,h,h,h,h,h

どれが正しいんですか?

433 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 16:41:54 ]
みんなちがって、みんないい。

434 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 16:49:23 ]
>>432
ほれ、www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-5_String_Objects.html#section-15.5.4.14
そういう時は自分の手で動かしてみるんだ

ちなみに俺が 'aahh'.split(/(?=(.)\1*)/) を自分の手で動かしてみたところ、
a,a,a,h,h,h,h となるのが正解という結論に達した

435 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:27:22 ]
>>434
ありがとうございます
1行ずつ解釈していったところ、どうやら同じ結果になったようです
つまりChromeが確かにECMA準拠ということですね・・・
うむむ、勉強になりました

436 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 09:33:07 ]
rhino: a,a,a,h,h,h,h
tamarin: aahh


437 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 10:21:03 ]
この辺の話になるのかなぁ
bugs.ecmascript.org/ticket/376
[RegExp: Change behavior for backreferences to non-participating groups]

web-graphics.com/2007/09/05/a-quick-js-quizz-for-anybody-who-think-they-know-regex/
web-graphics.com/2007/11/26/ecmascript-3-regular-expressions-a-specification-that-doesnt-make-sense/
https://mail.mozilla.org/pipermail/es-discuss/2007-September/thread.html#4513
https://mail.mozilla.org/pipermail/es-discuss/2007-September/thread.html#4574
https://mail.mozilla.org/pipermail/es-discuss/2008-September/thread.html#7355



438 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 11:51:29 ]
そこんとこ3.1は今のところ3.0のまま。


439 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 15:24:51 ]
>>436
ちょw tamarin!

tamarinってもうSpiderMonkeyにマージされてんの?


440 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 16:04:29 ]
spidermonkey: a,a,a,h,h,h,h,h

441 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 16:09:13 ]
kjsembed(KDE): a,a,h,h

442 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 16:14:42 ]
v8: a,a,a,h,h,h,h


443 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 17:03:08 ]
IE/Tamarin/kjsembedはキャプチャ括弧の内容を追加してないんだろうけど
SpiderMonkeyがhを余分に出すのが謎だな

444 名前:こりゃたまらん! mailto:sage [2008/10/06(月) 17:25:01 ]
>>443
tamarin> 'aahh'.split(/(?=(.)\1*)/)
aahh
tamarin> print('aahh')
aahh
tamarin> 'aahh'
aahh



445 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 17:37:28 ]
>>439
>>370 >>375 >>380

446 名前:443 mailto:sage [2008/10/06(月) 18:28:15 ]
>>444
あ、すまん、まったく分割されてないのね。カンマを脳内補完してた
Tamarin環境がないんだけど['a', 'a', 'h', 'h']ならa,a,h,hと出るんだよね?

447 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 19:17:53 ]
tamarin> ['1','2','3','4']
1,2,3,4




448 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 20:56:53 ]
タマランw

449 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 22:33:15 ]
PerlとRubyはv8と一緒だねぇ。
Pythonは分割してくれなかった。


450 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:26:21 ]
なんでjsの正規表現エンジンって独自なんだろう?って所まで遡るわけか

451 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:41:05 ]
正規表現の拡張は許されてるんだから
WebKitとかPCRE使うならPCREの機能フルに提供しろよって感じだな

452 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:16:32 ]
rubyの正規表現は鬼車だっけ

453 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:12:21 ]
PCREは仕様が結構変わるし、
PCREのまんまって仕様は難しいと思う。
今でもブラウザ依存が問題になっているのに。

それから、マッチに失敗した時は、空の配列を返せばいいのに…

454 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:30:25 ]
import pcre.*;
出来るようにならないかなあ。

455 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 14:04:55 ]
名前空間ってアボーンしたんじゃなかったけ?

456 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 16:01:35 ]
import pcre;でいいよ、もう。

457 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 17:35:46 ]
C++0xのregexがECMAScriptの仕様を参照しているから、
こっちが変わったら向こうにも影響するかも。



458 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 21:12:10 ]
正規表現で?<が使えるようにならないかな

459 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 22:40:48 ]
>>457
なんでよりによって?混乱すると思うんだが

460 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 22:47:41 ]
いっそSNOBOLとかIconを標準ライブラリに含めればいいんだよ。
javaあたりがやりそうで怖いけどなw

461 名前:not 457 mailto:sage [2008/10/09(木) 01:09:33 ]
>>459
正規表現文法は数タイプ実装され、フラグで切り替えられて、
そのsyntax_option_typeの中にECMAScriptというのがある。
ただECMA282と明記された上で、さらなる改変部分も明記されているので、
大きな混乱は生じないんじゃないか。

ECMAScriptの仕様でも、もし挙動を変えるとすれば、
互換モードを付けることになるんじゃないかな。

462 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 15:20:15 ]
262-3rd の 7 節を今ごろ読んでるんだけど、
lex レベルで InputElementDiv と InputElementRegExp のどちらを使うべき文脈か
なんてのは簡単に決められるの?結局きちんとパーズしないと駄目?

463 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:39:15 ]
文脈自由文法とかチョムスキー標準形とか分かりますか?

464 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:31:11 ]
V8からOpenOfficeのUNOに接続できたら汎用言語になる?

465 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:33:04 ]
今でも十分に汎用だよ。

466 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:35:59 ]
Rhinoな俺にはバックのjavaのライブラリが膨大すぎるんだがw
LiveConnect最高だ。

467 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 10:57:21 ]
>>464
やれやれー



468 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 15:40:22 ]
>>406
ES3.1はグローバルな名前空間一つしか用意しないで、
moduleを導入するみたい。elispやschemeのように。

>>399のような難しい話じゃないみたい。
とにかく仕様を整理しないといけないから、
構文も意味も全くいじらないで3.1を出す。
いじるのは4で入れる。

ただしコンパイル環境と実行環境でそろえないとまずいもの、
静的型チェック、名前空間などは入れたくないということらしい。
ejohn.org/blog/ecmascript-harmony/#comments

まあ、静的型チェック、名前空間があろうがなかろうが、
プログラムを書いている時と実行している時の
モジュールの仕様が変わったら、問題は出るはずなんだけど。
それを起こさないためのドメイン名風階層名前空間と
バージョン管理なんだから。


469 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 23:09:19 ]
>>468
ES3.1 draft に module 関係の言及はないと思うけど…後はいいけど。

470 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 23:40:47 ]
え? elisp にモジュール入るの?

471 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 12:56:07 ]
そういえばActionMonkeyが取りやめになったって、
MozillaがTamarinのGCを使うとかいってたのはどうなったの?
TraceMonkeyのGCはSpiderMonkeyのままなの?

472 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 13:39:11 ]
>>471
Mozilla Developer Conference 2008 で講演してた浅井さん曰く、
Tamarin の GC 取り込みはやる予定だが Fx 3.1 (Gecko 1.9.1) には入らないんだとさ

Fx 3.2 とか Fx 4 以降になるんじゃないかっていう話だったと思う
詳しく覚えてる人いたら詳細求む

473 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 14:17:01 ]
Tracing JITも同時に入れるって話じゃなかった?

tamarinのソースを少し読んだがあまりの汚さに驚愕。
入れるの取り止めになって正解。
あまりのことにMozilla弱体化の陰謀かと思ったよ。
Action Scriptの仕様は結構好きなんだが。

474 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 18:05:33 ]
>>471
https://wiki.mozilla.org/XPCOMGC
hg.mozilla.org/users/bsmedberg_mozilla.com/gcmonkey
steps.dodgson.org/?date=20081012

475 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 12:51:48 ]
3.1にObject.seal()入るんだ。freeze()も。
よかった。

476 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 05:15:49 ]
前方互換が無くなるだけで不要な機能だろ
無用な方言を増やすだけの概念

477 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 09:13:33 ]
class, moduleその他、
動的に変って欲しくないオブジェクトのために必要なんだよ。



478 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 22:17:26 ]
seal も freeze も、Object.defineProperty の糖衣構文だと思う

やってることは「内部プロパティを変更」という点で共通してる
あるととっても便利(特に [[Enumerable]] の変更)

479 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 03:15:50 ]
便利かどうかなんて訊いた覚えはないがありがとう。
>“前方互換が無くなるので不要な機能”
forEach とかクラスメソッドは 3.0 でも Array や prototype を事前に拡張することで対応できる。
しかし Object.defineProperty は?
IE6 と IE7 で動かすためには __*** とか適当なプロパティ作って、
forEach をそれを見るような実装で上書きするような実装しか今俺には思い浮かばない。
とここまで forEach がある Array ならいいが
Object には Enumerable 関数は考えられてない(アホだよな)から
for in に対応できるような実装は不可能。

4.0 から 3.1 にした意味は?中の人は何も学習してないんだろうか。

480 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 11:32:42 ]
>>478
seal, freezeに関しては、
重要なのは提供方法ではなく、
・Objectが[[extensible]]でなくなる
・propertyが[[flexible]]、[[writable]]でなくなる
そのための方法があること。
これでライブラリー内部のエラー処理がずいぶんと楽になる。
ライブラリーユーザ側のデバッグも。

[[enumerable]]に関しては、
今のままではdirty hackの巣窟になりそうで、
何とかしないといけないとは思うけど、
前方互換の問題があるから慎重にやるべきだと思う。
特にメタな仕組みを持つライブラリに影響が大。
for in抽象はもうちょっとうまく整理するやり方があったと思う。
Javaのcontrol invacation syntaxみたいな。

481 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 02:52:09 ]
Object.forEach みたいな関数が出てきたとして、
Object はルート要素なんだから、全てのオブジェクトに forEach が無いとおかしい罠。
元はと言えば Object をハッシュのように使った“慣習”のツケなんだけど…

482 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 09:28:53 ]
>>481
> 元はと言えば Object をハッシュのように使った“慣習”のツケなんだけど…
kwsk

実装自体は連想配列なのに、使ってはならない理由があったの?


483 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 10:03:02 ]
Array のようにちゃんとデータ型として規定されてれば、
メソッドやプロパティの名前空間とぶつかるような実装にはならなかっただろうし、
enumerable のアリナシに四苦八苦することも少なかっただろうって話

484 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 10:44:37 ]
要はHashとかDictionaryとかいう型を別に作っておけばよかったということだな
中身はObjectとまったく一緒でいいけど

485 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 10:53:50 ]
特殊な組み込み型を用意するんじゃなくて、
そういうものを実装できる機構があればいい。

[[enumerable]]に関しては、
>>481の言うようにforEachはどのObjectも持つようにして、
for inはforEachメソッドを呼び出すように再整理するのがいいと思う。

Property attributeによる整理で基本的にはうまくいっている。

486 名前:482 mailto:sage [2008/11/25(火) 12:16:11 ]
thx

> 要はHashとかDictionaryとかいう型を別に作っておけばよかったということだな
言われてみれば激しく同意だなー


487 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 18:04:15 ]
>>484
そうすると、ESのESたる特徴がなくなってしまいますな。
つーか、それ、何のJavaの亜流?って感じになっちまう。実際なりそうだけど。 orz



488 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 09:44:23 ]
ボタンAを押すと自動的にボタンBを押すスクリプトはどう書けばよろしいのでしょうか?

489 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 11:06:05 ]
>>488
click()
たぶんスレ違いだからJavaScriptスレ池

490 名前:488 mailto:sage [2008/11/26(水) 13:36:50 ]
いえ、ecmaです。
よろしくお願いします

491 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 13:45:27 ]
ECMAScriptの仕様にボタンはない

492 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 17:09:54 ]
>>488
スレ違

たぶんこっち↓
+ JavaScript の質問用スレッド vol.67 +
pc11.2ch.net/test/read.cgi/hp/1223618153/

493 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 18:30:20 ]
> for in抽象はもうちょっとうまく整理するやり方があったと思う。
> Javaのcontrol invacation syntaxみたいな。

> for inはforEachメソッドを呼び出すように再整理するのがいいと思う。
旧 ES4 だと iterator::values() iterator::items() iterator::keys()
とか提案されてたが、ボツったわけでどーすんのやら。
wiki.ecmascript.org/doku.php?id=proposals:iterators_and_generators

494 名前:488 mailto:sage [2008/11/27(木) 12:19:04 ]
ありがとうございます。
行ってみます






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<110KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef