ECMAScript デス 3at TECH
ECMAScript デス 3 - 暇つぶし2ch446:443
08/10/06 18:28:15
>>444
あ、すまん、まったく分割されてないのね。カンマを脳内補完してた
Tamarin環境がないんだけど['a', 'a', 'h', 'h']ならa,a,h,hと出るんだよね?

447:デフォルトの名無しさん
08/10/06 19:17:53
tamarin> ['1','2','3','4']
1,2,3,4


448:デフォルトの名無しさん
08/10/06 20:56:53
タマランw

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


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

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

452:デフォルトの名無しさん
08/10/07 01:16:32
rubyの正規表現は鬼車だっけ

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

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

454:デフォルトの名無しさん
08/10/07 11:30:25
import pcre.*;
出来るようにならないかなあ。

455:デフォルトの名無しさん
08/10/07 14:04:55
名前空間ってアボーンしたんじゃなかったけ?

456:デフォルトの名無しさん
08/10/07 16:01:35
import pcre;でいいよ、もう。

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

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

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

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

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

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

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

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

464:デフォルトの名無しさん
08/10/26 23:31:11
V8からOpenOfficeのUNOに接続できたら汎用言語になる?

465:デフォルトの名無しさん
08/10/26 23:33:04
今でも十分に汎用だよ。

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

467:デフォルトの名無しさん
08/10/27 10:57:21
>>464
やれやれー

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

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

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

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


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

470:デフォルトの名無しさん
08/10/27 23:40:47
え? elisp にモジュール入るの?

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

472:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/11/21 14:17:01
Tracing JITも同時に入れるって話じゃなかった?

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

474:デフォルトの名無しさん
08/11/21 18:05:33
>>471
URLリンク(wiki.mozilla.org)
URLリンク(hg.mozilla.org)
URLリンク(steps.dodgson.org)

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

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

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

478:デフォルトの名無しさん
08/11/23 22:17:26
seal も freeze も、Object.defineProperty の糖衣構文だと思う

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

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

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

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

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

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


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

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

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

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

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

486:482
08/11/25 12:16:11
thx

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


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

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

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

490:488
08/11/26 13:36:50
いえ、ecmaです。
よろしくお願いします

491:デフォルトの名無しさん
08/11/26 13:45:27
ECMAScriptの仕様にボタンはない

492:デフォルトの名無しさん
08/11/26 17:09:54
>>488
スレ違

たぶんこっち↓
+ JavaScript の質問用スレッド vol.67 +
スレリンク(hp板)

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

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

494:488
08/11/27 12:19:04
ありがとうございます。
行ってみます


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch