浏览代码

Fix if to else if regression.

Jeff Hutchinson 4 年之前
父节点
当前提交
278bef8d1a
共有 2 个文件被更改,包括 24 次插入1 次删除
  1. 1 1
      Engine/source/console/compiledEval.cpp
  2. 23 0
      Engine/source/console/test/ScriptTest.cpp

+ 1 - 1
Engine/source/console/compiledEval.cpp

@@ -226,7 +226,7 @@ static void setFieldComponent(SimObject* object, StringTableEntry field, const c
 
    if (object && field)
       prevVal = object->getDataField(field, array);
-   if (currentLocalRegister != -1)
+   else if (currentLocalRegister != -1)
       prevVal = gEvalState.getLocalStringVariable(currentLocalRegister);
    // Set the value on a variable.
    else if (gEvalState.currentVariable)

+ 23 - 0
Engine/source/console/test/ScriptTest.cpp

@@ -927,6 +927,29 @@ TEST(Script, MiscRegressions)
    )");
 
    ASSERT_EQ(regression2.getInt(), 400);
+
+   ConsoleValue regression3 = RunScript(R"(
+      function doTest()
+      {
+          %button = new GuiIconButtonCtrl()
+          {
+              active = true;
+          };
+
+          %button.setExtent(120, 20);
+
+          %button.setExtent("120 20");
+
+          %button.extent = "120 20";
+
+          %button.extent.x = 120;
+          %button.extent.y = 20;
+          return %button.extent;
+      }
+      return doTest();
+   )");
+
+   ASSERT_STREQ(regression3.getString(), "120 20");
 }
 
 #endif