summaryrefslogtreecommitdiff
path: root/modules/websocket
diff options
context:
space:
mode:
authorFabio Alessandrelli <fabio.alessandrelli@gmail.com>2020-11-19 16:54:07 +0100
committerFabio Alessandrelli <fabio.alessandrelli@gmail.com>2020-11-21 14:22:40 +0100
commita82f70ea9f98ed0a602a20f7fe8954f6e4200b25 (patch)
tree75ef59bc0eb696fde867007a4336381b4436a67a /modules/websocket
parent48049b8d9e3830ddea5c6844997d928871c16d27 (diff)
[HTML5] Libraries refactor for linting.
Initial work to make liniting easier. This includes: - Rename http_request.js to library_godot_http_request.js. - Rename externs.js to engine.externs.js. - New library_godot_runtime.js (GodotRuntime) wraps around emscripten functions. - Refactor of XMLHttpRequest handler in engine/preloader.js. - Few fixes to bugs spotted by early stage linting.
Diffstat (limited to 'modules/websocket')
-rw-r--r--modules/websocket/library_godot_websocket.js40
1 files changed, 20 insertions, 20 deletions
diff --git a/modules/websocket/library_godot_websocket.js b/modules/websocket/library_godot_websocket.js
index 7076a6f43d..0856cb13e6 100644
--- a/modules/websocket/library_godot_websocket.js
+++ b/modules/websocket/library_godot_websocket.js
@@ -28,9 +28,9 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-var GodotWebSocket = {
+const GodotWebSocket = {
// Our socket implementation that forwards events to C++.
- $GodotWebSocket__deps: ['$IDHandler'],
+ $GodotWebSocket__deps: ['$IDHandler', '$GodotRuntime'],
$GodotWebSocket: {
// Connection opened, report selected protocol
_onopen: function(p_id, callback, event) {
@@ -38,9 +38,9 @@ var GodotWebSocket = {
if (!ref) {
return; // Godot object is gone.
}
- let c_str = GodotOS.allocString(ref.protocol);
+ let c_str = GodotRuntime.allocString(ref.protocol);
callback(c_str);
- _free(c_str);
+ GodotRuntime.free(c_str);
},
// Message received, report content and type (UTF8 vs binary)
@@ -54,21 +54,21 @@ var GodotWebSocket = {
if (event.data instanceof ArrayBuffer) {
buffer = new Uint8Array(event.data);
} else if (event.data instanceof Blob) {
- alert("Blob type not supported");
+ GodotRuntime.error("Blob type not supported");
return;
} else if (typeof event.data === "string") {
is_string = 1;
var enc = new TextEncoder("utf-8");
buffer = new Uint8Array(enc.encode(event.data));
} else {
- alert("Unknown message type");
+ GodotRuntime.error("Unknown message type");
return;
}
var len = buffer.length*buffer.BYTES_PER_ELEMENT;
- var out = _malloc(len);
+ var out = GodotRuntime.malloc(len);
HEAPU8.set(buffer, out);
callback(out, len, is_string);
- _free(out);
+ GodotRuntime.free(out);
},
// An error happened, 'onclose' will be called after this.
@@ -86,15 +86,15 @@ var GodotWebSocket = {
if (!ref) {
return; // Godot object is gone.
}
- let c_str = GodotOS.allocString(event.reason);
+ let c_str = GodotRuntime.allocString(event.reason);
callback(event.code, c_str, event.wasClean ? 1 : 0);
- _free(c_str);
+ GodotRuntime.free(c_str);
},
// Send a message
send: function(p_id, p_data) {
const ref = IDHandler.get(p_id);
- if (!ref || ref.readyState != ref.OPEN) {
+ if (!ref || ref.readyState !== ref.OPEN) {
return 1; // Godot object is gone or socket is not in a ready state.
}
ref.send(p_data);
@@ -115,7 +115,7 @@ var GodotWebSocket = {
const ref = IDHandler.get(p_id);
if (ref && ref.readyState < ref.CLOSING) {
const code = p_code;
- const reason = UTF8ToString(p_reason);
+ const reason = GodotRuntime.parseString(p_reason);
ref.close(code, reason);
}
},
@@ -136,12 +136,12 @@ var GodotWebSocket = {
},
godot_js_websocket_create: function(p_ref, p_url, p_proto, p_on_open, p_on_message, p_on_error, p_on_close) {
- const on_open = GodotOS.get_func(p_on_open).bind(null, p_ref);
- const on_message = GodotOS.get_func(p_on_message).bind(null, p_ref);
- const on_error = GodotOS.get_func(p_on_error).bind(null, p_ref);
- const on_close = GodotOS.get_func(p_on_close).bind(null, p_ref);
- const url = UTF8ToString(p_url);
- const protos = UTF8ToString(p_proto);
+ const on_open = GodotRuntime.get_func(p_on_open).bind(null, p_ref);
+ const on_message = GodotRuntime.get_func(p_on_message).bind(null, p_ref);
+ const on_error = GodotRuntime.get_func(p_on_error).bind(null, p_ref);
+ const on_close = GodotRuntime.get_func(p_on_close).bind(null, p_ref);
+ const url = GodotRuntime.parseString(p_url);
+ const protos = GodotRuntime.parseString(p_proto);
var socket = null;
try {
if (protos) {
@@ -160,7 +160,7 @@ var GodotWebSocket = {
var bytes_array = new Uint8Array(p_buf_len);
var i = 0;
for(i = 0; i < p_buf_len; i++) {
- bytes_array[i] = getValue(p_buf + i, 'i8');
+ bytes_array[i] = GodotRuntime.getHeapValue(p_buf + i, 'i8');
}
var out = bytes_array.buffer;
if (!p_raw) {
@@ -171,7 +171,7 @@ var GodotWebSocket = {
godot_js_websocket_close: function(p_id, p_code, p_reason) {
const code = p_code;
- const reason = UTF8ToString(p_reason);
+ const reason = GodotRuntime.parseString(p_reason);
GodotWebSocket.close(p_id, code, reason);
},