2
0
Pārlūkot izejas kodu

Do not reference `window' in SemanticAnalyzer

Nicolas Petton 13 gadi atpakaļ
vecāks
revīzija
c5ec3b2969
3 mainītis faili ar 625 papildinājumiem un 633 dzēšanām
  1. 309 315
      js/Compiler-Semantic.deploy.js
  2. 309 315
      js/Compiler-Semantic.js
  3. 7 3
      st/Compiler-Semantic.st

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 309 - 315
js/Compiler-Semantic.deploy.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 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. ]
 ! !
 ! !
 
 

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels