diff options
-rw-r--r-- | tests/unit/widget/core.js | 12 | ||||
-rw-r--r-- | ui/widget.js | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/tests/unit/widget/core.js b/tests/unit/widget/core.js index e36459f72..1054bf092 100644 --- a/tests/unit/widget/core.js +++ b/tests/unit/widget/core.js @@ -92,6 +92,18 @@ QUnit.test( "element normalization", function( assert ) { $.ui.testWidget(); } ); +QUnit.test( "contextless construction", function( assert ) { + assert.expect( 1 ); + var testWidget, + elem = $( "<div>" ); + + $.widget( "ui.testWidget", {} ); + testWidget = $.ui.testWidget; + + testWidget( {}, elem ); + assert.ok( true, "No crash" ); +} ); + QUnit.test( "custom selector expression", function( assert ) { assert.expect( 1 ); var elem = $( "<div>" ).appendTo( "#qunit-fixture" ); diff --git a/ui/widget.js b/ui/widget.js index 3b149f11a..04daaa883 100644 --- a/ui/widget.js +++ b/ui/widget.js @@ -77,7 +77,7 @@ $.widget = function( name, base, prototype ) { constructor = $[ namespace ][ name ] = function( options, element ) { // Allow instantiation without "new" keyword - if ( !this._createWidget ) { + if ( !this || !this._createWidget ) { return new constructor( options, element ); } |