(once) and (oncePerInstance)

This commit is contained in:
2021-04-27 20:05:57 -06:00
parent fa72a9776d
commit 42d50600d1
5 changed files with 45 additions and 10 deletions

View File

@@ -0,0 +1,17 @@
package test.cases;
import utest.Test;
import utest.Assert;
import kiss.Prelude;
class OnceTestCase extends Test {
function testOnce() {
new OnceTestObject();
new OnceTestObject();
Assert.equals(1, OnceTestObject.staticCount);
Assert.equals(2, OnceTestObject.instanceCount);
}
}
@:build(kiss.Kiss.build("OnceTestObject.kiss"))
class OnceTestObject {}

View File

@@ -0,0 +1,8 @@
(defvar &mut staticCount 0)
(defvar &mut instanceCount 0)
(defmethod new []
(once
(+= staticCount 1))
(oncePerInstance
(+= instanceCount 1)))