Title: [265431] trunk/Source/_javascript_Core
Revision
265431
Author
[email protected]
Date
2020-08-10 09:31:38 -0700 (Mon, 10 Aug 2020)

Log Message

REGRESSION(r261159) PokerBros only shows black screen
https://bugs.webkit.org/show_bug.cgi?id=215293
<rdar://problem/66073740>

Reviewed by Keith Miller.

The PokerBros app has some logic that was broken by the change in behavior of r261159.
It caused the app do do nothing except show a black screen upon opening.
Revert to the old behavior for this app until they update to iOS14.

* runtime/JSObject.cpp:
(JSC::needsOldStringName):
(JSC::JSObject::toStringName):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (265430 => 265431)


--- trunk/Source/_javascript_Core/ChangeLog	2020-08-10 16:29:17 UTC (rev 265430)
+++ trunk/Source/_javascript_Core/ChangeLog	2020-08-10 16:31:38 UTC (rev 265431)
@@ -1,3 +1,19 @@
+2020-08-10  Alex Christensen  <[email protected]>
+
+        REGRESSION(r261159) PokerBros only shows black screen
+        https://bugs.webkit.org/show_bug.cgi?id=215293
+        <rdar://problem/66073740>
+
+        Reviewed by Keith Miller.
+
+        The PokerBros app has some logic that was broken by the change in behavior of r261159.
+        It caused the app do do nothing except show a black screen upon opening.
+        Revert to the old behavior for this app until they update to iOS14.
+
+        * runtime/JSObject.cpp:
+        (JSC::needsOldStringName):
+        (JSC::JSObject::toStringName):
+
 2020-08-10  Yusuke Suzuki  <[email protected]>
 
         [JSC] JSFinalObject::finishCreation's ASSERT has stale condition

Modified: trunk/Source/_javascript_Core/runtime/JSObject.cpp (265430 => 265431)


--- trunk/Source/_javascript_Core/runtime/JSObject.cpp	2020-08-10 16:29:17 UTC (rev 265430)
+++ trunk/Source/_javascript_Core/runtime/JSObject.cpp	2020-08-10 16:31:38 UTC (rev 265431)
@@ -44,6 +44,10 @@
 #include "VMInlines.h"
 #include <wtf/Assertions.h>
 
+#if PLATFORM(IOS)
+#include <wtf/spi/darwin/dyldSPI.h>
+#endif
+
 namespace JSC {
 
 // We keep track of the size of the last array after it was grown. We use this
@@ -509,9 +513,27 @@
     return info->className;
 }
 
+#if PLATFORM(IOS)
+inline static bool isPokerBros()
+{
+    auto bundleID = CFBundleGetIdentifier(CFBundleGetMainBundle());
+    return bundleID
+        && CFEqual(bundleID, CFSTR("com.kpgame.PokerBros"))
+        && dyld_get_program_sdk_version() < DYLD_IOS_VERSION_14_0;
+}
+#endif
+
 String JSObject::toStringName(const JSObject* object, JSGlobalObject* globalObject)
 {
     VM& vm = globalObject->vm();
+#if PLATFORM(IOS)
+    static bool needsOldStringName = isPokerBros();
+    if (UNLIKELY(needsOldStringName)) {
+        const ClassInfo* info = object->classInfo(vm);
+        ASSERT(info);
+        return info->className;
+    }
+#endif
     auto scope = DECLARE_THROW_SCOPE(vm);
     bool objectIsArray = isArray(globalObject, object);
     RETURN_IF_EXCEPTION(scope, String());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to