Title: [224477] branches/safari-604.4.7.1-branch/Source/_javascript_Core

Diff

Modified: branches/safari-604.4.7.1-branch/Source/_javascript_Core/ChangeLog (224476 => 224477)


--- branches/safari-604.4.7.1-branch/Source/_javascript_Core/ChangeLog	2017-11-06 03:59:43 UTC (rev 224476)
+++ branches/safari-604.4.7.1-branch/Source/_javascript_Core/ChangeLog	2017-11-06 04:10:13 UTC (rev 224477)
@@ -1,5 +1,9 @@
 2017-11-05  Jason Marcell  <[email protected]>
 
+        Revert r224473. rdar://problem/35296413
+
+2017-11-05  Jason Marcell  <[email protected]>
+
         Cherry-pick r224416. rdar://problem/35296413
 
     2017-11-03  Keith Miller  <[email protected]>

Modified: branches/safari-604.4.7.1-branch/Source/_javascript_Core/runtime/JSObject.cpp (224476 => 224477)


--- branches/safari-604.4.7.1-branch/Source/_javascript_Core/runtime/JSObject.cpp	2017-11-06 03:59:43 UTC (rev 224476)
+++ branches/safari-604.4.7.1-branch/Source/_javascript_Core/runtime/JSObject.cpp	2017-11-06 04:10:13 UTC (rev 224477)
@@ -771,23 +771,17 @@
 
             JSValue gs = obj->getDirect(offset);
             if (gs.isGetterSetter()) {
-                // We need to make sure that we decide to cache this property before we potentially execute aribitrary JS.
+                bool result = callSetter(exec, slot.thisValue(), gs, value, slot.isStrictMode() ? StrictMode : NotStrictMode);
                 if (!structure()->isDictionary())
                     slot.setCacheableSetter(obj, offset);
-
-                bool result = callSetter(exec, slot.thisValue(), gs, value, slot.isStrictMode() ? StrictMode : NotStrictMode);
-                RETURN_IF_EXCEPTION(scope, false);
                 return result;
             }
             if (gs.isCustomGetterSetter()) {
-                // We need to make sure that we decide to cache this property before we potentially execute aribitrary JS.
+                bool result = callCustomSetter(exec, gs, attributes & CustomAccessor, obj, slot.thisValue(), value);
                 if (attributes & CustomAccessor)
                     slot.setCustomAccessor(obj, jsCast<CustomGetterSetter*>(gs.asCell())->setter());
                 else
                     slot.setCustomValue(obj, jsCast<CustomGetterSetter*>(gs.asCell())->setter());
-
-                bool result = callCustomSetter(exec, gs, attributes & PropertyAttribute::CustomAccessor, obj, slot.thisValue(), value);
-                RETURN_IF_EXCEPTION(scope, false);
                 return result;
             }
             ASSERT(!(attributes & Accessor));

Modified: branches/safari-604.4.7.1-branch/Source/_javascript_Core/runtime/Lookup.h (224476 => 224477)


--- branches/safari-604.4.7.1-branch/Source/_javascript_Core/runtime/Lookup.h	2017-11-06 03:59:43 UTC (rev 224476)
+++ branches/safari-604.4.7.1-branch/Source/_javascript_Core/runtime/Lookup.h	2017-11-06 04:10:13 UTC (rev 224477)
@@ -284,14 +284,11 @@
         ASSERT_WITH_MESSAGE(!(entry->attributes() & DOMJITAttribute), "DOMJITAttribute supports readonly attributes currently.");
         bool isAccessor = entry->attributes() & CustomAccessor;
         JSValue updateThisValue = entry->attributes() & CustomAccessor ? slot.thisValue() : JSValue(base);
-        // We need to make sure that we decide to cache this property before we potentially execute aribitrary JS.
+        bool result = callCustomSetter(exec, entry->propertyPutter(), isAccessor, updateThisValue, value);
         if (isAccessor)
             slot.setCustomAccessor(base, entry->propertyPutter());
         else
             slot.setCustomValue(base, entry->propertyPutter());
-
-        bool result = callCustomSetter(exec, entry->propertyPutter(), isAccessor, updateThisValue, value);
-        RETURN_IF_EXCEPTION(scope, false);
         return result;
     }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to