summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/manual-tests/inspector/named-evals.html
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/manual-tests/inspector/named-evals.html')
-rw-r--r--Source/WebCore/manual-tests/inspector/named-evals.html72
1 files changed, 72 insertions, 0 deletions
diff --git a/Source/WebCore/manual-tests/inspector/named-evals.html b/Source/WebCore/manual-tests/inspector/named-evals.html
new file mode 100644
index 0000000..0c52531
--- /dev/null
+++ b/Source/WebCore/manual-tests/inspector/named-evals.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+<script>
+
+function log(message) {
+ console.log(message)
+}
+
+var funcBody = "(){\n" +
+" var thisFunc = arguments.callee;\n" +
+" if (!thisFunc.name) thisFunc.displayName = 'f%';\n" +
+" log(thisFunc.name || thisFunc.displayName);\n" +
+"}";
+
+var funcs = [];
+var patterns = [
+ // proper use of @sourceURL comment
+ "//@sourceURL=f%.js\nfuncs.push(function" + funcBody + ")",
+ "//@sourceURL=f%.js\nfuncs.push(function f%" + funcBody + ")",
+ " //@sourceURL=f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "// @sourceURL=f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "//@ sourceURL=f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "//@sourceURL =f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "//@sourceURL= f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "//@sourceURL=f%.js \nfuncs.push(function f%" + funcBody + ")",
+ " // @ sourceURL = f%.js \nfuncs.push(function f%" + funcBody + ")",
+ "//@sourceURL=f%.js\nfuncs.push(function f%" + funcBody + ");\n//@sourceURL=should-not-see\n",
+ "funcs.push(function f%" + funcBody + ")\n//@sourceURL=f%.js\n",
+ "funcs.push(function f%" + funcBody + ")\n//@sourceURL=f%.js \n",
+ "funcs.push(function f%" + funcBody + ")\n//@sourceURL=f%.js",
+
+ // improper or non-existant use of @sourceURL comment
+ "funcs.push(function f%" + funcBody + ")",
+ "//@sourceurl=f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "//sourceURL=f%.js\nfuncs.push(function f%" + funcBody + ")",
+ "/*@sourceURL=f%.js*/\nfuncs.push(function f%" + funcBody + ")",
+ "//\nsourceURL='f%.js';\nfuncs.push(function f%" + funcBody + ")",
+ "//@sourceURL=\nfuncs.push(function" + funcBody + ")",
+];
+
+
+for (var i=0; i<patterns.length; i++) {
+ eval(patterns[i].replace(/%/g, i));
+}
+
+</script>
+</head>
+
+<body>
+<p>This page's JavaScript calls functions from named eval()'s.
+
+<p>Used to test <a href="https://bugs.webkit.org/show_bug.cgi?id=25475">https://bugs.webkit.org/show_bug.cgi?id=25475</a>
+
+<p>Load the Web Inspector and look at
+the script's panel, and the script list drop-down control.
+You should see entries for scripts named
+<tt>"(program):f0.js"</tt> through <tt>"(program):f12.js"</tt>. The entries were named
+via proper use of the <tt>//@sourceURL</tt> comment. There will also be entries
+named <tt>"(program)"</tt> for source that does not properly use, or use at all,
+the <tt>//@sourceURL</tt> comment.
+
+<p>Now, set a breakpoint in the body of the <tt>"f0"</tt> function in the
+<tt>"(program):f0.js"</tt> script. Then click this button:
+
+<p><input type="button" value="run" onclick="funcs[0]()">
+
+<p>When stopped at the breakpoint, the entry for the function in the
+call stack control should the name of the script, <tt>"(program):f0.js"</tt>,
+beside the function name <tt>"f0"</tt>. Note the function name for
+<tt>f0</tt> is set with the new <tt>"displayName"</tt> property.
+</body>
+</html>