IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
こんにちは。kintone開発チームの天野(@ama_ch)です。前回は、JavaScriptをClosure CompilerのADVANCEDモードでコンパイルする方法を紹介しました。 コンパイルが無事に通っても、素直に動いてくれることは滅多にありません。コンパイル後のコードが動かない原因をひとつずつ特定し、修正するという作業が待っています。 ゴゴゴゴゴ... 今回は、僕が実践しているデバッグのテクニックを紹介します。きっちりとデバッグをして、ADVANCEDモード対応を完璧なものにしましょう。 コンパイル後に動かなくなる原因 コンパイル後のコードが動かない原因は、次の2点に大別することができます。 プロパティへのアクセスが正しい手順でできていない エントリーポイントが存在せずコードが消されてしまっている 特に前者が原因になっていることがほとんどです。そのため、コンパイル後のコードを追
http://uupaa.hatenablog.com/entry/2012/10/31/221550 の続きです。 prof.js は、 既存の関数やメソッドに、引数と戻り値の型チェック,プロファイラ,トレース機能を後付します。 簡単な使い方 簡単な使い方は以下のようになります。 以下のコードで、window.addEventListener と window.removeEventListener のプロファイリングとトレースが取れます。 <script src="polyfill/es.js"></script><!-- 古いブラウザで必要 --> <script src="prof.js"></script> <script> prof.add( "window.addEventListener(eventType:String, handler:Function/Object,
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. Learn more See full compatibility Report feedback The console object provides access to the debugging console (e.g., the Web console in Firefox). Implementations of the console API may differ between runtimes. In particular, some console methods may work differe
1 pixel|サイバーエージェント公式クリエイターズブログ サイバーエージェントのクリエイターの取り組みを紹介するオフィシャルブログです。最新技術への挑戦やサービス誕生の裏話、勉強会やイベントのレポートなどCAクリエイターの情報が満載です。 こんにちは、ピグディビジョンでフロントエンドのプログラムを書いています。maginemu (@maginemu) です。 どこでもピグライフとは弊社の提供しておりますPC向けソーシャルゲーム「ピグライフ」をスマートフォン向けに移植したサービスです。『ピグライフのお庭をスマートフォンでも』を目標に移植を行いました。 (「どこでもピグライフ」はPCで「ピグライフ」を開始し、「いちごジュースを作ってみて!」というクエストをクリアするとお使い頂けるようになります) PC版ピグライフはFlashでつくられていますが、どこでもピグライフはHTML5/CSS3/J
escodegen + esprima で JS のデバッグをしたら捗りそう 以下のようなコードを実行すると console.log([ [1,1,8] [2,1,16] ]); このような結果になる。 [ undefined ] アレレーってなってたんだけど kazuho さんにきいたところ、 [1,1,8][2,1,16] => ([1,1,8])[(2,1,16)] => ([1,1,8])[16] => undefined ってことでした。 こんな時、Perl Monger ならとりあえず B::Deparse することによって解決の糸口をさがすんだけど、そういうの EcmaScript でどうすんすかね、ってなことを kazuho さんにきいたところ、esprima っていう es のパーサーがあるよって教えてもらったので、AST はとりだせたんだけど、AST をみても埒があかな
mofmof.js には mm.allow() や mm.deny() といった assertion(アサーション, 前提条件のチェック) のための関数があります。 mm.allow は関数の入り口で多用され、引数の型や内容が正しいか確認し、まずい場合は例外を挙げます。 mm.deny は mm.allow の逆の動作をします。 mm.allow の使用例 mm.has は集合(data)が要素(find)を含んでいると true を返します。 data と find には複数の型を指定できますが data に文字列を指定すると例外が発生します。 // mm.has function mm_has(data, // @arg Hash/Function/Array: find) { // @arg Hash/Function/Array/Primitive: find values, {
Source code at https://github.com/willemmulder/BetterExamples.js What does it do? It makes live Javascript examples a great experience! Click the button below or press Ctrl+R or F9 to see how it works. var a = "SomeString"; alert(a); var b = 42; alert(b); var c = a + b; alert(c); nonExistent(); Run and show BetterExamples.js in action or press Ctrl+R or F9 Or Step-debug the code (not working in Op
A software engineer in San Francisco, talking about the mobile web, inspiration, creativity, life, and personal development. The blog post is the first in a series of posts that attempts to outline what a modern web development toolchain looks like and how to use the best-of-breed tools for efficient, effective development. Part two will outline how to use to set up your Terminal, zsh, and vim The
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
階層付きのトレース出力をこのような感じで実装します。 (function(global) { function console_q() { function begin() { console.log(repeat("|", nest) + "+- " + fname + "(" + slice.call(args).join(",") + ")"); } function q() { console.log(repeat("|", nest) + "| " + fname + "(" + slice.call(arguments).join(",") + ")"); } function end() { console.log(repeat("|", nest) + "`- " + fname); return --console.q.nest; } function repeat(st
先日、Stylusのコードをいじってたらグローバルリークがあったので、修正してPullリクエストしました。(TJが即マージしてリリース済みだよ!) リークを見つけたのは、StylusのテストコードにGlobalオブジェクト汚染を検出するテストがあってそれをたまたま走らせただけなのですが、このテストがシンプルかつ効果的でいいなと思いました。 https://github.com/LearnBoost/stylus/blob/master/test/run.js // Testの初期化時にデフォルトのグローバルオブジェクトのキーを保存。 var globals = Object.keys(global); ... // Testが終わったらグローバルオブジェクトの差分をチェック function done() { Object.keys(global).forEach(function(nam
ある値を非同期で取ってくる→その値を使ってさらに非同期処理というのをJSDeferredでする - Islands in the byte stream 何気なく書かれているけど、console.log('got %s', foo);という部分があり、おや?と思った。 もしかして、Node.js 以外でも使えたりする? と調査。 まず、Operaは使えなかったので除外。 CodeGoogleChormeFirefox console.log("%s", "hoge")hogehoge console.log("%s", "hoge", "foo")hoge foohoge foo console.log("%s", "hoge", {foo:"FOO"})hoge ▸Objecthoge ({foo:"FOO"}) console.log("%d", 10)1010 console.log
December 23rd 2011 As it turns out, there are tons of different ways to debug javascript. Considering, I thought it might be useful if I shared all the tools/techniques I regularly use to do just that. If you think of any additional techniques or would like more clarification, please let me know! alerts Every engineer who has written javascript for browsers has probably used an alert to debug. Whe
本文には反映していませんが IE10で Error#stack が実装されました http://blogs.msdn.com/b/ie_ja/archive/2012/05/17/diagnosing-javascript-errors-with-error-stack.aspx JavaScript では例外が発生すると例外オブジェクトが生成されます。 この例外オブジェクトの仕様は標準化されておらず、各ブラウザで実装が異なります。 最新のブラウザで JavaScript の Error オブジェクトや Error から派生しているオブジェクトが持つ属性を調べてみました。 Safari Stable (Safari 5.1.1) try { throw new Error("hoge"); } catch (err) { var i, ary = []; for (i in err) {
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く