Browse Source

Amber itself loads polyfills explicitly.

'amber/compatibility' not used,
nulled for testing with kernel that still loads it.
Herbert Vojčík 7 years ago
parent
commit
593eca7b66
3 changed files with 28 additions and 21 deletions
  1. 18 6
      Gruntfile.js
  2. 0 6
      config-node.js
  3. 10 9
      internal/index.html

+ 18 - 6
Gruntfile.js

@@ -76,19 +76,25 @@ module.exports = function (grunt) {
                 options: {
                     mainConfigFile: "config.js",
                     rawText: {
-                        "amber/Platform": "define()", //eg. nothing, TODO remove
-                        "app": "(" + function () {
+                        "amber/compatibility": "/* stub */", //eg. nothing, TODO remove
+                        "amber/Platform": "/* stub */", //eg. nothing, TODO remove
+                        "amber/__app__": "(" + function () {
                             define(["amber/devel", "amber_core/Platform-Node", "amber_cli/AmberCli"], function (amber) {
                                 amber.initialize().then(function () {
                                     amber.globals.AmberCli._main();
                                 });
                             });
+                        } + "());",
+                        "app": "(" + function () {
+                            define(["require", "amber/es2015-polyfills"], function () {
+                                require(["amber/__app__"]);
+                            });
                         } + "());"
                     },
                     pragmas: {
                         // none, for repl to have all info
                     },
-                    include: ['config-node', 'app', 'amber/lazypack'],
+                    include: ['app', 'amber/lazypack', 'amber/__app__'],
                     insertRequire: ['app'],
                     optimize: "none",
                     wrap: helpers.nodeWrapperWithShebang,
@@ -99,20 +105,26 @@ module.exports = function (grunt) {
                 options: {
                     mainConfigFile: "config.js",
                     rawText: {
-                        "amber/Platform": "define()", //eg. nothing, TODO remove
-                        "app": "(" + function () {
+                        "amber/compatibility": "/* stub */", //eg. nothing, TODO remove
+                        "amber/Platform": "/* stub */", //eg. nothing, TODO remove
+                        "amber/__app__": "(" + function () {
                             define(["amber/devel", "amber_core/Platform-Node", "amber_devkit/NodeTestRunner"], function (amber) {
                                 amber.initialize().then(function () {
                                     amber.globals.NodeTestRunner._main();
                                 });
                             });
+                        } + "());",
+                        "app": "(" + function () {
+                            define(["require", "amber/es2015-polyfills"], function () {
+                                require(["amber/__app__"]);
+                            });
                         } + "());"
                     },
                     paths: {"amber_devkit": helpers.libPath},
                     pragmas: {
                         // none, amber tests test contexts as well as eg. class copying which needs sources
                     },
-                    include: ['config-node', 'app', 'amber/lazypack'],
+                    include: ['app', 'amber/lazypack', 'amber/__app__'],
                     insertRequire: ['app'],
                     optimize: "none",
                     wrap: helpers.nodeWrapperWithShebang,

+ 0 - 6
config-node.js

@@ -1,6 +0,0 @@
-// This file is used to make additional changes
-// when building an app to run in node.js.
-// Free to edit. You can break tests (cli test runner uses
-// this to build itself - it is a node executable).
-define("amber/compatibility", ["amber/node-compatibility"], {});
-define("jquery", {});

+ 10 - 9
internal/index.html

@@ -10,11 +10,10 @@
             baseUrl: "..",
             map: {"*": {
                 "amber/Platform": "amber/devel", //eg. nothing, TODO remove
-                "amber/compatibility": "amber/browser-compatibility"
+                "amber/compatibility": "amber/devel" //eg. nothing, TODO remove
             }}
         };
     </script>
-    <script type='text/javascript' src='../node_modules/es6-promise/dist/es6-promise.js'></script>
     <script type='text/javascript' src='../node_modules/requirejs/require.js'></script>
     <script type='text/javascript' src='../config.js'></script>
 </head>
@@ -28,13 +27,14 @@
     startLegacy.parentNode.removeChild(startLegacy);
     var startHelios = document.getElementById("starthelios");
     startHelios.parentNode.removeChild(startHelios);
-    var loadHelpers = new Promise(function (resolve, reject) {
-        setTimeout(function () {
-            require(["amber/legacy/IDE", "amber/web/Web", "amber/legacy/Benchfib", "helios/all", "amber_cli/AmberCli"], resolve, reject);
-        }, 250);
-    });
-    require(["amber/devel", "amber_core/Platform-Browser"], function (amber) {
-        loadHelpers
+    require(["require", "amber/es2015-polyfills"], function (require) {
+        var loadHelpers = new Promise(function (resolve, reject) {
+            setTimeout(function () {
+                require(["amber/legacy/IDE", "amber/web/Web", "amber/legacy/Benchfib", "helios/all", "amber_cli/AmberCli"], resolve, reject);
+            }, 250);
+        });
+        require(["amber/devel", "amber_core/Platform-Browser"], function (amber) {
+            loadHelpers
                 .then(function () {
                     return amber.initialize({'transport.defaultAmdNamespace': "amber_core"})
                 })
@@ -44,6 +44,7 @@
                     loading.parentNode.appendChild(startHelios);
                     loading.parentNode.removeChild(loading);
                 });
+        });
     });
 </script>
 </body>