Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mahara
mahara
Commits
328fbe4a
Commit
328fbe4a
authored
Mar 10, 2015
by
Son Nguyen
Committed by
Gerrit Code Review
Mar 10, 2015
Browse files
Merge "Update pdf.js to version 1.0.1040 (Bug #1384478)"
parents
29b9b1f8
e9a2cd73
Changes
104
Expand all
Hide whitespace changes
Inline
Side-by-side
htdocs/artefact/file/blocktype/pdf/js/pdfjs/README.Mahara
View file @
328fbe4a
...
...
@@ -2,7 +2,7 @@ PDF.js in Mahara
==================
Website: http://mozilla.github.io/pdf.js/getting_started/#download
Version: 1.0.
2
1
Version: 1.0.1
040
License: Apache License 2.0
PDF.js is used in the Mahara to provide a javascript library for
...
...
@@ -18,6 +18,7 @@ Build Instructions:
Changes:
* Minify js files for faster loading
* Change location of sample PDF file
* Remove "open file" button
* viewer.css additions to support viewing by non-JS users
...
...
htdocs/artefact/file/blocktype/pdf/js/pdfjs/build/pdf.js
deleted
100644 → 0
View file @
29b9b1f8
This diff is collapsed.
Click to expand it.
htdocs/artefact/file/blocktype/pdf/js/pdfjs/build/pdf.min.js
0 → 100644
View file @
328fbe4a
This diff is collapsed.
Click to expand it.
htdocs/artefact/file/blocktype/pdf/js/pdfjs/build/pdf.worker.js
deleted
100644 → 0
View file @
29b9b1f8
This diff is collapsed.
Click to expand it.
htdocs/artefact/file/blocktype/pdf/js/pdfjs/build/pdf.worker.min.js
0 → 100644
View file @
328fbe4a
This diff is collapsed.
Click to expand it.
htdocs/artefact/file/blocktype/pdf/js/pdfjs/web/compatibility.js
View file @
328fbe4a
...
...
@@ -25,9 +25,10 @@ if (typeof PDFJS === 'undefined') {
}
// Checking if the typed arrays are supported
// Support: iOS<6.0 (subarray), IE<10, Android<4.0
(
function
checkTypedArrayCompatibility
()
{
if
(
typeof
Uint8Array
!==
'
undefined
'
)
{
//
some mobile versions do not support subarray (e.g. safari 5 / iOS)
//
Support: iOS<6.0
if
(
typeof
Uint8Array
.
prototype
.
subarray
===
'
undefined
'
)
{
Uint8Array
.
prototype
.
subarray
=
function
subarray
(
start
,
end
)
{
return
new
Uint8Array
(
this
.
slice
(
start
,
end
));
...
...
@@ -37,7 +38,7 @@ if (typeof PDFJS === 'undefined') {
};
}
//
some mobile version might not support Float64Array
//
Support: Android<4.1
if
(
typeof
Float64Array
===
'
undefined
'
)
{
window
.
Float64Array
=
Float32Array
;
}
...
...
@@ -97,26 +98,15 @@ if (typeof PDFJS === 'undefined') {
})();
// URL = URL || webkitURL
// Support: Safari<7, Android 4.2+
(
function
normalizeURLObject
()
{
if
(
!
window
.
URL
)
{
window
.
URL
=
window
.
webkitURL
;
}
})();
// Object.create() ?
(
function
checkObjectCreateCompatibility
()
{
if
(
typeof
Object
.
create
!==
'
undefined
'
)
{
return
;
}
Object
.
create
=
function
objectCreate
(
proto
)
{
function
Constructor
()
{}
Constructor
.
prototype
=
proto
;
return
new
Constructor
();
};
})();
// Object.defineProperty() ?
// Object.defineProperty()?
// Support: Android<4.0, Safari<5.1
(
function
checkObjectDefinePropertyCompatibility
()
{
if
(
typeof
Object
.
defineProperty
!==
'
undefined
'
)
{
var
definePropertyPossible
=
true
;
...
...
@@ -157,109 +147,73 @@ if (typeof PDFJS === 'undefined') {
};
})();
// Object.keys() ?
(
function
checkObjectKeysCompatibility
()
{
if
(
typeof
Object
.
keys
!==
'
undefined
'
)
{
return
;
}
Object
.
keys
=
function
objectKeys
(
obj
)
{
var
result
=
[];
for
(
var
i
in
obj
)
{
if
(
obj
.
hasOwnProperty
(
i
))
{
result
.
push
(
i
);
}
}
return
result
;
};
})();
// No readAsArrayBuffer ?
(
function
checkFileReaderReadAsArrayBuffer
()
{
if
(
typeof
FileReader
===
'
undefined
'
)
{
return
;
// FileReader is not implemented
}
var
frPrototype
=
FileReader
.
prototype
;
// Older versions of Firefox might not have readAsArrayBuffer
if
(
'
readAsArrayBuffer
'
in
frPrototype
)
{
return
;
// readAsArrayBuffer is implemented
}
Object
.
defineProperty
(
frPrototype
,
'
readAsArrayBuffer
'
,
{
value
:
function
fileReaderReadAsArrayBuffer
(
blob
)
{
var
fileReader
=
new
FileReader
();
var
originalReader
=
this
;
fileReader
.
onload
=
function
fileReaderOnload
(
evt
)
{
var
data
=
evt
.
target
.
result
;
var
buffer
=
new
ArrayBuffer
(
data
.
length
);
var
uint8Array
=
new
Uint8Array
(
buffer
);
for
(
var
i
=
0
,
ii
=
data
.
length
;
i
<
ii
;
i
++
)
{
uint8Array
[
i
]
=
data
.
charCodeAt
(
i
);
}
Object
.
defineProperty
(
originalReader
,
'
result
'
,
{
value
:
buffer
,
enumerable
:
true
,
writable
:
false
,
configurable
:
true
});
var
event
=
document
.
createEvent
(
'
HTMLEvents
'
);
event
.
initEvent
(
'
load
'
,
false
,
false
);
originalReader
.
dispatchEvent
(
event
);
};
fileReader
.
readAsBinaryString
(
blob
);
}
});
})();
// No XMLHttpRequest.response ?
// No XMLHttpRequest#response?
// Support: IE<11, Android <4.0
(
function
checkXMLHttpRequestResponseCompatibility
()
{
var
xhrPrototype
=
XMLHttpRequest
.
prototype
;
if
(
!
(
'
overrideMimeType
'
in
xhrPrototype
))
{
var
xhr
=
new
XMLHttpRequest
();
if
(
!
(
'
overrideMimeType
'
in
xhr
))
{
// IE10 might have response, but not overrideMimeType
// Support: IE10
Object
.
defineProperty
(
xhrPrototype
,
'
overrideMimeType
'
,
{
value
:
function
xmlHttpRequestOverrideMimeType
(
mimeType
)
{}
});
}
if
(
'
response
'
in
xhrPrototype
||
'
mozResponseArrayBuffer
'
in
xhrPrototype
||
'
mozResponse
'
in
xhrPrototype
||
'
responseArrayBuffer
'
in
xhrPrototype
)
{
if
(
'
responseType
'
in
xhr
)
{
return
;
}
// IE9 ?
// The worker will be using XHR, so we can save time and disable worker.
PDFJS
.
disableWorker
=
true
;
Object
.
defineProperty
(
xhrPrototype
,
'
responseType
'
,
{
get
:
function
xmlHttpRequestGetResponseType
()
{
return
this
.
_responseType
||
'
text
'
;
},
set
:
function
xmlHttpRequestSetResponseType
(
value
)
{
if
(
value
===
'
text
'
||
value
===
'
arraybuffer
'
)
{
this
.
_responseType
=
value
;
if
(
value
===
'
arraybuffer
'
&&
typeof
this
.
overrideMimeType
===
'
function
'
)
{
this
.
overrideMimeType
(
'
text/plain; charset=x-user-defined
'
);
}
}
}
});
// Support: IE9
if
(
typeof
VBArray
!==
'
undefined
'
)
{
Object
.
defineProperty
(
xhrPrototype
,
'
response
'
,
{
get
:
function
xmlHttpRequestResponseGet
()
{
return
new
Uint8Array
(
new
VBArray
(
this
.
responseBody
).
toArray
());
if
(
this
.
responseType
===
'
arraybuffer
'
)
{
return
new
Uint8Array
(
new
VBArray
(
this
.
responseBody
).
toArray
());
}
else
{
return
this
.
responseText
;
}
}
});
return
;
}
// other browsers
function
responseTypeSetter
()
{
// will be only called to set "arraybuffer"
this
.
overrideMimeType
(
'
text/plain; charset=x-user-defined
'
);
}
if
(
typeof
xhrPrototype
.
overrideMimeType
===
'
function
'
)
{
Object
.
defineProperty
(
xhrPrototype
,
'
responseType
'
,
{
set
:
responseTypeSetter
});
}
function
responseGetter
()
{
var
text
=
this
.
responseText
;
var
i
,
n
=
text
.
length
;
var
result
=
new
Uint8Array
(
n
);
for
(
i
=
0
;
i
<
n
;
++
i
)
{
result
[
i
]
=
text
.
charCodeAt
(
i
)
&
0xFF
;
Object
.
defineProperty
(
xhrPrototype
,
'
response
'
,
{
get
:
function
xmlHttpRequestResponseGet
()
{
if
(
this
.
responseType
!==
'
arraybuffer
'
)
{
return
this
.
responseText
;
}
var
text
=
this
.
responseText
;
var
i
,
n
=
text
.
length
;
var
result
=
new
Uint8Array
(
n
);
for
(
i
=
0
;
i
<
n
;
++
i
)
{
result
[
i
]
=
text
.
charCodeAt
(
i
)
&
0xFF
;
}
return
result
.
buffer
;
}
return
result
;
}
Object
.
defineProperty
(
xhrPrototype
,
'
response
'
,
{
get
:
responseGetter
});
});
})();
// window.btoa (base64 encode function) ?
// Support: IE<10
(
function
checkWindowBtoaCompatibility
()
{
if
(
'
btoa
'
in
window
)
{
return
;
...
...
@@ -285,7 +239,8 @@ if (typeof PDFJS === 'undefined') {
};
})();
// window.atob (base64 encode function) ?
// window.atob (base64 encode function)?
// Support: IE<10
(
function
checkWindowAtobCompatibility
()
{
if
(
'
atob
'
in
window
)
{
return
;
...
...
@@ -296,7 +251,7 @@ if (typeof PDFJS === 'undefined') {
'
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
'
;
window
.
atob
=
function
(
input
)
{
input
=
input
.
replace
(
/=+$/
,
''
);
if
(
input
.
length
%
4
==
1
)
{
if
(
input
.
length
%
4
==
=
1
)
{
throw
new
Error
(
'
bad atob input
'
);
}
for
(
...
...
@@ -318,7 +273,8 @@ if (typeof PDFJS === 'undefined') {
};
})();
// Function.prototype.bind ?
// Function.prototype.bind?
// Support: Android<4.0, iOS<6.0
(
function
checkFunctionPrototypeBindCompatibility
()
{
if
(
typeof
Function
.
prototype
.
bind
!==
'
undefined
'
)
{
return
;
...
...
@@ -335,6 +291,7 @@ if (typeof PDFJS === 'undefined') {
})();
// HTMLElement dataset property
// Support: IE<11, Safari<5.1, Android<4.0
(
function
checkDatasetProperty
()
{
var
div
=
document
.
createElement
(
'
div
'
);
if
(
'
dataset
'
in
div
)
{
...
...
@@ -350,7 +307,7 @@ if (typeof PDFJS === 'undefined') {
var
dataset
=
{};
for
(
var
j
=
0
,
jj
=
this
.
attributes
.
length
;
j
<
jj
;
j
++
)
{
var
attribute
=
this
.
attributes
[
j
];
if
(
attribute
.
name
.
substring
(
0
,
5
)
!=
'
data-
'
)
{
if
(
attribute
.
name
.
substring
(
0
,
5
)
!=
=
'
data-
'
)
{
continue
;
}
var
key
=
attribute
.
name
.
substring
(
5
).
replace
(
/
\-([
a-z
])
/g
,
...
...
@@ -372,6 +329,7 @@ if (typeof PDFJS === 'undefined') {
})();
// HTMLElement classList property
// Support: IE<10, Android<4.0, iOS<5.0
(
function
checkClassListProperty
()
{
var
div
=
document
.
createElement
(
'
div
'
);
if
(
'
classList
'
in
div
)
{
...
...
@@ -435,6 +393,9 @@ if (typeof PDFJS === 'undefined') {
})();
// Check console compatibility
// In older IE versions the console object is not available
// unless console is open.
// Support: IE<10
(
function
checkConsoleCompatibility
()
{
if
(
!
(
'
console
'
in
window
))
{
window
.
console
=
{
...
...
@@ -457,6 +418,7 @@ if (typeof PDFJS === 'undefined') {
})();
// Check onclick compatibility in Opera
// Support: Opera<15
(
function
checkOnClickCompatibility
()
{
// workaround for reported Opera bug DSK-354448:
// onclick fires on disabled buttons with opaque content
...
...
@@ -468,13 +430,14 @@ if (typeof PDFJS === 'undefined') {
function
isDisabled
(
node
)
{
return
node
.
disabled
||
(
node
.
parentNode
&&
isDisabled
(
node
.
parentNode
));
}
if
(
navigator
.
userAgent
.
indexOf
(
'
Opera
'
)
!=
-
1
)
{
if
(
navigator
.
userAgent
.
indexOf
(
'
Opera
'
)
!=
=
-
1
)
{
// use browser detection since we cannot feature-check this bug
document
.
addEventListener
(
'
click
'
,
ignoreIfTargetDisabled
,
true
);
}
})();
// Checks if possible to use URL.createObjectURL()
// Support: IE
(
function
checkOnBlobSupport
()
{
// sometimes IE loosing the data created with createObjectURL(), see #3977
if
(
navigator
.
userAgent
.
indexOf
(
'
Trident
'
)
>=
0
)
{
...
...
@@ -504,6 +467,7 @@ if (typeof PDFJS === 'undefined') {
// Safari has issues with cached range requests see:
// https://github.com/mozilla/pdf.js/issues/3260
// Last tested with version 6.0.4.
// Support: Safari 6.0+
var
isSafari
=
Object
.
prototype
.
toString
.
call
(
window
.
HTMLElement
).
indexOf
(
'
Constructor
'
)
>
0
;
...
...
@@ -511,22 +475,30 @@ if (typeof PDFJS === 'undefined') {
// https://github.com/mozilla/pdf.js/issues/3381.
// Make sure that we only match webkit-based Android browsers,
// since Firefox/Fennec works as expected.
// Support: Android<3.0
var
regex
=
/Android
\s[
0-2
][^\d]
/
;
var
isOldAndroid
=
regex
.
test
(
navigator
.
userAgent
);
if
(
isSafari
||
isOldAndroid
)
{
PDFJS
.
disableRange
=
true
;
PDFJS
.
disableStream
=
true
;
}
})();
// Check if the browser supports manipulation of the history.
// Support: IE<10, Android<4.2
(
function
checkHistoryManipulation
()
{
if
(
!
window
.
history
.
pushState
)
{
// Android 2.x has so buggy pushState support that it was removed in
// Android 3.0 and restored as late as in Android 4.2.
// Support: Android 2.x
if
(
!
history
.
pushState
||
navigator
.
userAgent
.
indexOf
(
'
Android 2.
'
)
>=
0
)
{
PDFJS
.
disableHistory
=
true
;
}
})();
// Support: IE<11, Chrome<21, Android<4.4, Safari<6
(
function
checkSetPresenceInImageData
()
{
// IE < 11 will use window.CanvasPixelArray which lacks set function.
if
(
window
.
CanvasPixelArray
)
{
if
(
typeof
window
.
CanvasPixelArray
.
prototype
.
set
!==
'
function
'
)
{
window
.
CanvasPixelArray
.
prototype
.
set
=
function
(
arr
)
{
...
...
@@ -535,25 +507,68 @@ if (typeof PDFJS === 'undefined') {
}
};
}
}
else
{
// Old Chrome and Android use an inaccessible CanvasPixelArray prototype.
// Because we cannot feature detect it, we rely on user agent parsing.
var
polyfill
=
false
,
versionMatch
;
if
(
navigator
.
userAgent
.
indexOf
(
'
Chrom
'
)
>=
0
)
{
versionMatch
=
navigator
.
userAgent
.
match
(
/Chrom
(
e|ium
)\/([
0-9
]
+
)\.
/
);
// Chrome < 21 lacks the set function.
polyfill
=
versionMatch
&&
parseInt
(
versionMatch
[
2
])
<
21
;
}
else
if
(
navigator
.
userAgent
.
indexOf
(
'
Android
'
)
>=
0
)
{
// Android < 4.4 lacks the set function.
// Android >= 4.4 will contain Chrome in the user agent,
// thus pass the Chrome check above and not reach this block.
polyfill
=
/Android
\s[
0-4
][^\d]
/g
.
test
(
navigator
.
userAgent
);
}
else
if
(
navigator
.
userAgent
.
indexOf
(
'
Safari
'
)
>=
0
)
{
versionMatch
=
navigator
.
userAgent
.
match
(
/Version
\/([
0-9
]
+
)\.([
0-9
]
+
)\.([
0-9
]
+
)
Safari
\/
/
);
// Safari < 6 lacks the set function.
polyfill
=
versionMatch
&&
parseInt
(
versionMatch
[
1
])
<
6
;
}
if
(
polyfill
)
{
var
contextPrototype
=
window
.
CanvasRenderingContext2D
.
prototype
;
contextPrototype
.
_createImageData
=
contextPrototype
.
createImageData
;
contextPrototype
.
createImageData
=
function
(
w
,
h
)
{
var
imageData
=
this
.
_createImageData
(
w
,
h
);
imageData
.
data
.
set
=
function
(
arr
)
{
for
(
var
i
=
0
,
ii
=
this
.
length
;
i
<
ii
;
i
++
)
{
this
[
i
]
=
arr
[
i
];
}
};
return
imageData
;
};
}
}
})();
(
function
checkStorages
()
{
// Feature test as per http://diveintohtml5.info/storage.html
// The additional localStorage call is to get around a FF quirk, see
// bug #495747 in bugzilla
try
{
if
(
'
localStorage
'
in
window
&&
window
[
'
localStorage
'
]
!==
null
)
{
return
;
}
}
catch
(
e
)
{
}
window
.
localStorage
=
{
data
:
Object
.
create
(
null
),
getItem
:
function
(
key
)
{
return
this
.
data
[
key
];
},
setItem
:
function
(
key
,
value
)
{
this
.
data
[
key
]
=
value
;
}
};
// Support: IE<10, Android<4.0, iOS
(
function
checkRequestAnimationFrame
()
{
function
fakeRequestAnimationFrame
(
callback
)
{
window
.
setTimeout
(
callback
,
20
);
}
var
isIOS
=
/
(
iPad|iPhone|iPod
)
/g
.
test
(
navigator
.
userAgent
);
if
(
isIOS
)
{
// requestAnimationFrame on iOS is broken, replacing with fake one.
window
.
requestAnimationFrame
=
fakeRequestAnimationFrame
;
return
;
}
if
(
'
requestAnimationFrame
'
in
window
)
{
return
;
}
window
.
requestAnimationFrame
=
window
.
mozRequestAnimationFrame
||
window
.
webkitRequestAnimationFrame
||
fakeRequestAnimationFrame
;
})();
(
function
checkCanvasSizeLimitation
()
{
var
isIOS
=
/
(
iPad|iPhone|iPod
)
/g
.
test
(
navigator
.
userAgent
);
var
isAndroid
=
/Android/g
.
test
(
navigator
.
userAgent
);
if
(
isIOS
||
isAndroid
)
{
// 5MP
PDFJS
.
maxCanvasPixels
=
5242880
;
}
})();
htdocs/artefact/file/blocktype/pdf/js/pdfjs/web/debugger.js
View file @
328fbe4a
...
...
@@ -20,7 +20,6 @@
var
FontInspector
=
(
function
FontInspectorClosure
()
{
var
fonts
;
var
panelWidth
=
300
;
var
active
=
false
;
var
fontAttribute
=
'
data-font-name
'
;
function
removeSelection
()
{
...
...
@@ -54,7 +53,7 @@ var FontInspector = (function FontInspectorClosure() {
var
selects
=
document
.
getElementsByTagName
(
'
input
'
);
for
(
var
i
=
0
;
i
<
selects
.
length
;
++
i
)
{
var
select
=
selects
[
i
];
if
(
select
.
dataset
.
fontName
!=
fontName
)
{
if
(
select
.
dataset
.
fontName
!=
=
fontName
)
{
continue
;
}
select
.
checked
=
!
select
.
checked
;
...
...
@@ -113,13 +112,20 @@ var FontInspector = (function FontInspectorClosure() {
return
moreInfo
;
}
var
moreInfo
=
properties
(
fontObj
,
[
'
name
'
,
'
type
'
]);
var
m
=
/url
\([
'"
]?([^\)
"'
]
+
)
/
.
exec
(
url
);
var
fontName
=
fontObj
.
loadedName
;
var
font
=
document
.
createElement
(
'
div
'
);
var
name
=
document
.
createElement
(
'
span
'
);
name
.
textContent
=
fontName
;
var
download
=
document
.
createElement
(
'
a
'
);
download
.
href
=
m
[
1
];
if
(
url
)
{
url
=
/url
\([
'"
]?([^\)
"'
]
+
)
/
.
exec
(
url
);
download
.
href
=
url
[
1
];
}
else
if
(
fontObj
.
data
)
{
url
=
URL
.
createObjectURL
(
new
Blob
([
fontObj
.
data
],
{
type
:
fontObj
.
mimeType
}));
download
.
href
=
url
;
}
download
.
textContent
=
'
Download
'
;
var
logIt
=
document
.
createElement
(
'
a
'
);
logIt
.
href
=
''
;
...
...
@@ -212,12 +218,13 @@ var StepperManager = (function StepperManagerClosure() {
},
selectStepper
:
function
selectStepper
(
pageIndex
,
selectPanel
)
{
var
i
;
pageIndex
=
pageIndex
|
0
;
if
(
selectPanel
)
{
this
.
manager
.
selectPanel
(
this
);
}
for
(
i
=
0
;
i
<
steppers
.
length
;
++
i
)
{
var
stepper
=
steppers
[
i
];
if
(
stepper
.
pageIndex
==
pageIndex
)
{
if
(
stepper
.
pageIndex
==
=
pageIndex
)
{
stepper
.
panel
.
removeAttribute
(
'
hidden
'
);
}
else
{
stepper
.
panel
.
setAttribute
(
'
hidden
'
,
true
);
...
...
@@ -226,7 +233,7 @@ var StepperManager = (function StepperManagerClosure() {
var
options
=
stepperChooser
.
options
;
for
(
i
=
0
;
i
<
options
.
length
;
++
i
)
{
var
option
=
options
[
i
];
option
.
selected
=
option
.
value
==
pageIndex
;
option
.
selected
=
(
option
.
value
|
0
)
=
==
pageIndex
;
}
},
saveBreakPoints
:
function
saveBreakPoints
(
pageIndex
,
bps
)
{
...
...
@@ -247,27 +254,8 @@ var Stepper = (function StepperClosure() {
return
d
;
}
function
glyphsToString
(
glyphs
)
{
var
out
=
''
;
for
(
var
i
=
0
;
i
<
glyphs
.
length
;
i
++
)
{
if
(
glyphs
[
i
]
===
null
)
{
out
+=
'
'
;
}
else
{
out
+=
glyphs
[
i
].
fontChar
;
}
}
return
out
;
}
var
opMap
=
null
;
var
glyphCommands
=
{
'
showText
'
:
0
,
'
showSpacedText
'
:
0
,
'
nextLineShowText
'
:
0
,
'
nextLineSetSpacingShowText
'
:
2
};
function
simplifyArgs
(
args
)
{
if
(
typeof
args
===
'
string
'
)
{
var
MAX_STRING_LENGTH
=
75
;
...
...
@@ -327,6 +315,8 @@ var Stepper = (function StepperClosure() {
}
},
updateOperatorList
:
function
updateOperatorList
(
operatorList
)
{
var
self
=
this
;
function
cboxOnClick
()
{
var
x
=
+
this
.
dataset
.
idx
;
if
(
this
.
checked
)
{
...
...
@@ -342,7 +332,6 @@ var Stepper = (function StepperClosure() {
return
;
}
var
self
=
this
;
var
chunk
=
document
.
createDocumentFragment
();
var
operatorsToDisplay
=
Math
.
min
(
MAX_OPERATORS_COUNT
,
operatorList
.
fnArray
.
length
);
...
...
@@ -351,7 +340,7 @@ var Stepper = (function StepperClosure() {
line
.
className
=
'
line
'
;
line
.
dataset
.
idx
=
i
;
chunk
.
appendChild
(
line
);
var
checked
=
this
.
breakPoints
.
indexOf
(
i
)
!=
-
1
;
var
checked
=
this
.
breakPoints
.
indexOf
(
i
)
!=
=
-
1
;
var
args
=
operatorList
.
argsArray
[
i
]
||
[];
var
breakCell
=
c
(
'
td
'
);
...
...
@@ -367,24 +356,26 @@ var Stepper = (function StepperClosure() {
line
.
appendChild
(
c
(
'
td
'
,
i
.
toString
()));
var
fn
=
opMap
[
operatorList
.
fnArray
[
i
]];
var
decArgs
=
args
;
if
(
fn
in
glyphCommands
)
{
var
glyph
Index
=
glyphCommands
[
fn
];
var
glyphs
=
args
[
glyphIndex
];
decArgs
=
args
.
slice
()
;
var
newArg
;
if
(
fn
===
'
showSpacedText
'
)
{
newArg
=
[];
for
(
var
j
=
0
;
j
<
glyphs
.
length
;
j
++
)
{
if
(
typeof
glyphs
[
j
]
===
'
number
'
)
{
newArg
.
push
(
glyphs
[
j
]);
}
else
{
newArg
.
push
(
glyphsToString
(
glyphs
[
j
]))
;
if
(
fn
===
'
showText
'
)
{
var
glyph
s
=
args
[
0
];
var
newArgs
=
[
];
var
str
=
[]
;
for
(
var
j
=
0
;
j
<
glyphs
.
length
;
j
++
)
{
var
glyph
=
glyphs
[
j
];
if
(
typeof
glyph
===
'
object
'
&&
glyph
!==
null
)
{