From 20c482598ad456dc41e9d8b9e365c29e3785ef35 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Sat, 24 Dec 2016 23:26:01 +0300 Subject: [PATCH] KJS: reimplement Json.add in Kotlin --- js/js.libraries/src/core/json.kt | 11 +++++++++-- js/js.libraries/src/js/kotlin_lib.js | 9 --------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/js/js.libraries/src/core/json.kt b/js/js.libraries/src/core/json.kt index 2d424b58a2d..0cec46403cc 100644 --- a/js/js.libraries/src/core/json.kt +++ b/js/js.libraries/src/core/json.kt @@ -13,8 +13,15 @@ public fun json(vararg pairs: Pair): Json { return res } -@library("jsonAddProperties") -public fun Json.add(other: Json): Json = noImpl +public fun Json.add(other: Json): Json { + val keys: Array = js("Object").keys(other) + for (key in keys) { + if (other.asDynamic().hasOwnProperty(key)) { + this[key] = other[key]; + } + } + return this +} public external interface JsonClass { public fun stringify(o: Any): String diff --git a/js/js.libraries/src/js/kotlin_lib.js b/js/js.libraries/src/js/kotlin_lib.js index 966675f0ce5..5d161affa9b 100644 --- a/js/js.libraries/src/js/kotlin_lib.js +++ b/js/js.libraries/src/js/kotlin_lib.js @@ -340,14 +340,5 @@ Kotlin.arrayFromFun = function (size, initFun) { return result; }; -Kotlin.jsonAddProperties = function (obj1, obj2) { - for (var p in obj2) { - if (obj2.hasOwnProperty(p)) { - obj1[p] = obj2[p]; - } - } - return obj1; -}; - Kotlin.identityHashCode = getObjectHashCode;