From a75bc784907bcbb4946c8b7cff3bc3abcb3eca08 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 17 Oct 2015 12:50:20 +0200 Subject: [PATCH] default settings for globalEvaluationScope --- lib/core.js | 7 +++++++ lib/global-eval.js | 8 +------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/core.js b/lib/core.js index 1a5e8bdf..ca8bd3d6 100644 --- a/lib/core.js +++ b/lib/core.js @@ -38,6 +38,13 @@ hookConstructor(function(constructor) { this.globalEvaluationScope = true; this.pluginFirst = false; + // Default settings for globalEvaluationScope: + // Disabled for WebWorker, Chrome Extensions and jsdom + if (isWorker + || isBrowser && window.chrome && window.chrome.extension + || isBrowser && navigator.userAgent.match(/^Node\.js/)) + this.globalEvaluationScope = false; + // support the empty module, as a concept this.set('@empty', this.newModule({})); diff --git a/lib/global-eval.js b/lib/global-eval.js index ba20656f..caff612c 100644 --- a/lib/global-eval.js +++ b/lib/global-eval.js @@ -63,14 +63,8 @@ var __exec; } } - // Web Worker and Chrome Extensions use original ESML eval - // this may lead to some global module execution differences (eg var not defining onto global) - if (isWorker || isBrowser && window.chrome && window.chrome.extension) { - __exec = evalExec; - } - // use script injection eval to get identical global script behaviour - else if (typeof document != 'undefined' && document.getElementsByTagName) { + if (typeof document != 'undefined' && document.getElementsByTagName) { var head; var scripts = document.getElementsByTagName('script');