<p dir="auto"><strong>TypeScript Version:</strong></p>
<ul dir="auto">
<li>Version 1.9.0-dev.20160525-1.0</li>
</ul>
<p dir="auto"><strong>Code</strong></p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// A self-contained demonstration of the problem follows...
async function getBar(params: number) {
    return 1;
}"><pre class="notranslate"><span class="pl-c">// A self-contained demonstration of the problem follows...</span>
<span class="pl-k">async</span> <span class="pl-k">function</span> <span class="pl-en">getBar</span><span class="pl-kos">(</span><span class="pl-s1">params</span>: <span class="pl-smi">number</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">return</span> <span class="pl-c1">1</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto">transform into with <code class="notranslate">--target ES6</code></p>
<p dir="auto"><strong>Expected behavior:</strong></p>
<ul dir="auto">
<li>Don't transform async/await with polyfill codes.
<ul dir="auto">
<li>I would not like to transform async/awai in typescript phase, use babel or something to transform them, or use browser's natively support.</li>
<li>In this case, I'd like to use TypeScript compiler as a very nice type checker and down transform to ECMA262's latest standard syntax.</li>
</ul>
</li>
</ul>
<p dir="auto"><strong>Actual behavior:</strong></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="var __awaiter = (this &amp;&amp; this.__awaiter) || function (thisArg, _arguments, P, generator) {
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments)).next());
    });
};
function getBar(params) {
    return __awaiter(this, void 0, void 0, function* () {
        return 1;
    });
}"><pre class="notranslate"><span class="pl-k">var</span> <span class="pl-s1">__awaiter</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-smi">this</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">__awaiter</span><span class="pl-kos">)</span> <span class="pl-c1">||</span> <span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-s1">thisArg</span><span class="pl-kos">,</span> <span class="pl-s1">_arguments</span><span class="pl-kos">,</span> <span class="pl-v">P</span><span class="pl-kos">,</span> <span class="pl-s1">generator</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">return</span> <span class="pl-k">new</span> <span class="pl-kos">(</span><span class="pl-v">P</span> <span class="pl-c1">||</span> <span class="pl-kos">(</span><span class="pl-v">P</span> <span class="pl-c1">=</span> <span class="pl-v">Promise</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-kos">(</span><span class="pl-s1">resolve</span><span class="pl-kos">,</span> <span class="pl-s1">reject</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-k">function</span> <span class="pl-en">fulfilled</span><span class="pl-kos">(</span><span class="pl-s1">value</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">try</span> <span class="pl-kos">{</span> <span class="pl-en">step</span><span class="pl-kos">(</span><span class="pl-s1">generator</span><span class="pl-kos">.</span><span class="pl-en">next</span><span class="pl-kos">(</span><span class="pl-s1">value</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">catch</span> <span class="pl-kos">(</span><span class="pl-s1">e</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-s1">reject</span><span class="pl-kos">(</span><span class="pl-s1">e</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">function</span> <span class="pl-en">rejected</span><span class="pl-kos">(</span><span class="pl-s1">value</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">try</span> <span class="pl-kos">{</span> <span class="pl-en">step</span><span class="pl-kos">(</span><span class="pl-s1">generator</span><span class="pl-kos">.</span><span class="pl-en">throw</span><span class="pl-kos">(</span><span class="pl-s1">value</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">catch</span> <span class="pl-kos">(</span><span class="pl-s1">e</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-s1">reject</span><span class="pl-kos">(</span><span class="pl-s1">e</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">function</span> <span class="pl-en">step</span><span class="pl-kos">(</span><span class="pl-s1">result</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-s1">result</span><span class="pl-kos">.</span><span class="pl-c1">done</span> ? <span class="pl-s1">resolve</span><span class="pl-kos">(</span><span class="pl-s1">result</span><span class="pl-kos">.</span><span class="pl-c1">value</span><span class="pl-kos">)</span> : <span class="pl-k">new</span> <span class="pl-v">P</span><span class="pl-kos">(</span><span class="pl-k">function</span> <span class="pl-kos">(</span><span class="pl-s1">resolve</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-s1">resolve</span><span class="pl-kos">(</span><span class="pl-s1">result</span><span class="pl-kos">.</span><span class="pl-c1">value</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-en">then</span><span class="pl-kos">(</span><span class="pl-s1">fulfilled</span><span class="pl-kos">,</span> <span class="pl-s1">rejected</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span>
        <span class="pl-en">step</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">generator</span> <span class="pl-c1">=</span> <span class="pl-s1">generator</span><span class="pl-kos">.</span><span class="pl-en">apply</span><span class="pl-kos">(</span><span class="pl-s1">thisArg</span><span class="pl-kos">,</span> <span class="pl-s1">_arguments</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">next</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-kos">;</span>
<span class="pl-kos">}</span><span class="pl-kos">;</span>
<span class="pl-k">function</span> <span class="pl-en">getBar</span><span class="pl-kos">(</span><span class="pl-s1">params</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">return</span> <span class="pl-s1">__awaiter</span><span class="pl-kos">(</span><span class="pl-smi">this</span><span class="pl-kos">,</span> <span class="pl-k">void</span> <span class="pl-c1">0</span><span class="pl-kos">,</span> <span class="pl-k">void</span> <span class="pl-c1">0</span><span class="pl-kos">,</span> <span class="pl-k">function</span><span class="pl-c1">*</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-c1">1</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></pre></div>
<p dir="auto"><em>From <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mathiasdose/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mathiasdose">@mathiasdose</a> on February 11, 2016 8:20</em></p>
<p dir="auto">One of the features that I really liked with vscode was the folder path intellisense inside require('path') while doing NodeJs development. Now I just see a list of global variables. I don't use the new salsa, and I'm targeting ES5.</p>
<p dir="auto">Something that might be worth mentioning is that the intellisense of the required modules is working as before.</p>
<p dir="auto"><em>Copied from original issue: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="132914331" data-permission-text="Title is private" data-url="https://github.com/microsoft/vscode/issues/2923" data-hovercard-type="issue" data-hovercard-url="/microsoft/vscode/issues/2923/hovercard" href="https://github.com/microsoft/vscode/issues/2923">microsoft/vscode#2923</a></em></p>