1
0
Kaynağa Gözat

Do not reference `window' in SemanticAnalyzer

Nicolas Petton 13 yıl önce
ebeveyn
işleme
c5ec3b2969
3 değiştirilmiş dosya ile 625 ekleme ve 633 silme
  1. 309 315
      js/Compiler-Semantic.deploy.js
  2. 309 315
      js/Compiler-Semantic.js
  3. 7 3
      st/Compiler-Semantic.st

Dosya farkı çok büyük olduğundan ihmal edildi
+ 309 - 315
js/Compiler-Semantic.deploy.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 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. ]
 ! !
 ! !
 
 

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor