Trace Monkey No transcript available. TraceMonkey - Technology Summary Technology compiler jit javascript tracing tracemonkey v8 sfx squirrelfish firefox fx3.1
どうも、こんにちは。hirokiです。前回は、HTML::Template::ProのJavaScript実装を紹介させていただきました。今回はその実装部においてのちょっとした工夫についてと、Webフロントエンドのパフォーマンスチューニングについて簡単にまとめさせていただきます。 正規表現の話 通常、テキストベースのDSL評価系を作成する際にはyacc/lexなどで文法記述を行うのが定石なんですが、 シンプルな文法であること 構文木の評価からコードジェネレートに方向性を転換した テキストマッチングの回数や高速化のための制御がしやすい などの理由から、HTML Template(JavaScript)では正規表現ベースの文法解釈を行っています。( HTML::Template::Proのyacc文法ファイルをそのまま使えば記述は楽だったのですが...)以下に実際に利用している正規表現を示しま
The slides used for the talk at Adobe MAX Japan 2009, about on-the-fly sound synthesis in pure JavaScript.
∧_∧ _( ´・ω・)_ /\`'⊃(;;゚;;) \ ___ / ※ \_____|\__ヽ \※ ※ | |_三三|_< はじまるよ! \ / ※ ※ ※!、_ |||__|、 `─────||ヽ───i§ ヽi |`〜〜 JavaScript でも 3D くらい できるさ! amachang 先生の 次回作にご期待ください ∧∧ ( ・ω・) _| ⊃/(___ / └-(____/  ̄ ̄ ̄ ̄ ̄ ̄ ̄ - 完 - ごめんなさい ごめんなさい>< DOM パフォーマンス チューニング JavaScript の 誤解 JavaScript は 遅い JavaScript は そこそこ速い 論より証拠。 ベンチマーク マージソート 100 numbers × 3000 times JavaScript ActionScript code: http://s
[js] var b = new Boolean(false); if(b) alert(b); [/js] 実行するとalertで「false」と表示される。 なんかすっきりしないな。
はじめましてhirokiです。こんにちは。新卒で弊社に入って一年が経過しようとしているので、そろそろエンジニアブロガーの仲間入りをしてみようかと思っています。 今回はJavaScriptのお話です。ハードボイルドなバックエンド側技術のご紹介が多い当ブログですが、スイーツ(笑)なフロントエンド技術もおもしろいんだよ!ということをアピってやろうという魂胆です><。 HTML.Template(JavaScript) 弊社では、サーバサイドによるHTMLの出力テンプレートエンジンにCPANモジュールであるHTML::Template::Proを使用しています。今回はそのJavaScript実装をオープンソースとして開発しましたので、紹介をさせていただきます。 HTML::Templateは貧弱で、冗長で、洗練されていないシンタックスでお馴染みのテンプレートエンジンですが、高速で必要以上のロジック
We’re getting things ready Loading your experience… This won’t take long.
2008-12-23 firefox tool 拡張機能にするほどでもないちょっとした改良を、スクリプトファイルを書くだけで Firefox に施すことができるけど、使うにはちょっと敷居が高いツウ向けの拡張機能、userChrome.js の後継の拡張機能を alta88 氏が発表しました。zeniko 氏の userChrome.js の最終バージョンは 0.8 だったのですが、今度は微妙に名前が変わって、ドットなしの userChromeJS になっています。拡張機能の id も変わっているので、これまで userChrome.js を使っている人がインストールすると上書きされずに、userChrome.js 0.8 と userChromeJS 1.0 が同居することになるので注意が必要です。 mozdev.org - userchromejs: index mozdev.org -
javascripter's gist: 64615 — Gist をテストしている時に気がついたこと。 最も一般的な var hashtable = {}; var key = "foo"; if (key in hashtable) { // has key } hashtable[key]; // lookup hashtable[key] = "bar"; // add は、keyがObject.prototypeに登録されているメンバ名だった時(例えば"hasOwnProperty"や"propertyIsEnumerable")、in演算子がtrueを返して失敗する。 次に、hasOwnPropertyを使ってプロトタイプチェーンを辿らないようにする方法。 var hashtable = {}; var key = "foo"; if (key.hasOwnProperty(k
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 ※10秒後にBIGLOBEのおすすめページに遷移します
デブサミ版Google Hackathon行ってきました*1。OpenSocialに触れるのがもちろんメインテーマなんですが、今回それとは別に「JavaScriptを使いこなせるようになる」と言うサブテーマを自分に課してました。 今日一日でJavaScriptを好きになれたので、そのノウハウをメモっておきます。 参考: 今日書いたJS 名前空間 JavaScriptで何が嫌かって、裸で存在する変数やハンドラ類です。今まで start() とか init() なんて関数名とか普通に使ってたんですが、「こんなのいつかぶつかるに決まってるじゃん」、と非常に嫌な思いをしてました。 名前空間の作り方がわかれば、このストレスが一気になくなります。これだけでJavaScript嫌いが治るといっても過言じゃないくらい効果的です。 名前空間はオブジェクトとして作ればOKです*2。変数の局所化のために ( f
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 ※10秒後にBIGLOBEのおすすめページに遷移します
MAX 打ち上げのときに川崎さんに「英語の記事書いたら絶対ウケるから書くべきだよ」と言われていつ書こうかなーと思ってたら、そういえば11日は休日だったので、日本語の下書きだけでも一気に書いてみることにしました。 といっても、欲を出してあれもこれも書こうとして、結局まだ書ききれてませんけど。 タイトル案 Javascript と Canvas によるフルスクラッチ3Dプログラミング Javascript と Canvas 3Dプログラミング入門 ドキッ JSだらけの あと、今日(11日)は私の誕生日でもあります。25になりました。そろそろ鏡を見るのが怖くなってきますね。 以下、書きかけ Introduction Adobe MAX 2009 で Spark Project は、拡張現実(AR)のデモを展示し、来場者の注目を集めていた。Shibuya.JS のメンバーもこのデモに感激し、是非
Opera Core Concerns - Carakan 【速報】Opera新JavaScriptエンジンCarakan発表、50倍高速化も | エンタープライズ | マイナビニュース まー、もちろん劇的な違いを体感できるケースはあるだろうけど、少なくとも3Dとかハッシュとかの演算*1が速くなってもあんまり嬉しくないでしょう。 個人的にはClient-side Database Storageが載るかどうかが問題です。 # ちなみに、Firefoxは別で、体感的な速さにおけるJavaScriptエンジンの比重が大きい(アドオンとかが高速になる)ので、JITの効果に期待したいところ 体感的な速さとは、例えば「Ctrl+t押したときに新しいタブが何msで表示されるか」とか。Firefoxはこういうところが弱かったりする。IE7はもっと弱かったりする。 *1:[http://d.hatena.
IMEオンの状態の場合、IEとFireFoxとでイベントの発生の仕方が異なるのでメモ。 IEだとIMEで入力中もイベントを拾ってくれるが、FireFoxだと拾ってくれません。 確認に使用したHTMLは下記となります。 <html> <head> <script type="text/javascript" language="javascript"> <!-- function dispEvent(event) { var disp = document.getElementById('disp_event'); var elm = document.createElement('div'); elm.innerHTML = "keyCode:" + event.keyCode + " value:" + (event.target || event.srcElement).value;
イベントのキーコードの取得には event.keyCode event.charCode の二種類があるんだが、keypressイベントとkeydownイベントとで出方が違うことに気付いた。 keypressとkeydownの表す数値は以下の通り keyCodeにはキーを表す特殊コードを表す数値として出る*1 charCodeにはASCII文字コード表に対応した10進数として出る 以下に幾つか試した結果を書くので参考に。ただ、特殊キーに当たりそうな(ex. windows,無変換, IMEオン時の挙動)ものは環境によって異なりそうなので注意。 keypress ASCII文字コードとして認識できるものはcharCodeに出る そうでないものはkeyCodeに出る IMEオン時にイベントが挙がることは期待できない((keyCodeに229で挙がる時と挙がらない時があった)) 押したキー ch
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く