From 943b7d4b38af142b9486023a57103c57ad7d2103 Mon Sep 17 00:00:00 2001 From: tore-statsig <74584483+tore-statsig@users.noreply.github.com> Date: Thu, 25 Sep 2025 13:02:05 -0700 Subject: [PATCH 1/2] fix: eval perf on time based conditions --- src/main/kotlin/com/statsig/sdk/Evaluator.kt | 23 ++++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/com/statsig/sdk/Evaluator.kt b/src/main/kotlin/com/statsig/sdk/Evaluator.kt index ea25ed7..247684f 100644 --- a/src/main/kotlin/com/statsig/sdk/Evaluator.kt +++ b/src/main/kotlin/com/statsig/sdk/Evaluator.kt @@ -1057,19 +1057,18 @@ internal class Evaluator( } private fun getEpoch(input: Any?): Long? { - var epoch = - when (input) { - is String -> parseLong(input) - is Number -> input.toLong() - else -> return null - } - - if (epoch.toString().length < 11) { - // epoch in seconds (milliseconds would be before 1970) - epoch *= 1000 + val epoch = when (input) { + is String -> input.toLong() + is Number -> input.toLong() + else -> return null + } + + return if (epoch < 100_000_000_000L) { + // epoch in seconds (milliseconds would be before 1970) + epoch * 1000 + } else { + epoch } - - return epoch } private fun parseISOTimestamp(input: Any?): Date? { From cf290444f0284a850cd85ff6888ae58720cd7610 Mon Sep 17 00:00:00 2001 From: Weihao Ding <158090588+weihao-statsig@users.noreply.github.com> Date: Thu, 25 Sep 2025 13:37:53 -0700 Subject: [PATCH 2/2] Update Evaluator.kt --- src/main/kotlin/com/statsig/sdk/Evaluator.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/com/statsig/sdk/Evaluator.kt b/src/main/kotlin/com/statsig/sdk/Evaluator.kt index 247684f..b2ad546 100644 --- a/src/main/kotlin/com/statsig/sdk/Evaluator.kt +++ b/src/main/kotlin/com/statsig/sdk/Evaluator.kt @@ -1063,7 +1063,7 @@ internal class Evaluator( else -> return null } - return if (epoch < 100_000_000_000L) { + return if (epoch < 10_000_000_000L) { // epoch in seconds (milliseconds would be before 1970) epoch * 1000 } else {