Optimize the call to browserPrefix() in MotionMark
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Sep 2017 16:20:59 +0000 (16:20 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Sep 2017 16:20:59 +0000 (16:20 +0000)
https://bugs.webkit.org/show_bug.cgi?id=176489

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-09-07
Reviewed by Jon Lee.

This function is expensive and it does not change for the browser. No need
to recalculate it every time it is called; just cache the returned value.

* MotionMark/resources/extensions.js:
(Utilities.browserPrefix):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221735 268f45cc-cd09-0410-ab3c-d52691b4dbfc

PerformanceTests/ChangeLog
PerformanceTests/MotionMark/resources/extensions.js

index 7328132..106a3dc 100644 (file)
@@ -1,3 +1,16 @@
+2017-09-07  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        Optimize the call to browserPrefix() in MotionMark
+        https://bugs.webkit.org/show_bug.cgi?id=176489
+
+        Reviewed by Jon Lee.
+
+        This function is expensive and it does not change for the browser. No need
+        to recalculate it every time it is called; just cache the returned value.
+
+        * MotionMark/resources/extensions.js:
+        (Utilities.browserPrefix):
+
 2017-08-19  Filip Pizlo  <fpizlo@apple.com>
 
         We should have more tests of tail calls
index 69fe374..e6b7917 100644 (file)
@@ -86,6 +86,9 @@ Utilities =
 
     browserPrefix: function()
     {
+        if (this._browserPrefix !== undefined)
+            return this._browserPrefix;
+
         // Get the HTML element's CSSStyleDeclaration
         var styles = window.getComputedStyle(document.documentElement, '');
 
@@ -105,12 +108,14 @@ Utilities =
         var dom = ('WebKit|O|Moz|MS').match(new RegExp(prefix, 'i'))[0];
 
         // Return all the required prefixes.
-        return {
+        this._browserPrefix = {
             dom: dom,
             lowercase: prefix,
             css: '-' + prefix + '-',
             js: prefix[0].toUpperCase() + prefix.substr(1)
         };
+
+        return this._browserPrefix;
     },
 
     setElementPrefixedProperty: function(element, property, value)