function assertName(fn, name) {
assertEq(displayName(fn), name)
}
/* simple names */ var a = function b() {}; function c() {};
assertName(a, 'b');
assertName(c, 'c');
var a = function(){},
b = function(){};
assertName(a, 'a');
assertName(b, 'b');
/* nested names */ var main = function() { function Foo(a) { assertName(a, 'main/foo<') } var foo = new Foo(function() {});
};
assertName(main, 'main')
main();
/* duplicated */ var Baz = Bar = function(){}
assertName(Baz, 'Bar');
assertName(Bar, 'Bar');
/* returned from an immediate function */ var Foo = function (){
assertName(arguments.callee, 'Foo<') returnfunction(){};
}();
assertName(Foo, 'Foo<');
/* various properties and such */ var x = {fox: { bax: function(){} } };
assertName(x.fox.bax, 'bax'); var foo = {foo: {foo: {}}};
foo.foo.foo = function(){};
assertName(foo.foo.foo, 'foo.foo.foo'); var z = {
foz: function() { var baz = function() { var y = {bay: function() {}};
assertName(y.bay, 'bay');
};
assertName(baz, 'baz');
baz();
}
};
assertName(z.foz, 'foz');
z.foz();
var outer = function() {
x.fox.bax.nx = function(){}; var w = {fow: { baw: function(){} } };
assertName(x.fox.bax.nx, 'outer/x.fox.bax.nx')
assertName(w.fow.baw, 'baw');
};
assertName(outer, 'outer');
outer(); function Fuz(){};
Fuz.prototype = {
add: function() {}
}
assertName(Fuz.prototype.add, 'add');
var x = 1;
x = function(){};
assertName(x, 'x');
var a = {b: {}};
a.b.c = (function() {
assertName(arguments.callee, 'a.b.c<')
}());
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.