summaryrefslogtreecommitdiff
path: root/source/pdf/js
AgeCommit message (Collapse)Author
2018-04-25Check in generated Javascript source files.Tor Andersson
Use a sed script to strip comments and whitespace and add escapes and quote it as a C string literal.
2016-06-06Add FZ_ENABLE_JS configuration define.Tor Andersson
2016-05-13Update MuJS.Tor Andersson
2016-03-21Fix compiler warnings in murun.c and pdf-js.c by tagging rethrow as noreturn.Tor Andersson
2016-01-06js: Fix error handling bugs and one scoping bug.Tor Andersson
js_pcall was leaving crap on the stack in case of errors. AFSimple_Calculate needs access to the doc object, but cannot use the usual 'this' binding since it's a function. Add a global reference to the doc object MuPDF_Doc.
2015-12-28Drop 'jsimp' abstraction and use mujs directly.Tor Andersson
2015-03-24Rework handling of PDF names for speed and memory.Robin Watts
Currently, every PDF name is allocated in a pdf_obj structure, and comparisons are done using strcmp. Given that we can predict most of the PDF names we'll use in a given file, this seems wasteful. The pdf_obj type is opaque outside the pdf-object.c file, so we can abuse it slightly without anyone outside knowing. We collect a sorted list of names used in PDF (resources/pdf/names.txt), and we add a utility (namedump) that preprocesses this into 2 header files. The first (include/mupdf/pdf/pdf-names-table.h, included as part of include/mupdf/pdf/object.h), defines a set of "PDF_NAME_xxxx" entries. These are pdf_obj *'s that callers can use to mean "A PDF object that means literal name 'xxxx'" The second (source/pdf/pdf-name-impl.h) is a C array of names. We therefore update the code so that rather than passing "xxxx" to functions (such as pdf_dict_gets(...)) we now pass PDF_NAME_xxxx (to pdf_dict_get(...)). This is a fairly natural (if widespread) change. The pdf_dict_getp (and sibling) functions that take a path (e.g. "foo/bar/baz") are therefore supplemented with equivalents that take a list (pdf_dict_getl(... , PDF_NAME_foo, PDF_NAME_bar, PDF_NAME_baz, NULL)). The actual implementation of this relies on the fact that small pointer values are never valid values. For a given pdf_obj *p, if NULL < (intptr_t)p < PDF_NAME__LIMIT then p is a literal entry in the name table. This enables us to do fast pointer compares and to skip expensive strcmps. Also, bring "null", "true" and "false" into the same style as PDF names. Rather than using full pdf_obj structures for null/true/false, use special pointer values just above the PDF_NAME_ table. This saves memory and makes comparisons easier.
2015-02-23Update pdf-js-none for context passing changes.Tor Andersson
2015-02-17Fix memory leak in fz_page.Tor Andersson
2015-02-17Add ctx parameter and remove embedded contexts for API regularity.Tor Andersson
Purge several embedded contexts: Remove embedded context in fz_output. Remove embedded context in fz_stream. Remove embedded context in fz_device. Remove fz_rebind_stream (since it is no longer necessary). Remove embedded context in svg_device. Remove embedded context in XML parser. Add ctx argument to fz_document functions. Remove embedded context in fz_document. Remove embedded context in pdf_document. Remove embedded context in pdf_obj. Make fz_page independent of fz_document in the interface. We shouldn't need to pass the document to all functions handling a page. If a page is tied to the source document, it's redundant; otherwise it's just pointless. Fix reference counting oddity in fz_new_image_from_pixmap.
2015-01-21Fix rebase/merge error in previous commit.Tor Andersson
2015-01-21Update MuJS.Tor Andersson
2014-12-03Update MuJS to latest.Tor Andersson
2014-07-22Change js_is/touserdata argument order to match MuJS changes.Tor Andersson
2014-03-25Break dependencies on pdf-form.c and pdf-js.cTor Andersson
Split functions out of pdf-form.c that shouldn't be there, and make javascript initialization explicit.
2014-03-25Add MuJS submodule, implementation and build.Tor Andersson
Adds simpler choice of Javascript library to makefiles. Will prefer in order: MuJS, JavaScriptCore, V8, none based on HAVE_MUJS, HAVE_JSCORE, and HAVE_V8. For simplicity, we build mujstest even with no javascript implementation.
2014-03-20pdf-util.js: Simplify padZeros.Tor Andersson
2014-03-20pdf-js.c: Use different random number.Tor Andersson
0.4 is not exactly representable using floats, and libjs uses a different atod function than v8.
2014-02-14pdf-js: Pass a name string to type constructor.Tor Andersson
2014-02-14pdf-js.c: Cluster test fixes.Tor Andersson
Use a fixed number for Math.random(). Return a fixed date for Date.now() and Date.UTC().
2014-02-13pdf-util.js: Improve alert messages (also include the event value).Tor Andersson
2014-02-13pdf-util.js: Fix some regexps.Tor Andersson
2014-02-13pdf-util.js: Hoist var statements out of for statements.Tor Andersson
Make the scoping clearer, since Javascript doesn't have block scoping.
2014-02-13pdf-util.js: Always use strict equality comparisons.Tor Andersson
2014-02-13pdf-util.js: Use explicit type conversions in AFParseDateEx and AFParseTime.Tor Andersson
2014-02-12pdf-util.js: Simplify MuPDF object.Tor Andersson
2014-02-04Don't use deprecated and/or non-standard Javascript functions.Tor Andersson
String.prototype.substr() is deprecated. RegExp.prototype.compile() has never been part of the ECMA standard, and is deprecated in Mozilla's Javascript since 1.5 (at least).
2014-01-22Use object literals rather than "new Array" objects.Tor Andersson
Arrays are intended for numeric arrays, since they have the magic updating of their "length" property which regular objects lack.
2013-12-16javascript: fix missing type destructionPaul Gardiner
2013-12-16JavaScriptCore-based implementation of the MuPDF JS engine APIPaul Gardiner
2013-07-19Initial work on progressive loadingRobin Watts
We are testing this using a new -p flag to mupdf that sets a bitrate at which data will appear to arrive progressively as time goes on. For example: mupdf -p 102400 pdf_reference17.pdf Details of the scheme used here are presented in docs/progressive.txt
2013-06-26Silence compiler warnings.Tor Andersson
2013-06-25Update pdf_obj's to have a pdf_document field.Robin Watts
Remove the fz_context field to avoid the structure growing.
2013-06-20Rearrange source files.Tor Andersson