aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/init.js3
-rw-r--r--test/unit/core.js9
2 files changed, 9 insertions, 3 deletions
diff --git a/src/core/init.js b/src/core/init.js
index 340e378b8..c0f50d0c0 100644
--- a/src/core/init.js
+++ b/src/core/init.js
@@ -14,7 +14,8 @@ var rootjQuery,
// A simple way to check for HTML strings
// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
// Strict HTML recognition (#11290: must start with <)
- rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
+ // Shortcut simple #id case for speed
+ rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
init = jQuery.fn.init = function( selector, context ) {
var match, elem;
diff --git a/test/unit/core.js b/test/unit/core.js
index 2fefb3725..9d02f1a86 100644
--- a/test/unit/core.js
+++ b/test/unit/core.js
@@ -57,10 +57,15 @@ test("jQuery()", function() {
equal( jQuery(undefined).length, 0, "jQuery(undefined) === jQuery([])" );
equal( jQuery(null).length, 0, "jQuery(null) === jQuery([])" );
equal( jQuery("").length, 0, "jQuery('') === jQuery([])" );
- equal( jQuery("#").length, 0, "jQuery('#') === jQuery([])" );
-
equal( jQuery(obj).selector, "div", "jQuery(jQueryObj) == jQueryObj" );
+ // Invalid #id goes to Sizzle which will throw an error (gh-1682)
+ try {
+ jQuery( "#" );
+ } catch ( e ) {
+ ok( true, "Threw an error on #id with no id" );
+ }
+
// can actually yield more than one, when iframes are included, the window is an array as well
equal( jQuery(window).length, 1, "Correct number of elements generated for jQuery(window)" );