Issue 1:
Choose one: is this a bug report or feature request?

Bug report

Input Code

module-sub.js

export default function test(arg) {
return typeof arg
}

export const a = 1
export const b = 2

module.js

export * from './module-sub'

common.js

var x = typeof arg
module.exports = x

Babel/Babylon Configuration (.babelrc, package.json, cli command)

{
"presets": [["es2015", { "modules": false }], "stage-2"],
"plugins": ["transform-runtime"],
"env": {
"test": {
"presets": ["env", "stage-2"],
"plugins": ["istanbul"]
}
}
}

and

{
"presets": ["es2015", "stage-2"],
"plugins": ["transform-runtime"],
"env": {
"test": {
"presets": ["env", "stage-2"],
"plugins": ["istanbul"]
}
}
}

Expected Behavior

when modules not set, default commonjs

module.js become

'use strict';

import _Object$defineProperty from 'babel-runtime/core-js/object/define-property';
import _Object$keys from 'babel-runtime/core-js/object/keys';
Object.defineProperty(exports, "__esModule", {
value: true
});

var _moduleSub = require('./module-sub');

_Object$keys(_moduleSub).forEach(function (key) {
if (key === "default" || key === "__esModule") return;

_Object$defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _moduleSub[key];
}
});
});

when modules is set to false

common.js become

import _typeof from "babel-runtime/helpers/typeof";
var x = typeof arg === "undefined" ? "undefined" : _typeof(arg);
module.exports = x;

In a project mixed with commonjs files and ES module files with export *

babel generates import and exports, this will results webpack 2 rename exports to __webpack_exports__, final results exports is not defined

example code generated by webpack with content mixed with exports and import

/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_define_property__ = __webpack_require__("liLe");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_define_property___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_define_property__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys__ = __webpack_require__("ZLEe");
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys__);

Object.defineProperty(exports, "__esModule", {
value: true
});

related issues

webpack/webpack#3974

https://www.google.com.hk/search?newwindow=1&safe=strict&ei=I1AmWtK9Doaj8QX86amoCw&q=exports+is+not+defined&oq=exp&gs_l=psy-ab.3.0.0i67k1j0j0i67k1l2j0j0i67k1l4j0.7698247.7698604.0.7699788.3.3.0.0.0.0.137.268.0j2.2.0....0...1c.1.64.psy-ab..1.2.267...0i131k1.0.WC-jJIZgzU8

Your Environment

software
version(s)

Babel
6.26.0 (babel-core 6.26.0) babel-cli

Babylon

node
v8.6.0

npm
5.5.1

Operating System
macOS high Siera

Issue 2:
I am attempting to use transform-runtime in combination with code that uses the export * from 'x' statement. The code that is generated during transpilation includes an import statement for core-js' define-property. I'm using the es2015 preset, so I would expect that a require statement would be generated, not an import.

Small sample project at https://gist.github.com/mdouglass/a6a5c5aae68ac03a92d3