Browse Source

Fixed issue #29

Nicolas Petton 12 years ago
parent
commit
2fed727571
3 changed files with 7 additions and 6 deletions
  1. 0 1
      js/Compiler.deploy.js
  2. 0 1
      js/Compiler.js
  3. 7 4
      st/Compiler.st

File diff suppressed because it is too large
+ 0 - 1
js/Compiler.deploy.js


File diff suppressed because it is too large
+ 0 - 1
js/Compiler.js


+ 7 - 4
st/Compiler.st

@@ -960,9 +960,12 @@ visitVariableNode: aNode
 	(self currentClass allInstanceVariableNames includes: aNode value) 
 		ifTrue: [stream nextPutAll: 'self[''@', aNode value, ''']']
 		ifFalse: [
-			(self knownVariables includes: aNode value) ifFalse: [
-				unknownVariables add: aNode value].
-			stream nextPutAll: aNode value]
+			(self knownVariables includes: aNode value) 
+                  		ifFalse: [
+					unknownVariables add: aNode value.
+					stream nextPutAll: '(typeof ', aNode value, ' == ''undefined'' ? nil : ', aNode value, ')']
+                		ifTrue: [
+                                	stream nextPutAll: aNode value]]
 !
 
 visitJSStatementNode: aNode
@@ -1023,6 +1026,6 @@ Object subclass: #DoIt
 
 !DoIt methodsFor: ''!
 
-doIt ^[[Object new] compiledSource] value
+doIt ^[Compiler new recompile: Browser] value
 ! !
 

Some files were not shown because too many files changed in this diff