From dda2a1ef8261233e2e67df09fd6841ea8bba7624 Mon Sep 17 00:00:00 2001
From: Kevin Jahns <kevin.jahns@rwth-aachen.de>
Date: Mon, 31 Oct 2016 02:58:21 +0100
Subject: [PATCH] another take on sourcedir: null specifies not to load
 anything automatically

---
 src/y.js | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/y.js b/src/y.js
index 51420cb2..65540e4d 100644
--- a/src/y.js
+++ b/src/y.js
@@ -38,7 +38,12 @@ Y.extend = function (name, value) {
 
 Y.requestModules = requestModules
 function requestModules (modules) {
-  var sourceDir = Y.sourceDir || '/bower_components'
+  var sourceDir
+  if (Y.sourceDir === null) {
+    sourceDir = null
+  } else {
+    sourceDir = Y.sourceDir || '/bower_components'
+  }
   // determine if this module was compiled for es5 or es6 (y.js vs. y.es6)
   // if Insert.execute is a Function, then it isnt a generator..
   // then load the es5(.js) files..
@@ -51,10 +56,11 @@ function requestModules (modules) {
       if (requiringModules[module] == null) {
         // module does not exist
         if (typeof window !== 'undefined' && window.Y !== 'undefined') {
-          var imported = document.createElement('script')
-          imported.src = sourceDir + '/' + modulename + '/' + modulename + extention
-          document.head.appendChild(imported)
-
+          if (sourceDir != null) {
+            var imported = document.createElement('script')
+            imported.src = sourceDir + '/' + modulename + '/' + modulename + extention
+            document.head.appendChild(imported)
+          }
           let requireModule = {}
           requiringModules[module] = requireModule
           requireModule.promise = new Promise(function (resolve) {
@@ -103,7 +109,7 @@ type YOptions = {
 */
 
 function Y (opts/* :YOptions */) /* :Promise<YConfig> */ {
-  if (opts.sourceDir != null) {
+  if (opts.hasOwnProperty('sourceDir')) {
     Y.sourceDir = opts.sourceDir
   }
   opts.types = opts.types != null ? opts.types : []