Changeset 29186 in legacy


Ignore:
Timestamp:
Jul 11, 2012 6:02:18 PM (5 years ago)
Author:
rcgill
Message:

fixes amd config / allow foreign loaders to init has cache; thanks james burke; fixes #15444; refs #15616; !strict

Location:
dojo/trunk
Files:
6 added
3 edited

Legend:

Unmodified
Added
Removed
  • dojo/trunk/dojo.js

    r29155 r29186  
    503503                        },
    504504
    505                         config = function(config, booting){
     505                        config = function(config, booting, referenceModule){
    506506                                for(var p in config){
    507507                                        if(p=="waitSeconds"){
     
    571571                                // mix any packageMap config item and recompute the internal packageMapProg
    572572                                computeMapProg(mix(packageMap, config.packageMap), packageMapProg);
     573
     574
     575                                for(p in config.config){
     576                                        var module = getModule(p, referenceModule);
     577                                        module.config = mix(module.config || {}, config.config[p]);
     578                                }
    573579
    574580                                // push in any new cache values
     
    711717                        if(!isArray(a1)){
    712718                                // a1 is a configuration
    713                                 config(a1);
     719                                config(a1, 0, referenceModule);
    714720
    715721                                // juggle args; (a2, a3) may be (dependencies, callback)
     
    14821488                                                setExports: function(exports){
    14831489                                                        module.cjs.exports = exports;
     1490                                                },
     1491                                                config:function(){
     1492                                                        return module.config;
    14841493                                                }
    14851494                                        }
  • dojo/trunk/has.js

    r29117 r29186  
    1 define(["require"], function(require){
     1define(["require", "module"], function(require, module){
    22        // module:
    33        //              dojo/has
     
    1414
    1515        // try to pull the has implementation from the loader; both the dojo loader and bdLoad provide one
     16        // if using a foreign loader, then the has cache may be initialized via the config object for this module
    1617        // WARNING: if a foreign loader defines require.has to be something other than the has.js API, then this implementation fail
    1718        var has = require.has || function(){};
    1819        if(!has("dojo-has-api")){
    19                 // notice the condition is written so that if has("dojo-has-api") is transformed to 1 during a build
    20                 // the conditional will be (!1 && typeof has=="function") which is statically false and the closure
    21                 // compiler will discard the block.
    2220                var
    2321                        isBrowser =
     
    3230                        doc = isBrowser && document,
    3331                        element = doc && doc.createElement("DiV"),
    34                         cache = {};
     32                        cache = (module.config && module.config()) || {};
    3533
    3634                has = function(name){
  • dojo/trunk/tests/_base/loader.js

    r29007 r29186  
    133133                doh.register("tests._base.loader.requirejs-exports-sync", require.toUrl("./loader/requirejs/exports/exports.html"), {async:0});
    134134                doh.register("tests._base.loader.requirejs-exports-async", require.toUrl("./loader/requirejs/exports/exports.html"), {async:1});
     135
     136                doh.register("tests._base.loader.require-config", require.toUrl("./loader/config/test.html"), {async:1});
    135137        }
    136138});
Note: See TracChangeset for help on using the changeset viewer.