aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/library.js53
-rw-r--r--src/library_sdl.js5
2 files changed, 33 insertions, 25 deletions
diff --git a/src/library.js b/src/library.js
index 591d4350..69f413d2 100644
--- a/src/library.js
+++ b/src/library.js
@@ -135,17 +135,24 @@ LibraryManager.library = {
// compatibility
var readMode = {{{ cDefine('S_IRUGO') }}} | {{{ cDefine('S_IXUGO') }}};
var writeMode = {{{ cDefine('S_IWUGO') }}};
- Object.defineProperty(node, 'read', {
- get: function() { return (node.mode & readMode) === readMode; },
- set: function(val) { val ? node.mode |= readMode : node.mode &= ~readMode; }
- });
- Object.defineProperty(node, 'write', {
- get: function() { return (node.mode & writeMode) === writeMode; },
- set: function(val) { val ? node.mode |= writeMode : node.mode &= ~writeMode; }
+ // NOTE we must use Object.defineProperties instead of individual calls to
+ // Object.defineProperty in order to make closure compiler happy
+ Object.defineProperties(node, {
+ read: {
+ get: function() { return (node.mode & readMode) === readMode; },
+ set: function(val) { val ? node.mode |= readMode : node.mode &= ~readMode; }
+ },
+ write: {
+ get: function() { return (node.mode & writeMode) === writeMode; },
+ set: function(val) { val ? node.mode |= writeMode : node.mode &= ~writeMode; }
+ },
+ isFolder: {
+ get: function() { return FS.isDir(node.mode); },
+ },
+ isDevice: {
+ get: function() { return FS.isChrdev(node.mode); },
+ },
});
- // TODO add:
- // isFolder
- // isDevice
FS.hashAddNode(node);
return node;
},
@@ -421,18 +428,20 @@ LibraryManager.library = {
var fd = FS.nextfd(fd_start, fd_end);
stream.fd = fd;
// compatibility
- Object.defineProperty(stream, 'object', {
- get: function() { return stream.node; },
- set: function(val) { stream.node = val; }
- });
- Object.defineProperty(stream, 'isRead', {
- get: function() { return (stream.flags & {{{ cDefine('O_ACCMODE') }}}) !== {{{ cDefine('O_WRONLY') }}}; }
- });
- Object.defineProperty(stream, 'isWrite', {
- get: function() { return (stream.flags & {{{ cDefine('O_ACCMODE') }}}) !== {{{ cDefine('O_RDONLY') }}}; }
- });
- Object.defineProperty(stream, 'isAppend', {
- get: function() { return (stream.flags & {{{ cDefine('O_APPEND') }}}); }
+ Object.defineProperties(stream, {
+ object: {
+ get: function() { return stream.node; },
+ set: function(val) { stream.node = val; }
+ },
+ isRead: {
+ get: function() { return (stream.flags & {{{ cDefine('O_ACCMODE') }}}) !== {{{ cDefine('O_WRONLY') }}}; }
+ },
+ isWrite: {
+ get: function() { return (stream.flags & {{{ cDefine('O_ACCMODE') }}}) !== {{{ cDefine('O_RDONLY') }}}; }
+ },
+ isAppend: {
+ get: function() { return (stream.flags & {{{ cDefine('O_APPEND') }}}); }
+ }
});
FS.streams[fd] = stream;
return stream;
diff --git a/src/library_sdl.js b/src/library_sdl.js
index 64984628..24f3de1b 100644
--- a/src/library_sdl.js
+++ b/src/library_sdl.js
@@ -1509,8 +1509,7 @@ var LibrarySDL = {
var bytes;
if (rwops.filename !== undefined) {
- filename = rwops.filename;
- filename = FS.standardizePath(filename);
+ filename = PATH.resolve(rwops.filename);
var raw = Module["preloadedAudios"][filename];
if (!raw) {
if (raw === null) Module.printErr('Trying to reuse preloaded audio, but freePreloadedMediaOnUse is set!');
@@ -1523,7 +1522,7 @@ var LibrarySDL = {
// We found the file. Load the contents
if (fileObject && !fileObject.isFolder && fileObject.read) {
- bytes = fileObject.contents
+ bytes = fileObject.contents;
} else {
return 0;
}