Register as a CommonJS async module if in that kind of environment. Fixes #7102.
This commit is contained in:
parent
01cba2ecaa
commit
6ffa730721
3 changed files with 35 additions and 23 deletions
|
@ -886,6 +886,11 @@ function doScrollCheck() {
|
|||
jQuery.ready();
|
||||
}
|
||||
|
||||
// Expose jQuery as an Asynchronous Module
|
||||
if ( typeof define !== "undefined" ) {
|
||||
define( "jquery", [], function () { return jQuery; } );
|
||||
}
|
||||
|
||||
// Expose jQuery to the global object
|
||||
return (window.jQuery = window.$ = jQuery);
|
||||
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
var jQuery = this.jQuery || "jQuery", // For testing .noConflict()
|
||||
$ = this.$ || "$",
|
||||
originaljQuery = jQuery,
|
||||
original$ = $;
|
||||
original$ = $,
|
||||
commonJSDefined;
|
||||
|
||||
function define(module, dependencies, callback) {
|
||||
commonJSDefined = callback();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array of elements with the given IDs, eg.
|
||||
|
|
|
@ -12,7 +12,9 @@ test("Basic requirements", function() {
|
|||
});
|
||||
|
||||
test("jQuery()", function() {
|
||||
expect(23);
|
||||
expect(24);
|
||||
|
||||
strictEqual( commonJSDefined, jQuery, "CommonJS registered (Bug #7102)" );
|
||||
|
||||
// Basic constructor's behavior
|
||||
|
||||
|
@ -151,7 +153,7 @@ test("selector state", function() {
|
|||
test = jQuery("#main").eq(0);
|
||||
equals( test.selector, "#main.slice(0,1)", "#main eq Selector" );
|
||||
equals( test.context, document, "#main eq Context" );
|
||||
|
||||
|
||||
var d = "<div />";
|
||||
equals(
|
||||
jQuery(d).appendTo(jQuery(d)).selector,
|
||||
|
@ -253,38 +255,38 @@ test("isPlainObject", function() {
|
|||
|
||||
// The use case that we want to match
|
||||
ok(jQuery.isPlainObject({}), "{}");
|
||||
|
||||
|
||||
// Not objects shouldn't be matched
|
||||
ok(!jQuery.isPlainObject(""), "string");
|
||||
ok(!jQuery.isPlainObject(0) && !jQuery.isPlainObject(1), "number");
|
||||
ok(!jQuery.isPlainObject(true) && !jQuery.isPlainObject(false), "boolean");
|
||||
ok(!jQuery.isPlainObject(null), "null");
|
||||
ok(!jQuery.isPlainObject(undefined), "undefined");
|
||||
|
||||
|
||||
// Arrays shouldn't be matched
|
||||
ok(!jQuery.isPlainObject([]), "array");
|
||||
|
||||
|
||||
// Instantiated objects shouldn't be matched
|
||||
ok(!jQuery.isPlainObject(new Date), "new Date");
|
||||
|
||||
|
||||
var fn = function(){};
|
||||
|
||||
|
||||
// Functions shouldn't be matched
|
||||
ok(!jQuery.isPlainObject(fn), "fn");
|
||||
|
||||
|
||||
// Again, instantiated objects shouldn't be matched
|
||||
ok(!jQuery.isPlainObject(new fn), "new fn (no methods)");
|
||||
|
||||
|
||||
// Makes the function a little more realistic
|
||||
// (and harder to detect, incidentally)
|
||||
fn.prototype = {someMethod: function(){}};
|
||||
|
||||
|
||||
// Again, instantiated objects shouldn't be matched
|
||||
ok(!jQuery.isPlainObject(new fn), "new fn");
|
||||
|
||||
// DOM Element
|
||||
ok(!jQuery.isPlainObject(document.createElement("div")), "DOM Element");
|
||||
|
||||
|
||||
// Window
|
||||
ok(!jQuery.isPlainObject(window), "window");
|
||||
|
||||
|
@ -298,7 +300,7 @@ test("isPlainObject", function() {
|
|||
document.body.removeChild( iframe );
|
||||
start();
|
||||
};
|
||||
|
||||
|
||||
var doc = iframe.contentDocument || iframe.contentWindow.document;
|
||||
doc.open();
|
||||
doc.write("<body onload='window.parent.iframeDone(Object);'>");
|
||||
|
@ -659,7 +661,7 @@ test("jQuery.merge()", function() {
|
|||
|
||||
// Fixed at [5998], #3641
|
||||
same( parse([-2,-1], [0,1,2]), [-2,-1,0,1,2], "Second array including a zero (falsy)");
|
||||
|
||||
|
||||
// After fixing #5527
|
||||
same( parse([], [null, undefined]), [null, undefined], "Second array including null and undefined values");
|
||||
same( parse({length:0}, [1,2]), {length:2, 0:1, 1:2}, "First array like");
|
||||
|
@ -694,7 +696,7 @@ test("jQuery.extend(Object, Object)", function() {
|
|||
equals( deep1.foo2, document, "Make sure that a deep clone was not attempted on the document" );
|
||||
|
||||
ok( jQuery.extend(true, {}, nestedarray).arr !== arr, "Deep extend of object must clone child array" );
|
||||
|
||||
|
||||
// #5991
|
||||
ok( jQuery.isArray( jQuery.extend(true, { arr: {} }, nestedarray).arr ), "Cloned array heve to be an Array" );
|
||||
ok( jQuery.isPlainObject( jQuery.extend(true, { arr: arr }, { arr: {} }).arr ), "Cloned object heve to be an plain object" );
|
||||
|
@ -715,13 +717,13 @@ test("jQuery.extend(Object, Object)", function() {
|
|||
empty = {};
|
||||
jQuery.extend(true, empty, optionsWithCustomObject);
|
||||
ok( empty.foo && empty.foo.date === customObject, "Custom objects copy correctly (no methods)" );
|
||||
|
||||
|
||||
// Makes the class a little more realistic
|
||||
myKlass.prototype = { someMethod: function(){} };
|
||||
empty = {};
|
||||
jQuery.extend(true, empty, optionsWithCustomObject);
|
||||
ok( empty.foo && empty.foo.date === customObject, "Custom objects copy correctly" );
|
||||
|
||||
|
||||
var ret = jQuery.extend(true, { foo: 4 }, { foo: new Number(5) } );
|
||||
ok( ret.foo == 5, "Wrapped numbers copy correctly" );
|
||||
|
||||
|
@ -849,10 +851,10 @@ test("jQuery.makeArray", function(){
|
|||
|
||||
test("jQuery.isEmptyObject", function(){
|
||||
expect(2);
|
||||
|
||||
|
||||
equals(true, jQuery.isEmptyObject({}), "isEmptyObject on empty object literal" );
|
||||
equals(false, jQuery.isEmptyObject({a:1}), "isEmptyObject on non-empty object literal" );
|
||||
|
||||
|
||||
// What about this ?
|
||||
// equals(true, jQuery.isEmptyObject(null), "isEmptyObject on null" );
|
||||
});
|
||||
|
@ -878,23 +880,23 @@ test("jQuery.proxy", function(){
|
|||
|
||||
test("jQuery.parseJSON", function(){
|
||||
expect(8);
|
||||
|
||||
|
||||
equals( jQuery.parseJSON(), null, "Nothing in, null out." );
|
||||
equals( jQuery.parseJSON( null ), null, "Nothing in, null out." );
|
||||
equals( jQuery.parseJSON( "" ), null, "Nothing in, null out." );
|
||||
|
||||
|
||||
same( jQuery.parseJSON("{}"), {}, "Plain object parsing." );
|
||||
same( jQuery.parseJSON('{"test":1}'), {"test":1}, "Plain object parsing." );
|
||||
|
||||
same( jQuery.parseJSON('\n{"test":1}'), {"test":1}, "Make sure leading whitespaces are handled." );
|
||||
|
||||
|
||||
try {
|
||||
jQuery.parseJSON("{a:1}");
|
||||
ok( false, "Test malformed JSON string." );
|
||||
} catch( e ) {
|
||||
ok( true, "Test malformed JSON string." );
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
jQuery.parseJSON("{'a':1}");
|
||||
ok( false, "Test malformed JSON string." );
|
||||
|
|
Loading…
Reference in a new issue