|
|
|
|
|
by svieira
3991 days ago
|
|
Unfortunately, due to hoisting decorating top-level functions is a real pain [1]. What should the behavior of: myMagicFunction();
var myDecorator = require('myDecorator');
@myDecorator
function myMagicFunction() {
// TODO: Make magic
}
be?- `myDecorator`'s require statement is hoisted above `myMagicFunction`'s declaration so that `myMagicFunction` is always decorated? (Results in a given `var`'s behavior changing depending on whether it is invoked as a decorator, an exceedingly non-obvious behavior) - Function hoisting doesn't happen for decorated functions (non-obvious, possibly hard to implement). - Function hoisting happens but the decorator is not hoisted (resulting in a sometimes-decorated function). These problems don't admit of a simple solution (at least as far as I can see). [1]: https://github.com/wycats/javascript-decorators/issues/4
|
|