[backport:1.4] JS cstring null fixes (#16979)

* [backport:1.4] JS cstring null fixes
* fix JS move string
* make it look cleaner
This commit is contained in:
hlaaftana 2021-02-11 19:04:32 +03:00 • committed by GitHub
commit 81533a0014
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 69 additions and 8 deletions

View file

@ -71,12 +71,35 @@ block: # `$`(SomeInteger)
testType int64
testType BiggestInt
block: # #14350 for JS
block: # #14350, #16674, #16686 for JS
var cstr: cstring
doAssert cstr == cstring(nil)
doAssert cstr == nil
doAssert cstr.isNil
doAssert cstr != cstring("")
doAssert cstr.len == 0
when defined(js):
cstr.add(cstring("abc"))
doAssert cstr == cstring("abc")
var nil1, nil2: cstring = nil
nil1.add(nil2)
doAssert nil1 == cstring(nil)
doAssert nil2 == cstring(nil)
nil1.add(cstring(""))
doAssert nil1 == cstring("")
doAssert nil2 == cstring(nil)
nil1.add(nil2)
doAssert nil1 == cstring("")
doAssert nil2 == cstring(nil)
nil2.add(nil1)
doAssert nil1 == cstring("")
doAssert nil2 == cstring("")
proc main()=