Просмотр исходного кода

Added two samples to show some bug/strange behavior in the implementation of the language.

mingodad 13 лет назад
Родитель
Сommit
3f22b2fd76
2 измененных файлов с 27 добавлено и 0 удалено
  1. 12 0
      samples/test-bug-default-parameter-recursion.nut
  2. 15 0
      samples/test-bug-recursion.nut

+ 12 - 0
samples/test-bug-default-parameter-recursion.nut

@@ -0,0 +1,12 @@
+//bug in passing array as default parameter ??????
+local call_count = 0;
+
+function showDefaultParameterRecursiveBug(str, ardflt=[]){
+	ardflt.push(str);
+	if(str == "recurse") showDefaultParameterRecursiveBug("again with recurse, default parameter should be an empty array but it's not");
+	print(++call_count, str);
+	foreach(v in ardflt) print("ardflt", call_count, v);
+}
+
+showDefaultParameterRecursiveBug("dad");
+showDefaultParameterRecursiveBug("recurse");

+ 15 - 0
samples/test-bug-recursion.nut

@@ -0,0 +1,15 @@
+function bugRecursion(str){
+	print(str);
+	if(str == "recurse")  bugRecursion("recurring with recurse");
+}
+
+local function bugRecursionLocal(str){
+	print(str);
+	if(str == "recurse")  bugRecursionLocal("recurring with recurse");
+}
+
+bugRecursion("dad");
+bugRecursion("recurse");
+
+bugRecursionLocal("dad");
+bugRecursionLocal("recurse");