diff options
| author | Li Jin <dragon-fly@qq.com> | 2026-01-30 18:16:45 +0800 |
|---|---|---|
| committer | Li Jin <dragon-fly@qq.com> | 2026-01-30 18:16:45 +0800 |
| commit | 8c3d786157ec7fef3072feac55c2d5450800568b (patch) | |
| tree | 6c44a85e02abe74e6c3ccc4d7393ba8784c49ce7 /spec/inputs/test/class_expression_spec.yue | |
| parent | 220a10d0df3341b2bbb0beaee4f90d6480e7ae38 (diff) | |
| download | yuescript-main.tar.gz yuescript-main.tar.bz2 yuescript-main.zip | |
Diffstat (limited to 'spec/inputs/test/class_expression_spec.yue')
| -rw-r--r-- | spec/inputs/test/class_expression_spec.yue | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/spec/inputs/test/class_expression_spec.yue b/spec/inputs/test/class_expression_spec.yue new file mode 100644 index 0000000..13c1d23 --- /dev/null +++ b/spec/inputs/test/class_expression_spec.yue | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | describe "class expression", -> | ||
| 2 | it "should support class expression assignment", -> | ||
| 3 | MyClass = class | ||
| 4 | value: 100 | ||
| 5 | |||
| 6 | assert.same MyClass.value, 100 | ||
| 7 | |||
| 8 | it "should support class expression in table", -> | ||
| 9 | classes = { | ||
| 10 | Alpha: class | ||
| 11 | new: => @value = 1 | ||
| 12 | Beta: class | ||
| 13 | new: => @value = 2 | ||
| 14 | } | ||
| 15 | |||
| 16 | a = classes.Alpha! | ||
| 17 | b = classes.Beta! | ||
| 18 | assert.same a.value, 1 | ||
| 19 | assert.same b.value, 2 | ||
| 20 | |||
| 21 | it "should work with return", -> | ||
| 22 | fn = -> | ||
| 23 | return class | ||
| 24 | value: 50 | ||
| 25 | |||
| 26 | Instance = fn! | ||
| 27 | assert.same Instance!.value, 50 | ||
