Title: [200518] trunk/LayoutTests
Revision
200518
Author
fpi...@apple.com
Date
2016-05-06 13:37:16 -0700 (Fri, 06 May 2016)

Log Message

JS Function removed after parsing
https://bugs.webkit.org/show_bug.cgi?id=149175

Reviewed by Mark Lam.
        
This bug doesn't happen anymore, but the test case is still useful. This test will fail 1/5 of
the time if we regress.

* js/dom/function-removed-after-parsing-expected.txt: Added.
* js/dom/function-removed-after-parsing.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (200517 => 200518)


--- trunk/LayoutTests/ChangeLog	2016-05-06 19:54:32 UTC (rev 200517)
+++ trunk/LayoutTests/ChangeLog	2016-05-06 20:37:16 UTC (rev 200518)
@@ -1,3 +1,16 @@
+2016-05-06  Filip Pizlo  <fpi...@apple.com>
+
+        JS Function removed after parsing
+        https://bugs.webkit.org/show_bug.cgi?id=149175
+
+        Reviewed by Mark Lam.
+        
+        This bug doesn't happen anymore, but the test case is still useful. This test will fail 1/5 of
+        the time if we regress.
+
+        * js/dom/function-removed-after-parsing-expected.txt: Added.
+        * js/dom/function-removed-after-parsing.html: Added.
+
 2016-05-06  Jer Noble  <jer.no...@apple.com>
 
         Muted media elements should be allowed to autoplay, even if RequireUserGestureForAudioRateChange is set.

Added: trunk/LayoutTests/js/dom/function-removed-after-parsing-expected.txt (0 => 200518)


--- trunk/LayoutTests/js/dom/function-removed-after-parsing-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/js/dom/function-removed-after-parsing-expected.txt	2016-05-06 20:37:16 UTC (rev 200518)
@@ -0,0 +1,2 @@
+window.CSS.escape still here
+

Added: trunk/LayoutTests/js/dom/function-removed-after-parsing.html (0 => 200518)


--- trunk/LayoutTests/js/dom/function-removed-after-parsing.html	                        (rev 0)
+++ trunk/LayoutTests/js/dom/function-removed-after-parsing.html	2016-05-06 20:37:16 UTC (rev 200518)
@@ -0,0 +1,123 @@
+<html>
+<!--
+NOTE: This intentionally does not use description() and does not include js-test-post because
+doing either of those things made the bug go away.
+-->
+  <script src=""
+  <script type='text/_javascript_'>
+/*! https://mths.be/cssescape v1.1.0 by @mathias | MIT license */
+;(function(root) {
+
+	if (!root.CSS) {
+		root.CSS = {};
+	}
+
+	var CSS = root.CSS;
+
+	var InvalidCharacterError = function(message) {
+		this.message = message;
+	};
+	InvalidCharacterError.prototype = new Error;
+	InvalidCharacterError.prototype.name = 'InvalidCharacterError';
+
+	if (!CSS.escape) {
+		// https://drafts.csswg.org/cssom/#serialize-an-identifier
+		CSS.escape = function(value) {
+			var string = String(value);
+			var length = string.length;
+			var index = -1;
+			var codeUnit;
+			var result = '';
+			var firstCodeUnit = string.charCodeAt(0);
+			while (++index < length) {
+				codeUnit = string.charCodeAt(index);
+				// Note: there\x92s no need to special-case astral symbols, surrogate
+				// pairs, or lone surrogates.
+
+				// If the character is NULL (U+0000), then throw an
+				// `InvalidCharacterError` exception and terminate these steps.
+				if (codeUnit == 0x0000) {
+					throw new InvalidCharacterError(
+						'Invalid character: the input contains U+0000.'
+					);
+				}
+
+				if (
+					// If the character is in the range [\1-\1F] (U+0001 to U+001F) or is
+					// U+007F, [\x85]
+					(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||
+					// If the character is the first character and is in the range [0-9]
+					// (U+0030 to U+0039), [\x85]
+					(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
+					// If the character is the second character and is in the range [0-9]
+					// (U+0030 to U+0039) and the first character is a `-` (U+002D), [\x85]
+					(
+						index == 1 &&
+						codeUnit >= 0x0030 && codeUnit <= 0x0039 &&
+						firstCodeUnit == 0x002D
+					)
+				) {
+					// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point
+					result += '\\' + codeUnit.toString(16) + ' ';
+					continue;
+				}
+
+				if (
+					// If the character is the first character and is a `-` (U+002D), and
+					// there is no second character, [\x85]
+					index == 0 &&
+					length == 1 &&
+					codeUnit == 0x002D
+				) {
+					result += '\\' + string.charAt(index);
+					continue;
+				}
+
+				// If the character is not handled by one of the above rules and is
+				// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or
+				// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to
+				// U+005A), or [a-z] (U+0061 to U+007A), [\x85]
+				if (
+					codeUnit >= 0x0080 ||
+					codeUnit == 0x002D ||
+					codeUnit == 0x005F ||
+					codeUnit >= 0x0030 && codeUnit <= 0x0039 ||
+					codeUnit >= 0x0041 && codeUnit <= 0x005A ||
+					codeUnit >= 0x0061 && codeUnit <= 0x007A
+				) {
+					// the character itself
+					result += string.charAt(index);
+					continue;
+				}
+
+				// Otherwise, the escaped character.
+				// https://drafts.csswg.org/cssom/#escape-a-character
+				result += '\\' + string.charAt(index);
+
+			}
+			return result;
+		};
+	}
+
+}(typeof global != 'undefined' ? global : this));
+
+  </script>
+  <script type='text/_javascript_'>
+    try {
+      testRunner.dumpAsText(window.enablePixelTesting);
+      testRunner.waitUntilDone();
+    } catch (e) { }
+    if (!window.CSS.escape) {
+      debug('window.CSS.escape not loaded');
+    }
+    setTimeout(function() {
+      if (window.CSS.escape)
+        debug("window.CSS.escape still here");
+      else
+        debug('window.CSS.escape missing in event');
+      try {
+        testRunner.notifyDone();
+      } catch (e) { }
+    },50);
+  </script>
+</html>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to