<p dir="auto">I've created the simplest babel programme I can think of, that I would expect to do nothing.</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="var babel = require('babel-core');
var code = '&quot;use strict&quot;;';    // Edited typo
var result = babel.transform(code);

// Expected result: &quot;use strict&quot;;
// Actual result: &quot;use strict&quot;; &quot;use strict&quot;;"><pre class="notranslate"><span class="pl-k">var</span> <span class="pl-s1">babel</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'babel-core'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-k">var</span> <span class="pl-s1">code</span> <span class="pl-c1">=</span> <span class="pl-s">'"use strict";'</span><span class="pl-kos">;</span>    <span class="pl-c">// Edited typo</span>
<span class="pl-k">var</span> <span class="pl-s1">result</span> <span class="pl-c1">=</span> <span class="pl-s1">babel</span><span class="pl-kos">.</span><span class="pl-en">transform</span><span class="pl-kos">(</span><span class="pl-s1">code</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-c">// Expected result: "use strict";</span>
<span class="pl-c">// Actual result: "use strict"; "use strict";</span></pre></div>
<p dir="auto">I had presumed that a call to <code class="notranslate">transform</code> with no transformers specified would do nothing. At the very least it's forcing strict mode on me.  Is this a bug or a feature?  Are there other things babel forces on me by default?</p>
<p dir="auto">A class which extends itself isn't compiled correctly:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="class A {
    ...
}

class A extends A {
    ...
}"><pre class="notranslate"><code class="notranslate">class A {
    ...
}

class A extends A {
    ...
}
</code></pre></div>
<p dir="auto">I think the error comes from:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="inherits(A, A);"><pre class="notranslate"><code class="notranslate">inherits(A, A);
</code></pre></div>
<p dir="auto">A workaround is to do:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="var A_ = A;
class A extends A_ {

}"><pre class="notranslate"><code class="notranslate">var A_ = A;
class A extends A_ {

}
</code></pre></div>