in src/React.Core/ReactEnvironment.cs [493:525]
private void EnsureBabelLoaded(IJsEngine engine)
{
// If Babel is disabled in the config, don't even try loading it
if (!_config.LoadBabel)
{
throw new BabelNotLoadedException();
}
var babelLoaded = engine.Evaluate<bool>("typeof ReactNET_transform !== 'undefined'");
if (!babelLoaded)
{
#if NET40
var assembly = typeof(ReactEnvironment).Assembly;
#else
var assembly = typeof(ReactEnvironment).GetTypeInfo().Assembly;
#endif
string resourceName = _config.BabelVersion == BabelVersions.Babel7 || _config.BabelVersion == null
? "React.Core.Resources.babel.generated.min.js"
: _config.BabelVersion == BabelVersions.Babel6
? "React.Core.Resources.babel-legacy.generated.min.js"
: throw new ReactConfigurationException("BabelVersion was not null, but did not contain a valid value.");
if (_config.AllowJavaScriptPrecompilation
&& engine.TryExecuteResourceWithPrecompilation(_cache, resourceName, assembly))
{
// Do nothing.
}
else
{
engine.ExecuteResource(resourceName, assembly);
}
}
}