Add copyWithin for JavaScript (#17937)
* Add jscore.copyWithin for seq and array * Shallow copy mention docs
This commit is contained in:
parent
94c4c01d9c
commit
5762b1d75c
2 changed files with 15 additions and 0 deletions
|
|
@ -295,6 +295,8 @@
|
||||||
- Added `genasts.genAst` that avoids the problems inherent with `quote do` and can
|
- Added `genasts.genAst` that avoids the problems inherent with `quote do` and can
|
||||||
be used as a replacement.
|
be used as a replacement.
|
||||||
|
|
||||||
|
- Added `copyWithin` [for `seq` and `array` for JavaScript targets](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin).
|
||||||
|
|
||||||
|
|
||||||
## Language changes
|
## Language changes
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -110,3 +110,16 @@ proc parse*(l: JsonLib, s: cstring): JsRoot {.importcpp.}
|
||||||
since (1, 5):
|
since (1, 5):
|
||||||
func debugger*() {.importjs: "debugger@".}
|
func debugger*() {.importjs: "debugger@".}
|
||||||
## https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/debugger
|
## https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/debugger
|
||||||
|
|
||||||
|
func copyWithin*[T](self: openArray[T]; target: int): seq[T] {.importjs: "#.copyWithin(#)".}
|
||||||
|
func copyWithin*[T](self: openArray[T]; target, start: int): seq[T] {.importjs: "#.copyWithin(#, #)".}
|
||||||
|
func copyWithin*[T](self: openArray[T]; target, start, ends: int): seq[T] {.importjs: "#.copyWithin(#, #, #)".} =
|
||||||
|
## https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin
|
||||||
|
## `copyWithin` uses shallow copy.
|
||||||
|
runnableExamples:
|
||||||
|
assert ['a', 'b', 'c', 'd', 'e'].copyWithin(0, 3, 4) == @['d', 'b', 'c', 'd', 'e']
|
||||||
|
assert ['a', 'b', 'c', 'd', 'e'].copyWithin(1, 3) == @['a', 'd', 'e', 'd', 'e']
|
||||||
|
assert [1, 2, 3, 4, 5].copyWithin(-2) == @[1, 2, 3, 1, 2]
|
||||||
|
assert [1, 2, 3, 4, 5].copyWithin(0, 3) == @[4, 5, 3, 4, 5]
|
||||||
|
assert [1, 2, 3, 4, 5].copyWithin(0, 3, 4) == @[4, 2, 3, 4, 5]
|
||||||
|
assert [1, 2, 3, 4, 5].copyWithin(-2, -3, -1) == @[1, 2, 3, 3, 4]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue