mirror of
https://github.com/denoland/deno.git
synced 2024-12-27 17:49:08 -05:00
43 lines
758 B
TypeScript
43 lines
758 B
TypeScript
|
// deno-lint-ignore-file
|
||
|
function a() {
|
||
|
console.log("@A evaluated");
|
||
|
return function (
|
||
|
target: any,
|
||
|
propertyKey: string,
|
||
|
descriptor: PropertyDescriptor,
|
||
|
) {
|
||
|
console.log("@A called");
|
||
|
const fn = descriptor.value;
|
||
|
descriptor.value = function () {
|
||
|
console.log("fn() called from @A");
|
||
|
fn();
|
||
|
};
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function b() {
|
||
|
console.log("@B evaluated");
|
||
|
return function (
|
||
|
target: any,
|
||
|
propertyKey: string,
|
||
|
descriptor: PropertyDescriptor,
|
||
|
) {
|
||
|
console.log("@B called");
|
||
|
const fn = descriptor.value;
|
||
|
descriptor.value = function () {
|
||
|
console.log("fn() called from @B");
|
||
|
fn();
|
||
|
};
|
||
|
};
|
||
|
}
|
||
|
|
||
|
class C {
|
||
|
@a()
|
||
|
@b()
|
||
|
static test() {
|
||
|
console.log("C.test() called");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
C.test();
|