diff --git a/src/Declaration.js b/src/Declaration.js index f8a308d..7755cdd 100644 --- a/src/Declaration.js +++ b/src/Declaration.js @@ -196,8 +196,7 @@ export class SyntheticNamespaceDeclaration { // the reference by pointing directly to `bar` if ( reference.parts.length ) { reference.name = reference.parts.shift(); - - reference.end += reference.name.length + 1; // TODO this is brittle + reference.end = reference.node.end; const original = this.originals[ reference.name ]; diff --git a/test/form/whitespace-around-namespace-member-expression/_config.js b/test/form/whitespace-around-namespace-member-expression/_config.js new file mode 100644 index 0000000..a97b168 --- /dev/null +++ b/test/form/whitespace-around-namespace-member-expression/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'whitespace around the "." in member expressions does not mess up renaming' +}; diff --git a/test/form/whitespace-around-namespace-member-expression/_expected/amd.js b/test/form/whitespace-around-namespace-member-expression/_expected/amd.js new file mode 100644 index 0000000..00fa37b --- /dev/null +++ b/test/form/whitespace-around-namespace-member-expression/_expected/amd.js @@ -0,0 +1,9 @@ +define(function () { 'use strict'; + + function yar() { + console.log('yar?'); + } + + yar(); + +}); \ No newline at end of file diff --git a/test/form/whitespace-around-namespace-member-expression/_expected/cjs.js b/test/form/whitespace-around-namespace-member-expression/_expected/cjs.js new file mode 100644 index 0000000..c47867c --- /dev/null +++ b/test/form/whitespace-around-namespace-member-expression/_expected/cjs.js @@ -0,0 +1,7 @@ +'use strict'; + +function yar() { + console.log('yar?'); +} + +yar(); \ No newline at end of file diff --git a/test/form/whitespace-around-namespace-member-expression/_expected/es6.js b/test/form/whitespace-around-namespace-member-expression/_expected/es6.js new file mode 100644 index 0000000..9ad6744 --- /dev/null +++ b/test/form/whitespace-around-namespace-member-expression/_expected/es6.js @@ -0,0 +1,5 @@ +function yar() { + console.log('yar?'); +} + +yar(); \ No newline at end of file diff --git a/test/form/whitespace-around-namespace-member-expression/_expected/iife.js b/test/form/whitespace-around-namespace-member-expression/_expected/iife.js new file mode 100644 index 0000000..5a0d920 --- /dev/null +++ b/test/form/whitespace-around-namespace-member-expression/_expected/iife.js @@ -0,0 +1,10 @@ +(function () { + 'use strict'; + + function yar() { + console.log('yar?'); + } + + yar(); + +}()); \ No newline at end of file diff --git a/test/form/whitespace-around-namespace-member-expression/_expected/umd.js b/test/form/whitespace-around-namespace-member-expression/_expected/umd.js new file mode 100644 index 0000000..ae6ce6f --- /dev/null +++ b/test/form/whitespace-around-namespace-member-expression/_expected/umd.js @@ -0,0 +1,13 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory() : + typeof define === 'function' && define.amd ? define(factory) : + (factory()); +}(this, function () { 'use strict'; + + function yar() { + console.log('yar?'); + } + + yar(); + +})); \ No newline at end of file diff --git a/test/form/whitespace-around-namespace-member-expression/foo.js b/test/form/whitespace-around-namespace-member-expression/foo.js new file mode 100644 index 0000000..1479860 --- /dev/null +++ b/test/form/whitespace-around-namespace-member-expression/foo.js @@ -0,0 +1,3 @@ +export function yar() { + console.log('yar?'); +} diff --git a/test/form/whitespace-around-namespace-member-expression/main.js b/test/form/whitespace-around-namespace-member-expression/main.js new file mode 100644 index 0000000..eba0ddf --- /dev/null +++ b/test/form/whitespace-around-namespace-member-expression/main.js @@ -0,0 +1,2 @@ +import * as foo from './foo.js'; +foo .yar();