Prof.js
- 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);
}
- 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
- 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;
};
- 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'
);
- 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