summaryrefslogtreecommitdiffhomepage
path: root/tests/custom/02_runtime/05_closure_scope
diff options
context:
space:
mode:
authorPetr Štetiar <ynezz@true.cz>2021-03-19 16:54:55 +0100
committerJo-Philipp Wich <jo@mein.io>2021-04-23 00:42:30 +0200
commit2b59097c3f61fa901e91ac4cea48940760439578 (patch)
tree958d739a78f959dfcd55b3d76e6e970ca53fa1c6 /tests/custom/02_runtime/05_closure_scope
parent80393611fb6634abcc0da1dee2da7c4418dbde8d (diff)
tests: create custom tests from current tests cases
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Diffstat (limited to 'tests/custom/02_runtime/05_closure_scope')
-rw-r--r--tests/custom/02_runtime/05_closure_scope35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/custom/02_runtime/05_closure_scope b/tests/custom/02_runtime/05_closure_scope
new file mode 100644
index 0000000..c59a433
--- /dev/null
+++ b/tests/custom/02_runtime/05_closure_scope
@@ -0,0 +1,35 @@
+Testing closure scopes.
+
+
+1. Ensure that the declaring scope is retained in functions.
+
+-- Expect stdout --
+Make function with x=1
+Make function with x=2
+Make function with x=3
+x is 1
+x is 2
+x is 3
+-- End --
+
+-- Testcase --
+{%
+ let count=0;
+
+ function a() {
+ let x = ++count;
+ print("Make function with x=", x, "\n");
+ return function() {
+ print("x is ", x, "\n");
+ };
+ }
+
+ let fn1 = a();
+ let fn2 = a();
+ let fn3 = a();
+
+ fn1();
+ fn2();
+ fn3();
+%}
+-- End --