change expression validation order
diff --git a/player/js/utils/expressions/ExpressionManager.js b/player/js/utils/expressions/ExpressionManager.js
index 20acb03..121763e 100644
--- a/player/js/utils/expressions/ExpressionManager.js
+++ b/player/js/utils/expressions/ExpressionManager.js
@@ -34,12 +34,12 @@
   }
 
   function isNumerable(tOfV, v) {
-    return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;
+    return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';
   }
 
   function $bm_neg(a) {
     var tOfA = typeof a;
-    if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {
+    if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {
       return -a;
     }
     if ($bm_isInstanceOfArray(a)) {
@@ -64,10 +64,7 @@
   function sum(a, b) {
     var tOfA = typeof a;
     var tOfB = typeof b;
-    if (tOfA === 'string' || tOfB === 'string') {
-      return a + b;
-    }
-    if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {
+    if ((isNumerable(tOfA, a) && isNumerable(tOfB, b)) || tOfA === 'string' || tOfB === 'string') {
       return a + b;
     }
     if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {