...
Created attachment 358509 [details] WIP - Patch
Created attachment 358518 [details] WIP - Patch
Created attachment 358520 [details] Benchmarks This Patch is perf neutral in x86_64
Created attachment 360053 [details] Patch
Created attachment 360103 [details] Patch
Created attachment 360105 [details] Benchmarks The patch is perf neutral.
Created attachment 362260 [details] Patch
Created attachment 364248 [details] Patch
Created attachment 369121 [details] Patch
Comment on attachment 369121 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=369121&action=review LGTM overall. Some bugs I believe that are similar to ValueMod patch > Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:862 > + if (childX && childY && childX.isNumber() && childY.isNumber()) { > + if (!node->isBinaryUseKind(BigIntUse)) > + didFoldClobberWorld(); > + setConstant(node, jsDoubleNumber(operationMathPow(childX.asNumber(), childY.asNumber()))); > + break; > + } same comment as I had in ValueMod patch. I believe you need to ensure that the types of X and Y are valid given BigInt. > Source/JavaScriptCore/dfg/DFGOperations.cpp:545 > + if (WTF::holds_alternative<JSBigInt*>(leftNumeric) || WTF::holds_alternative<JSBigInt*>(rightNumeric)) { > + if (WTF::holds_alternative<JSBigInt*>(leftNumeric) && WTF::holds_alternative<JSBigInt*>(rightNumeric)) > + RELEASE_AND_RETURN(scope, JSValue::encode(JSBigInt::exponentiate(exec, WTF::get<JSBigInt*>(leftNumeric), WTF::get<JSBigInt*>(rightNumeric)))); Not related to this patch, but maybe we can make this type of pattern easier to read since it's so common in all the operations. Maybe this can be a followup. But if we had something like: bool doBigIntMath(variant a, variant b, doMath lambda, throw lambda or throw message) It returns false if both are *not* BigInt. Returns true otherwise. Throws an exception if 1 of 2 are big int, otherwise, returns lambda
Created attachment 370657 [details] Patch
Created attachment 370705 [details] Patch
Comment on attachment 370705 [details] Patch r=me
Created attachment 371195 [details] Patch
(In reply to Saam Barati from comment #13) > Comment on attachment 370705 [details] > Patch > > r=me Thx for the review!
Comment on attachment 371195 [details] Patch Clearing flags on attachment: 371195 Committed r246041: <https://trac.webkit.org/changeset/246041>
All reviewed patches have been landed. Closing bug.
<rdar://problem/51361986>