feat(compiler): support `on-` and `[]`