Soumettre la recherche
Mettre en ligne
Prof.js
•
5 j'aime
•
1,177 vues
uupaa
Suivre
see http://uupaa.hatenablog.com/entry/2012/10/31/221550
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 25
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
modern javascript, unobtrusive javascript, jquery
modern javascript, unobtrusive javascript, jquery
Adam Zygadlewicz
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
knangsmiley
Most Common JavaScript Mistakes
Most Common JavaScript Mistakes
Yoann Gotthilf
ECMAScript 6 im Produktivbetrieb
ECMAScript 6 im Produktivbetrieb
Sebastian Springer
Side Room - 5. Alex Wald - Inloop
Side Room - 5. Alex Wald - Inloop
MobCon
Php Meets Messagepack
Php Meets Messagepack
Hideyuki TAKEI
Monads
Monads
calacitizen
Linked list proj
Linked list proj
Dr. Ahmed J. Obaid
Recommandé
modern javascript, unobtrusive javascript, jquery
modern javascript, unobtrusive javascript, jquery
Adam Zygadlewicz
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
knangsmiley
Most Common JavaScript Mistakes
Most Common JavaScript Mistakes
Yoann Gotthilf
ECMAScript 6 im Produktivbetrieb
ECMAScript 6 im Produktivbetrieb
Sebastian Springer
Side Room - 5. Alex Wald - Inloop
Side Room - 5. Alex Wald - Inloop
MobCon
Php Meets Messagepack
Php Meets Messagepack
Hideyuki TAKEI
Monads
Monads
calacitizen
Linked list proj
Linked list proj
Dr. Ahmed J. Obaid
Understanding Python decorators
Understanding Python decorators
JosipKatalinic
[170510 4주차]C언어 A반
[170510 4주차]C언어 A반
arundine
Convert bilangan
Convert bilangan
Hanifu Al-Klantingy
How
How
AimanNour
Comprendre la programmation fonctionnelle, Blend Web Mix le 02/11/2016
Comprendre la programmation fonctionnelle, Blend Web Mix le 02/11/2016
Loïc Knuchel
ikp213-06-template-c++
ikp213-06-template-c++
Anung Ariwibowo
โปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
โปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
knangsmiley
Zadatak
Zadatak
Zeljko Lukic
Алексей Кутумов, C++ без исключений, часть 3
Алексей Кутумов, C++ без исключений, часть 3
Platonov Sergey
Img1
Img1
Cinthia AM
Effective java 摘選條目分享 2 - 泛型
Effective java 摘選條目分享 2 - 泛型
Kane Shih
6. separation, namespace, error
6. separation, namespace, error
Vahid Heidari
Librerias de c++
Librerias de c++
Carlos Baza Vanegas
6.1 Шаблоны классов
6.1 Шаблоны классов
DEVTYPE
Project
Project
taufiq26
The Flavor of TypeScript
The Flavor of TypeScript
Dmitry Sheiko
Jslunch1
Jslunch1
Nao Haida
Form Pemesanan Tiket dengan Java NetBeans
Form Pemesanan Tiket dengan Java NetBeans
Aldila Putri
1
1
Aeew Autaporn
アホロートルエンジニアから見た特許
アホロートルエンジニアから見た特許
uupaa
Certificates rugby tat
Certificates rugby tat
Onno Hansen-Staszyński
EF presentation 1 - Paris meeting
EF presentation 1 - Paris meeting
Onno Hansen-Staszyński
Contenu connexe
Tendances
Understanding Python decorators
Understanding Python decorators
JosipKatalinic
[170510 4주차]C언어 A반
[170510 4주차]C언어 A반
arundine
Convert bilangan
Convert bilangan
Hanifu Al-Klantingy
How
How
AimanNour
Comprendre la programmation fonctionnelle, Blend Web Mix le 02/11/2016
Comprendre la programmation fonctionnelle, Blend Web Mix le 02/11/2016
Loïc Knuchel
ikp213-06-template-c++
ikp213-06-template-c++
Anung Ariwibowo
โปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
โปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
knangsmiley
Zadatak
Zadatak
Zeljko Lukic
Алексей Кутумов, C++ без исключений, часть 3
Алексей Кутумов, C++ без исключений, часть 3
Platonov Sergey
Img1
Img1
Cinthia AM
Effective java 摘選條目分享 2 - 泛型
Effective java 摘選條目分享 2 - 泛型
Kane Shih
6. separation, namespace, error
6. separation, namespace, error
Vahid Heidari
Librerias de c++
Librerias de c++
Carlos Baza Vanegas
6.1 Шаблоны классов
6.1 Шаблоны классов
DEVTYPE
Project
Project
taufiq26
The Flavor of TypeScript
The Flavor of TypeScript
Dmitry Sheiko
Jslunch1
Jslunch1
Nao Haida
Form Pemesanan Tiket dengan Java NetBeans
Form Pemesanan Tiket dengan Java NetBeans
Aldila Putri
1
1
Aeew Autaporn
Tendances
(19)
Understanding Python decorators
Understanding Python decorators
[170510 4주차]C언어 A반
[170510 4주차]C언어 A반
Convert bilangan
Convert bilangan
How
How
Comprendre la programmation fonctionnelle, Blend Web Mix le 02/11/2016
Comprendre la programmation fonctionnelle, Blend Web Mix le 02/11/2016
ikp213-06-template-c++
ikp213-06-template-c++
โปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
โปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
Zadatak
Zadatak
Алексей Кутумов, C++ без исключений, часть 3
Алексей Кутумов, C++ без исключений, часть 3
Img1
Img1
Effective java 摘選條目分享 2 - 泛型
Effective java 摘選條目分享 2 - 泛型
6. separation, namespace, error
6. separation, namespace, error
Librerias de c++
Librerias de c++
6.1 Шаблоны классов
6.1 Шаблоны классов
Project
Project
The Flavor of TypeScript
The Flavor of TypeScript
Jslunch1
Jslunch1
Form Pemesanan Tiket dengan Java NetBeans
Form Pemesanan Tiket dengan Java NetBeans
1
1
En vedette
アホロートルエンジニアから見た特許
アホロートルエンジニアから見た特許
uupaa
Certificates rugby tat
Certificates rugby tat
Onno Hansen-Staszyński
EF presentation 1 - Paris meeting
EF presentation 1 - Paris meeting
Onno Hansen-Staszyński
EF FCP presentation - Rugby meeting
EF FCP presentation - Rugby meeting
Onno Hansen-Staszyński
Certificates gdynia tat
Certificates gdynia tat
Onno Hansen-Staszyński
Interactive didactics
Interactive didactics
Onno Hansen-Staszyński
Dissemination nl
Dissemination nl
Onno Hansen-Staszyński
From Kinkara Tea
From Kinkara Tea
John_Cowper
EF FCP workshop - Rugby conference
EF FCP workshop - Rugby conference
Onno Hansen-Staszyński
Identifeye ar game documentation 12-14
Identifeye ar game documentation 12-14
Onno Hansen-Staszyński
Identifeye ar game documentation 8-11
Identifeye ar game documentation 8-11
Onno Hansen-Staszyński
Talk @bramalkema 031214
Talk @bramalkema 031214
Onno Hansen-Staszyński
JavaScript And Keywords
JavaScript And Keywords
uupaa
JavaScript And Debug
JavaScript And Debug
uupaa
X3
X3
uupaa
Paris meeting TAT - Minutes
Paris meeting TAT - Minutes
Onno Hansen-Staszyński
Flow.js
Flow.js
uupaa
Pokolenie F
Pokolenie F
Onno Hansen-Staszyński
En vedette
(18)
アホロートルエンジニアから見た特許
アホロートルエンジニアから見た特許
Certificates rugby tat
Certificates rugby tat
EF presentation 1 - Paris meeting
EF presentation 1 - Paris meeting
EF FCP presentation - Rugby meeting
EF FCP presentation - Rugby meeting
Certificates gdynia tat
Certificates gdynia tat
Interactive didactics
Interactive didactics
Dissemination nl
Dissemination nl
From Kinkara Tea
From Kinkara Tea
EF FCP workshop - Rugby conference
EF FCP workshop - Rugby conference
Identifeye ar game documentation 12-14
Identifeye ar game documentation 12-14
Identifeye ar game documentation 8-11
Identifeye ar game documentation 8-11
Talk @bramalkema 031214
Talk @bramalkema 031214
JavaScript And Keywords
JavaScript And Keywords
JavaScript And Debug
JavaScript And Debug
X3
X3
Paris meeting TAT - Minutes
Paris meeting TAT - Minutes
Flow.js
Flow.js
Pokolenie F
Pokolenie F
Prof.js
1.
prof.js ECMAScript 262-5th based
JavaScript Dynamic TypeSystem. with Trace and Profiling functions
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
function mm_each(data, //
@arg Object/Function/Array/Hash: data fn) { // @arg Function: callback function // @help: mm.each // @desc: each object //{@debug mm.allow(data, "Object/Function/Array/Hash"); mm.allow(fn, "Function"); //}@debug typeof data.each === "function" ? data.each(fn) : Object_each(data, fn); }
12.
13.
function mm_each(data, //
@arg Object/Function/Array/Hash: data fn) { // @arg Function: callback function // @help: mm.each // @desc: each object //{@debug // mm.allow(data, "Object/Function/Array/Hash"); // mm.allow(fn, "Function"); //}@debug typeof data.each === "function" ? data.each(fn) : Object_each(data, fn); } //{@debug prof.add( "mm.each(data:Object/Function/Array/Hash, fn:Function" ); //}@debug
14.
15.
Aspect-Oriented Programming)
16.
17.
•
– – – – • • • – • –
18.
mm.each = function()
{ switch (引数の数) { case 3: mm.allow(arguments[2], "2番目の引数の型"); case 2: mm.allow(arguments[1], "1番目の引数の型"); case 1: mm.allow(arguments[0], "0番目の引数の型"); } console.group("関数名"); var now = Date.now(); var rv = org_mm_each.apply(mm, arguments); _tm[path].time += (Date.now() - now); _tm[path].count++; console.groupEnd(); mm.allow(rv, "戻り値の型"); return rv; };
19.
mm.each = function()
{ switch (引数の数) { case 3: mm.allow(arguments[2], "2番目の引数の型"); case 2: mm.allow(arguments[1], "1番目の引数の型"); case 1: mm.allow(arguments[0], "0番目の引数の型"); } console.group("関数名"); var now = Date.now(); var rv = org_mm_each.apply(mm, arguments); _tm[path].time += (Date.now() - now); _tm[path].count++; console.groupEnd(); mm.allow(rv, "戻り値の型"); return rv; };
20.
mm.each = function()
{ switch (引数の数) { case 3: mm.allow(arguments[2], "2番目の引数の型"); case 2: mm.allow(arguments[1], "1番目の引数の型"); case 1: mm.allow(arguments[0], "0番目の引数の型"); } console.group("関数名"); var now = Date.now(); var rv = org_mm_each.apply(mm, arguments); _tm[path].time += (Date.now() - now); _tm[path].count++; console.groupEnd(); mm.allow(rv, "戻り値の型"); return rv; };
21.
mm.each = function()
{ switch (引数の数) { case 3: mm.allow(arguments[2], "2番目の引数の型"); case 2: mm.allow(arguments[1], "1番目の引数の型"); case 1: mm.allow(arguments[0], "0番目の引数の型"); } console.group("関数名"); var now = Date.now(); var rv = org_mm_each.apply(mm, arguments); _tm[path].time += (Date.now() - now); _tm[path].count++; console.groupEnd(); mm.allow(rv, "戻り値の型"); return rv; };
22.
•
– –
23.
•
– – // ライブラリ(lib)のAPIの型情報を登録 prof.add( 'lib.fn1()', 'lib.fn2(a:Integer/String = ",", b:Object):Object', 'lib.fn3(...:Mix):Array', 'lib.fn4(a:Mix):Boolean' ); // ネイティブオブジェクトの動的な型チェックも可能 prof.add( 'String#hoge(a:Mix,b:Mix,c:Mix):String' );
24.
<script src="debug/prof.js"></script> <script src="mm.js"></script> <!--
mm.js は mm.allow で動的な型チェックを使う場合に必要 --> <script> prof.add("…"); </script>
25.
• mofmof.js
– http://code.google.com/p/mofmof-js/ • prof.js – http://code.google.com/p/mofmof- js/source/browse/trunk/js_src/debug/prof.js
Télécharger maintenant