Prechádzať zdrojové kódy

Utilize fixed FOR..IN

Vladislav Folts 9 rokov pred
rodič
commit
a1ad9037f0

BIN
bin/compiled.zip


+ 1 - 1
src/eberon/EberonContextLoop.ob

@@ -165,7 +165,7 @@ BEGIN
         IF isMap THEN
             code.write("for(var " + keyId + " in " + mapVar + ")");
         ELSE
-            code.write("for(var " + keyId + " = 0; " + keyId + " < " + mapVar + ".length; ++" + keyId);
+            code.write("for(var " + keyId + " = 0; " + keyId + " < " + mapVar + ".length; ++" + keyId + ")");
         END;
 
         code.openScope();

+ 1 - 5
src/ob/Procedure.ob

@@ -131,13 +131,9 @@ PROCEDURE checkArgumentsType(
     types: LanguageContext.PTypes
     );
 BEGIN
-    FOR i <- 0 TO LEN(actual) - 1 DO
-        checkArgument(actual[i], expected[i], i, code, types);
-    END;
-    (*
     FOR i, a IN actual DO
         checkArgument(a, expected[i], i, code, types);
-    END;*)
+    END;
 END;
 
 PROCEDURE checkArgumentsCount*(actual, expected: INTEGER);

+ 2 - 2
test/expected/eberon/for_in.js

@@ -4,7 +4,7 @@ var test = function (){
 function array(){
 	var a = RTL$.makeArray(3, false);
 	var $seq1 = a;
-	for(var i = 0; i < $seq1.length; ++i{
+	for(var i = 0; i < $seq1.length; ++i){
 		var v = $seq1[i];
 		RTL$.assert(a[i] == v);
 	}
@@ -13,7 +13,7 @@ function array(){
 function arrayWithValueOnly(){
 	var a = RTL$.makeArray(3, false);
 	var $seq1 = a;
-	for(var $key2 = 0; $key2 < $seq1.length; ++$key2{
+	for(var $key2 = 0; $key2 < $seq1.length; ++$key2){
 		var v = $seq1[$key2];
 		RTL$.assert(!v);
 	}