<p dir="auto"><strong>Original</strong></p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="@dec
export class C {
}"><pre class="notranslate">@<span class="pl-s1">dec</span>
<span class="pl-k">export</span> <span class="pl-k">class</span> <span class="pl-smi">C</span> <span class="pl-kos">{</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto"><strong>Expected</strong></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="var C = (function () {
    function C() {
    }
    return C;
}());
C = __decorate([
    dec
], C);
exports.C = C;"><pre class="notranslate"><span class="pl-k">var</span> <span class="pl-v">C</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">function</span> <span class="pl-v">C</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-kos">}</span>
    <span class="pl-k">return</span> <span class="pl-v">C</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-v">C</span> <span class="pl-c1">=</span> <span class="pl-en">__decorate</span><span class="pl-kos">(</span><span class="pl-kos">[</span>
    <span class="pl-s1">dec</span>
<span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-v">C</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-s1">exports</span><span class="pl-kos">.</span><span class="pl-c1">C</span> <span class="pl-c1">=</span> <span class="pl-v">C</span><span class="pl-kos">;</span></pre></div>
<p dir="auto"><strong>Actual</strong></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="exports.C = (function () {
    function C() {
    }
    return C;
}());
C = __decorate([
    dec
], C);"><pre class="notranslate"><span class="pl-s1">exports</span><span class="pl-kos">.</span><span class="pl-c1">C</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">function</span> <span class="pl-v">C</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-kos">}</span>
    <span class="pl-k">return</span> <span class="pl-v">C</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-v">C</span> <span class="pl-c1">=</span> <span class="pl-en">__decorate</span><span class="pl-kos">(</span><span class="pl-kos">[</span>
    <span class="pl-s1">dec</span>
<span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-v">C</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<ul dir="auto">
<li>decoratorOnClass2</li>
</ul>
<p dir="auto"><strong>Expected</strong>:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="var MyClass = (function () {
    function MyClass(db) {
        this.db = db;
        this.db.doSomething();
    }
    return MyClass;
}());
MyClass = __decorate([
    someDecorator,
    __metadata(&quot;design:paramtypes&quot;, [db_1.db])
], MyClass);
exports.MyClass = MyClass;"><pre class="notranslate"><span class="pl-k">var</span> <span class="pl-v">MyClass</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">function</span> <span class="pl-v">MyClass</span><span class="pl-kos">(</span><span class="pl-s1">db</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">db</span> <span class="pl-c1">=</span> <span class="pl-s1">db</span><span class="pl-kos">;</span>
        <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">db</span><span class="pl-kos">.</span><span class="pl-en">doSomething</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span>
    <span class="pl-k">return</span> <span class="pl-v">MyClass</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-v">MyClass</span> <span class="pl-c1">=</span> <span class="pl-en">__decorate</span><span class="pl-kos">(</span><span class="pl-kos">[</span>
    <span class="pl-s1">someDecorator</span><span class="pl-kos">,</span>
    <span class="pl-en">__metadata</span><span class="pl-kos">(</span><span class="pl-s">"design:paramtypes"</span><span class="pl-kos">,</span> <span class="pl-kos">[</span><span class="pl-s1">db_1</span><span class="pl-kos">.</span><span class="pl-c1">db</span><span class="pl-kos">]</span><span class="pl-kos">)</span>
<span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-v">MyClass</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-s1">exports</span><span class="pl-kos">.</span><span class="pl-c1">MyClass</span> <span class="pl-c1">=</span> <span class="pl-v">MyClass</span><span class="pl-kos">;</span></pre></div>
<p dir="auto"><strong>Actual</strong>:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="var MyClass = (function () {
    function MyClass(db) {
        this.db = db;
        this.db.doSomething();
    }
    return MyClass;
}());
MyClass = __decorate([
    someDecorator,
    __metadata(&quot;design:paramtypes&quot;, [db_1.db])
], MyClass);
"><pre class="notranslate"><span class="pl-k">var</span> <span class="pl-v">MyClass</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">function</span> <span class="pl-v">MyClass</span><span class="pl-kos">(</span><span class="pl-s1">db</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">db</span> <span class="pl-c1">=</span> <span class="pl-s1">db</span><span class="pl-kos">;</span>
        <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">db</span><span class="pl-kos">.</span><span class="pl-en">doSomething</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span>
    <span class="pl-k">return</span> <span class="pl-v">MyClass</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-v">MyClass</span> <span class="pl-c1">=</span> <span class="pl-en">__decorate</span><span class="pl-kos">(</span><span class="pl-kos">[</span>
    <span class="pl-s1">someDecorator</span><span class="pl-kos">,</span>
    <span class="pl-en">__metadata</span><span class="pl-kos">(</span><span class="pl-s">"design:paramtypes"</span><span class="pl-kos">,</span> <span class="pl-kos">[</span><span class="pl-s1">db_1</span><span class="pl-kos">.</span><span class="pl-c1">db</span><span class="pl-kos">]</span><span class="pl-kos">)</span>
<span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-v">MyClass</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">Failed tests:</p>
<ul dir="auto">
<li>tests/cases/compiler/decoratorMetadataWithImportDeclarationNameCollision2.ts</li>
<li>decoratorOnClass2</li>
</ul>