Better fetcher, better global finder, and adding eval approach if we need it
diff --git a/bundles/org.eclipse.e4.languages.javascript.framework/scripts/Bundle.js b/bundles/org.eclipse.e4.languages.javascript.framework/scripts/Bundle.js index 022bfb4..ee35784 100644 --- a/bundles/org.eclipse.e4.languages.javascript.framework/scripts/Bundle.js +++ b/bundles/org.eclipse.e4.languages.javascript.framework/scripts/Bundle.js
@@ -270,9 +270,6 @@ var parameterStatement = parameterNames.join(","); var returnStatement = "\n\nreturn {" + exportNames.join(",") + "};"; - - var finalScript = this._script + returnStatement; - var load = new Function(parameterStatement, finalScript); var that = this; var _ResourceWrapper = function() { @@ -281,7 +278,11 @@ }; }; _ResourceWrapper.prototype = orion.global; - var context = new _ResourceWrapper(); + var context = new _ResourceWrapper(); + var finalScript = this._script + returnStatement; + var load = new Function(parameterStatement, finalScript); + // or alternately + // var load = eval("(function("+parameterStatement+") {\n" + finalScript + "\n})"); this._scope = load.apply(context, parameterValues); }, _unresolve : function() {
diff --git a/bundles/org.eclipse.e4.languages.javascript.framework/scripts/Framework.js b/bundles/org.eclipse.e4.languages.javascript.framework/scripts/Framework.js index 71d8964..5b86a9f 100644 --- a/bundles/org.eclipse.e4.languages.javascript.framework/scripts/Framework.js +++ b/bundles/org.eclipse.e4.languages.javascript.framework/scripts/Framework.js
@@ -287,16 +287,21 @@ return request.responseText; } - var url = new java.net.URL(location); - var buffer = new java.io.BufferedReader(new java.io.InputStreamReader(url.openStream())); - var line, responseText = ""; - try { - while ((line = buffer.readLine()) != null) - responseText += line; + var url = new java.net.URL(location); + var reader = new java.io.InputStreamReader(url.openStream()); + var stringWriter = new java.io.StringWriter(); + var buffer = java.lang.reflect.Array.newInstance(java.lang.Character.TYPE, 1024); + var charsRead; + + try { + while ((charsRead = reader.read(buffer, 0, 1024)) != -1) { + stringWriter.write(buffer, 0, charsRead); + } } finally { - buffer.close(); + reader.close; + stringWriter.close(); } - return responseText; + return stringWriter.toString(); };
diff --git a/bundles/org.eclipse.e4.languages.javascript.framework/scripts/__global.js b/bundles/org.eclipse.e4.languages.javascript.framework/scripts/__global.js index 486b9df..e25a6d2 100644 --- a/bundles/org.eclipse.e4.languages.javascript.framework/scripts/__global.js +++ b/bundles/org.eclipse.e4.languages.javascript.framework/scripts/__global.js
@@ -1,2 +1,3 @@ var orion = orion || {}; -orion.global = this; +(function() {orion.global = this;})(); +