Определенно, любой язык будет поддерживать AOP, потому что это техника, вы должны реализовать ее самостоятельно.
ES7 Декораторы хороши для синтаксиса AOP, но для получения реального опыта работы с AOP не нужно набирать машинку. Даже ES5 может это сделать:
var Class = require("kaop").Class;
var Dummy = Class({
someMethod: [ //decoratedMethod
"subscribe","$inject", //befores
function($$dep1){
//method body
},
"trigger: 'action'", //afters (advice with an argument)
],
anotherMethod: function(){
/* method without advices */
}
})
Я предлагаю вам проверить мою недавнюю работу, в которой реализованы основные функции AOP, даже асинхронные вызовы
https://github.com/k1r0s/kaop
https://github.com/k1r0s/kaop-ts (Альфа) (если вы любите ES7 Decorators)
Я также написал статью, объясняющую этот совет
https://medium.com/@k1r0s/aspect-oriented-programming-in-javascript-es5-typescript-d751dda576d0#.3d04ziock