1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
=== tests/cases/conformance/salsa/usage.js ===
// note that usage is first in the compilation
Outer.Inner.Message = function() {
>Outer.Inner.Message : Symbol(Outer.Inner.Message, Decl(usage.js, 0, 0))
>Outer.Inner : Symbol(Outer.Inner, Decl(usage.js, 1, 6), Decl(def.js, 0, 14))
>Outer : Symbol(Outer, Decl(usage.js, 0, 0), Decl(def.js, 0, 3), Decl(def.js, 0, 14))
>Inner : Symbol(Outer.Inner, Decl(usage.js, 1, 6), Decl(def.js, 0, 14))
>Message : Symbol(Outer.Inner.Message, Decl(usage.js, 0, 0))
};
var y = new Outer.Inner()
>y : Symbol(y, Decl(usage.js, 4, 3))
>Outer.Inner : Symbol(Outer.Inner, Decl(usage.js, 1, 6), Decl(def.js, 0, 14))
>Outer : Symbol(Outer, Decl(usage.js, 0, 0), Decl(def.js, 0, 3), Decl(def.js, 0, 14))
>Inner : Symbol(Outer.Inner, Decl(usage.js, 1, 6), Decl(def.js, 0, 14))
y.name
>y.name : Symbol(Inner.name, Decl(def.js, 1, 21))
>y : Symbol(y, Decl(usage.js, 4, 3))
>name : Symbol(Inner.name, Decl(def.js, 1, 21))
/** @type {Outer.Inner} should be instance type, not static type */
var x;
>x : Symbol(x, Decl(usage.js, 7, 3))
x.name
>x.name : Symbol(Inner.name, Decl(def.js, 1, 21))
>x : Symbol(x, Decl(usage.js, 7, 3))
>name : Symbol(Inner.name, Decl(def.js, 1, 21))
=== tests/cases/conformance/salsa/def.js ===
var Outer = {}
>Outer : Symbol(Outer, Decl(usage.js, 0, 0), Decl(def.js, 0, 3), Decl(def.js, 0, 14))
Outer.Inner = class {
>Outer.Inner : Symbol(Outer.Inner, Decl(usage.js, 1, 6), Decl(def.js, 0, 14))
>Outer : Symbol(Outer, Decl(usage.js, 0, 0), Decl(def.js, 0, 3), Decl(def.js, 0, 14))
>Inner : Symbol(Outer.Inner, Decl(usage.js, 1, 6), Decl(def.js, 0, 14))
name() {
>name : Symbol(Inner.name, Decl(def.js, 1, 21))
return 'hi'
}
}
|