ソースを参照

Do not reference `window' in SemanticAnalyzer

Nicolas Petton 13 年 前
コミット
c5ec3b2969
3 ファイル変更625 行追加633 行削除
  1. 309 315
      js/Compiler-Semantic.deploy.js
  2. 309 315
      js/Compiler-Semantic.js
  3. 7 3
      st/Compiler-Semantic.st

ファイルの差分が大きいため隠しています
+ 309 - 315
js/Compiler-Semantic.deploy.js


ファイルの差分が大きいため隠しています
+ 309 - 315
js/Compiler-Semantic.js


+ 7 - 3
st/Compiler-Semantic.st

@@ -408,12 +408,16 @@ errorShadowingVariable: aString
 errorUnknownVariable: aNode
 errorUnknownVariable: aNode
 	"Throw an error if the variable is undeclared in the global JS scope (i.e. window)"
 	"Throw an error if the variable is undeclared in the global JS scope (i.e. window)"
 
 
-	(window at: aNode value) 
-		ifNil: [ 
+	| notDefined |
+
+	notDefined := <eval('typeof ' + aNode._value() + ' == "undefined"')>.
+
+	notDefined
+		ifTrue: [ 
 			UnknownVariableError new
 			UnknownVariableError new
 				variableName: aNode value;
 				variableName: aNode value;
 				signal ]
 				signal ]
-		ifNotNil: [
+		ifFalse: [
 			currentScope methodScope unknownVariables add: aNode value. ]
 			currentScope methodScope unknownVariables add: aNode value. ]
 ! !
 ! !
 
 

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません