La compilación Dojo falla en IE9 cuando se carga una capa desde el encabezado HTML: la propiedad 'dir' no está definida

He hecho una compilación de dojo, pero quería la flexibilidad al habilitar / deshabilitar la compilación, por lo que he intentado cargar en<script> Etiquetas en el encabezado HTML:

<script src="js/config.js"></script>
<script src="/dojo/1.9/dojo/dojo.js" data-dojo-config="async: true"></script>
<script src="/dojo/1.9/dojo/dojo-all.js"></script>

y he dejado mi archivo JS sin modificar. Parece funcionar, sin embargo, hubo un problema, pero solo en IE9, y solo en la versión de la aplicación implementada en WebSphere (he probado en Apache2). El problema era que la propiedad 'dir' no estaba definida, en ese fragmento de código en particular:

    geom.isBodyLtr = function isBodyLtr(doc) {
        doc = doc || win.doc;
        return (win.body(doc).dir || doc.documentElement.dir 
           || "ltr").toLowerCase() == "ltr";
    };

Después de algunas búsquedas de problemas similares (como este:Cómo evitar el error "No se puede obtener el valor de la propiedad 'dir': el objeto es nulo o no está definido" al cargar páginas en IE9), He detectado que puede haber algún problema de secuencia de carga. He eliminado la capa del encabezado HTML y la cargué en mi JS en la siguiente secuencia:

require(["dojo/domReady!"], function(){
// load the layers, but only after document is ready
require(['dojo/dojo-all'], function(){

require(["dojo", "dojo/on", "dojo/dom-attr", "dojo/dom-class", (... and hundred more) 

Sin embargo, sé que las personas están cargando compilaciones en el encabezado HTML, por ejemplo, del tema aquí:Dojo construye ...? ¿Ahora que?

Entonces, mi pregunta es: ¿estoy haciendo algo mal o no se garantiza que el truco con el encabezado HTML funcione en todos los navegadores?

Esta es mi configuración de script de compilación:

'dojo/dojo': {         
    include: ['dojo/dojo', 'dojo/domReady', 'dojo/_base/declare'],         
    boot: true,         
    customBase: true    
},
'dojo/dojo-all': {
    include: ["dojo/on", "dojo/dom-attr", "dojo/dom-class", "dojo/query", "dojo/_base/lang", "dojo/request/xhr", 
    "dijit/registry","dijit/form/TextBox", "dijit/form/Textarea", "dijit/form/ComboBox", "dijit/form/FilteringSelect", "dijit/form/CheckBox", "dijit/form/Button",
    "gridx/core/model/cache/Sync", "gridx/Grid", "gridx/modules/SingleSort", "gridx/modules/ColumnResizer", 
    (...and hundred more)],
    boot: false, // exclude bootstrap modules
    customBase: false
},

y este es el build.bat del dojo:

java -Xms256m -Xmx256m  -cp "%~dp0../shrinksafe/js.jar";"%
~dp0../closureCompiler/compiler.jar";"%~dp0../shrinksafe/shrinksafe.jar" 
org.mozilla.javascript.tools.shell.Main  "%~dp0../../dojo/dojo.js" 
baseUrl="%~dp0../../dojo" load=build %*

Respuestas a la pregunta(1)

Su respuesta a la pregunta