Opened 7 years ago

Closed 7 years ago

Last modified 6 years ago

#17141 closed defect (fixed)

[regression] cached templates no longer used

Reported by: bozzolini Owned by: Rawld Gill
Priority: blocker Milestone: 1.9.1
Component: BuildSystem Version: 1.9.0
Keywords: Cc:
Blocked By: Blocking:

Description

We recently updated from version 1.8.3 to 1.9.0. Our custom widgets that use dijit/form elements are not working in IE10 anymore (but working in other browsers FF20.0, GC26.0). Somehow IE10 requests the HTML templates for the dijit/form widgets. These are normally not available in a production environment as I understand.

After a quick compare of dojo v1.9.0 dijit/form/Button.js and dojo v1.8.3 dijit/form/Button.js we noticed that the require({cache:{[...] was moved to the bottom. Does Internet Explorer have a problem with that?

Attachments (1)

ie10_networkcapture.png (89.4 KB) - added by bozzolini 7 years ago.
Network trace in IE10 Debug Window

Download all attachments as: .zip

Change History (15)

Changed 7 years ago by bozzolini

Attachment: ie10_networkcapture.png added

Network trace in IE10 Debug Window

comment:1 Changed 7 years ago by Douglas Hays

Component: Dijit - FormDijit
Owner: changed from Douglas Hays to bill
Status: newassigned

comment:2 Changed 7 years ago by bill

Component: DijitBuildSystem
Milestone: tbd1.9.1
Summary: IE10 requesting dijit/form/template HTML files[regression] cached templates no longer used

Regression from builder change in [31250]. I don't think it has anything to do with IE10 per se, because of the differences in Button.js that you mentioned.

comment:3 Changed 7 years ago by bill

Owner: changed from bill to Rawld Gill

comment:4 Changed 7 years ago by bill

This is causing #17146 and #17180.

comment:5 Changed 7 years ago by Colin Snover

Priority: undecidedblocker

comment:6 Changed 7 years ago by bill

#17242 is a duplicate of this ticket.

comment:8 Changed 7 years ago by MvdBeek

Both patch versions :

--> https://github.com/dojo/util/commit/89bf2786e322323293f52917223aa24db7649951

and

--> https://github.com/dojo/util/commit/783da4030bf9e727bfb4fc874b59f77521545264

break Util !

The error you get (while building) is :

js: "<eval'ed string>#1(Function)#1(eval)", line 335: uncaught JavaScript runtime exception: TypeError: Cannot find function computeAliases in object 
function (a1, a2, a3) {
    return contextRequire(a1, a2, a3, module, result);
}
.
	at <eval'ed string>#1(Function)#1(eval):335
	at <eval'ed string>#1(Function)#1(eval):231
	at <eval'ed string>#1(Function)#1(eval):83

It crashed when processing the doh.profile.js file.

(The line number is not a reference to one of my files.) (I used the Java version of the compiler.)

Any ideas ?

Last edited 7 years ago by MvdBeek (previous) (diff)

comment:9 Changed 7 years ago by bill

I don't know what you mean by "break util". Util is a directory. If you are saying that the build command (build.sh ...) gets an exception, you'll need to be more specific, since it works for me.

comment:10 in reply to:  9 Changed 7 years ago by MvdBeek

Replying to bill:

I don't know what you mean by "break util". Util is a directory. If you are saying that the build command (build.sh ...) gets an exception, you'll need to be more specific, since it works for me.

Yes, sorry I should've been more precise, I meant build.sh.

-> If I go in the util folder and

git checkout 1.8.3

then

./build.sh

I get NO errors.

-> If I go in the util folder and

git checkout 783da4030bf9e727bfb4fc874b59f77521545264

or

git checkout 89bf2786e322323293f52917223aa24db7649951

(the names of the two patches containing the fix to this ticket) then

./build..sh

the build launches, but while processing all the ressources, when it tries to process doh.profile.js, I get the following error :

js: "<eval'ed string>#1(Function)#1(eval)", line 335: uncaught JavaScript runtime exception: TypeError: Cannot find function computeAliases in object 
function (a1, a2, a3) {
    return contextRequire(a1, a2, a3, module, result);
}
.
	at <eval'ed string>#1(Function)#1(eval):335
	at <eval'ed string>#1(Function)#1(eval):231
	at <eval'ed string>#1(Function)#1(eval):83

Don't hesitate if you want more informations !

Last edited 7 years ago by MvdBeek (previous) (diff)

comment:11 Changed 7 years ago by bill

Well, first of all, build.sh is not in the util/ directory, but rather the util/buildscripts directory. Second, calling build.sh without any arguments doesn't make sense. It just prints a help message:

mac:buildscripts bill$ ./build.sh
NAME
     build.sh - a convenience wrapper around the Dojo Build Application

SYNOPSIS
     path/to/build.sh [--help] [--bin environment] [build system options]

DESCRIPTION
     build.sh is a shell script that wraps the Dojo Build Application located at /util/build/main.js
     to simplify executing the application in various, selectable, Javascript environments. Currently
     both node.js and Java are supported.

comment:12 Changed 7 years ago by MvdBeek

My build.sh script is outside the util folder and runs the following commands :

myConfig = "app/run"
myProfile = "profiles/app.profile.js"
myReleaseDir = "myRelaseDir"

cd util/buildscripts
java -Xms256m -Xmx256m  -cp ../shrinksafe/js.jar:../closureCompiler/compiler.jar:../shrinksafe/shrinksafe.jar org.mozilla.javascript.tools.shell.Main  ../../dojo/dojo.js baseUrl=../../dojo load=build --require "$myConfig" --profile "$myProfile" --releaseDir "$myReleaseDir" $@

comment:13 Changed 7 years ago by bill

Obviously, we can't debug based on that description, because we don't have your app.profile.js, nor the files it's referencing. If you can come up with a test case that used to work but now fails, let us know.

comment:14 Changed 6 years ago by Wouter Hager

I have the same problem when requiring form widgets dynamically. I added require to define but to no avail. IE wants to request the templates, which are not there.

Note: See TracTickets for help on using tickets.