Editors should set anonymous function .name when appropriate
cpcallen opened this issue · 0 comments
When the server option methodNames
is true, statements assigning anonymous function expressions to properties (e.g., foo.bar = function(){}
) result in the function's .name
property being set, just as statements assigning anonymous function expressions to variables (e.g., foo = function() {}
) and object literals (e.g. {bar: function() {}}
) always do.
Since the editors evaluate the value to be saved on its own (not in the context of an assignment statement, even though it might look that way to the user), .name
is not set.
This should be fixed, so that saving an anonymous function to a variable always sets its .name
, and saving one to a property sets its .name
if methodNames
is true. Since server options are not accessible to the database, the latter will require a trivial experiment:
var foo = {};
foo.bar = function() {}; // N.B.: must do this as a separate step.
var methodNames = Boolean(foo.bar.name)