aba932aefa
* Commonjs module:create synthetic exports symbol Previously, the `module` identifier in commonjs modules got a synthetic type with a single property `exports`. The exports property reused the file's symbol, which, for a module file, gives the correct exported properties. However, the name of this symbol was still the filename of the file, not `exports`. This PR creates a synthetic symbol for `exports` by copying in a similar way to esModuleInterop's `default` symbol in `resolveESModuleSymbol` (although the intent there is to strip off signatures from the symbol). * correct parent of synthetic symbol
61 lines
1.9 KiB
Plaintext
61 lines
1.9 KiB
Plaintext
=== tests/cases/conformance/jsdoc/use.js ===
|
|
var mod = require('./mod');
|
|
>mod : Symbol(mod, Decl(use.js, 0, 3))
|
|
>require : Symbol(require)
|
|
>'./mod' : Symbol(mod, Decl(mod.js, 0, 0))
|
|
|
|
mod.f('no')
|
|
>mod.f : Symbol(mod.f, Decl(mod.js, 0, 0))
|
|
>mod : Symbol(mod, Decl(use.js, 0, 3))
|
|
>f : Symbol(mod.f, Decl(mod.js, 0, 0))
|
|
|
|
mod.g('also no')
|
|
>mod.g : Symbol(mod.g, Decl(mod.js, 1, 11))
|
|
>mod : Symbol(mod, Decl(use.js, 0, 3))
|
|
>g : Symbol(mod.g, Decl(mod.js, 1, 11))
|
|
|
|
mod.h(0)
|
|
>mod.h : Symbol(mod.h, Decl(mod.js, 3, 1))
|
|
>mod : Symbol(mod, Decl(use.js, 0, 3))
|
|
>h : Symbol(mod.h, Decl(mod.js, 3, 1))
|
|
|
|
mod.i(1)
|
|
>mod.i : Symbol(mod.i, Decl(mod.js, 5, 18))
|
|
>mod : Symbol(mod, Decl(use.js, 0, 3))
|
|
>i : Symbol(mod.i, Decl(mod.js, 5, 18))
|
|
|
|
=== tests/cases/conformance/jsdoc/mod.js ===
|
|
/** @param {number} n */
|
|
exports.f = exports.g = function fg(n) {
|
|
>exports.f : Symbol(f, Decl(mod.js, 0, 0))
|
|
>exports : Symbol(f, Decl(mod.js, 0, 0))
|
|
>f : Symbol(f, Decl(mod.js, 0, 0))
|
|
>exports.g : Symbol(g, Decl(mod.js, 1, 11))
|
|
>exports : Symbol(g, Decl(mod.js, 1, 11))
|
|
>g : Symbol(g, Decl(mod.js, 1, 11))
|
|
>fg : Symbol(fg, Decl(mod.js, 1, 23))
|
|
>n : Symbol(n, Decl(mod.js, 1, 36))
|
|
|
|
return n + 1
|
|
>n : Symbol(n, Decl(mod.js, 1, 36))
|
|
}
|
|
/** @param {string} mom */
|
|
module.exports.h = module.exports.i = function hi(mom) {
|
|
>module.exports.h : Symbol(h, Decl(mod.js, 3, 1))
|
|
>module.exports : Symbol(h, Decl(mod.js, 3, 1))
|
|
>module : Symbol(module, Decl(mod.js, 3, 1))
|
|
>exports : Symbol(module.exports, Decl(mod.js, 0, 0))
|
|
>h : Symbol(h, Decl(mod.js, 3, 1))
|
|
>module.exports.i : Symbol(i, Decl(mod.js, 5, 18))
|
|
>module.exports : Symbol(i, Decl(mod.js, 5, 18))
|
|
>module : Symbol(module, Decl(mod.js, 3, 1))
|
|
>exports : Symbol(module.exports, Decl(mod.js, 0, 0))
|
|
>i : Symbol(i, Decl(mod.js, 5, 18))
|
|
>hi : Symbol(hi, Decl(mod.js, 5, 37))
|
|
>mom : Symbol(mom, Decl(mod.js, 5, 50))
|
|
|
|
return `hi, ${mom}!`;
|
|
>mom : Symbol(mom, Decl(mod.js, 5, 50))
|
|
}
|
|
|