Since this keyword referes to ThisBinding in a LexicalEnvironment, and javascript (or ECMAScript) doesn’t allow programmatic access to LexicalEnvironment (in fact, no programmatic access to the whole Execution Context), so it is impossible to get the context of caller.
Also, when you try test.demo() in a global context, there should be no caller at all, neither an attached context to the caller, this is just a Global Code, not a calling context.