757e67041e
* Fix getExpandoSymbol for already-expando symbols getExpandoSymbol is intended to get the symbol of the expando in a declaration like ```js var C = class { } ``` However, when this occurs in a `module.exports` assignment, alias resolution already jumps to the exported symbol -- in this case the expando symbol: ``js // @filename: first.js module.exports = class { } // @filename: other.js /* @type {import("./first")} */ var C ``` `getExpandoSymbol` is then called on `class { }` instead of `module.exports = class { }`. Previously, `getExpandoSymbol` would incorrectly treat `class { }` the same as the export assignment and get the expando ... from the expando itself. This resulted in merging the expando with itself, which causes bogus errors and could cause other problems. Now `getExpandoSymbol` checks that the expando "initializer" is different from the declaration. * Better check for getExpandoSymbol of expando Check the declaration directly instead of the initialiser.
28 lines
413 B
TypeScript
28 lines
413 B
TypeScript
// @noEmit: true
|
|
// @allowjs: true
|
|
// @checkjs: true
|
|
|
|
// @Filename: MW.js
|
|
/** @typedef {import("./MC")} MC */
|
|
|
|
class MW {
|
|
/**
|
|
* @param {MC} compiler the compiler
|
|
*/
|
|
constructor(compiler) {
|
|
this.compiler = compiler;
|
|
}
|
|
}
|
|
|
|
module.exports = MW;
|
|
|
|
// @Filename: MC.js
|
|
const MW = require("./MW");
|
|
|
|
/** @typedef {number} Cictema */
|
|
|
|
module.exports = class MC {
|
|
watch() {
|
|
return new MW(this);
|
|
}
|
|
};
|