Gitweb links:

...log 
http://git.netsurf-browser.org/nsgenbind.git/shortlog/4ab82071ee417d4e82bfff8d3ca9619e3efc8b92
...commit 
http://git.netsurf-browser.org/nsgenbind.git/commit/4ab82071ee417d4e82bfff8d3ca9619e3efc8b92
...tree 
http://git.netsurf-browser.org/nsgenbind.git/tree/4ab82071ee417d4e82bfff8d3ca9619e3efc8b92

The branch, tlsa/duktape2 has been created
        at  4ab82071ee417d4e82bfff8d3ca9619e3efc8b92 (commit)

- Log -----------------------------------------------------------------
commitdiff 
http://git.netsurf-browser.org/nsgenbind.git/commit/?id=4ab82071ee417d4e82bfff8d3ca9619e3efc8b92
commit 4ab82071ee417d4e82bfff8d3ca9619e3efc8b92
Author: Michael Drake <[email protected]>
Commit: Michael Drake <[email protected]>

    Operation generation: When argument type errors are detected, treat as 
error.

diff --git a/src/duk-libdom-interface.c b/src/duk-libdom-interface.c
index 5b15164..bb506c8 100644
--- a/src/duk-libdom-interface.c
+++ b/src/duk-libdom-interface.c
@@ -1025,7 +1025,7 @@ output_operation_argument_type_check(
         case WEBIDL_TYPE_BOOL:
                 fprintf(outf,
                         "\t\tif (!duk_is_boolean(ctx, %d)) {\n"
-                        "\t\t\t(void) duk_error(ctx, DUK_ERR_ERROR, 
%s_error_fmt_bool_type, %d, \"%s\");\n"
+                        "\t\t\treturn duk_error(ctx, DUK_ERR_ERROR, 
%s_error_fmt_bool_type, %d, \"%s\");\n"
                         "\t\t}\n", argidx, DLPFX, argidx, argumente->name);
                 break;
 
@@ -1036,7 +1036,7 @@ output_operation_argument_type_check(
         case WEBIDL_TYPE_LONGLONG:
                 fprintf(outf,
                         "\t\tif (!duk_is_number(ctx, %d)) {\n"
-                        "\t\t\t(void) duk_error(ctx, DUK_ERR_ERROR, 
%s_error_fmt_number_type, %d, \"%s\");\n"
+                        "\t\t\treturn duk_error(ctx, DUK_ERR_ERROR, 
%s_error_fmt_number_type, %d, \"%s\");\n"
                         "\t\t}\n", argidx, DLPFX, argidx, argumente->name);
                 break;
 
@@ -1106,7 +1106,7 @@ output_interface_operation(FILE* outf,
                 fprintf(outf,
                         "if (%s_argc < %d) {\n"
                         "\t\t/* not enough arguments */\n"
-                        "\t\t(void) duk_error(ctx, DUK_RET_TYPE_ERROR, 
%s_error_fmt_argument, %d, %s_argc);\n"
+                        "\t\treturn duk_error(ctx, DUK_RET_TYPE_ERROR, 
%s_error_fmt_argument, %d, %s_argc);\n"
                         "\t} else ",
                         DLPFX,
                         fixedargc,


commitdiff 
http://git.netsurf-browser.org/nsgenbind.git/commit/?id=632a75e6c2a965d984c1495750bfca47931cec94
commit 632a75e6c2a965d984c1495750bfca47931cec94
Author: Michael Drake <[email protected]>
Commit: Michael Drake <[email protected]>

    Duktape 2.X: duk_error now returns a duk_ret_t
    
    
https://github.com/svaarala/duktape/blob/master/doc/release-notes-v2-0.rst#duk_error-duk_error_va-duk_throw-duk_fatal-have-a-return-value
    
    This change suppress warnings about ignoring the return value.
    
    However, it looks like we should be returning error in these cases
    rather than continuing.
    
    I'll do that in a separate commit.

diff --git a/src/duk-libdom-interface.c b/src/duk-libdom-interface.c
index 6746348..5b15164 100644
--- a/src/duk-libdom-interface.c
+++ b/src/duk-libdom-interface.c
@@ -1025,7 +1025,7 @@ output_operation_argument_type_check(
         case WEBIDL_TYPE_BOOL:
                 fprintf(outf,
                         "\t\tif (!duk_is_boolean(ctx, %d)) {\n"
-                        "\t\t\tduk_error(ctx, DUK_ERR_ERROR, 
%s_error_fmt_bool_type, %d, \"%s\");\n"
+                        "\t\t\t(void) duk_error(ctx, DUK_ERR_ERROR, 
%s_error_fmt_bool_type, %d, \"%s\");\n"
                         "\t\t}\n", argidx, DLPFX, argidx, argumente->name);
                 break;
 
@@ -1036,7 +1036,7 @@ output_operation_argument_type_check(
         case WEBIDL_TYPE_LONGLONG:
                 fprintf(outf,
                         "\t\tif (!duk_is_number(ctx, %d)) {\n"
-                        "\t\t\tduk_error(ctx, DUK_ERR_ERROR, 
%s_error_fmt_number_type, %d, \"%s\");\n"
+                        "\t\t\t(void) duk_error(ctx, DUK_ERR_ERROR, 
%s_error_fmt_number_type, %d, \"%s\");\n"
                         "\t\t}\n", argidx, DLPFX, argidx, argumente->name);
                 break;
 
@@ -1106,7 +1106,7 @@ output_interface_operation(FILE* outf,
                 fprintf(outf,
                         "if (%s_argc < %d) {\n"
                         "\t\t/* not enough arguments */\n"
-                        "\t\tduk_error(ctx, DUK_RET_TYPE_ERROR, 
%s_error_fmt_argument, %d, %s_argc);\n"
+                        "\t\t(void) duk_error(ctx, DUK_RET_TYPE_ERROR, 
%s_error_fmt_argument, %d, %s_argc);\n"
                         "\t} else ",
                         DLPFX,
                         fixedargc,


commitdiff 
http://git.netsurf-browser.org/nsgenbind.git/commit/?id=343df77dedb346425c40e6a364ad639c73e92527
commit 343df77dedb346425c40e6a364ad639c73e92527
Author: Michael Drake <[email protected]>
Commit: Michael Drake <[email protected]>

    Duktape 2.x: duk_safe_call callbacks now have a void ptr user data param.
    
    
https://github.com/svaarala/duktape/blob/master/doc/release-notes-v2-0.rst#duk_safe_call-userdata

diff --git a/src/duk-libdom-interface.c b/src/duk-libdom-interface.c
index 8741815..6746348 100644
--- a/src/duk-libdom-interface.c
+++ b/src/duk-libdom-interface.c
@@ -747,7 +747,7 @@ output_interface_prototype(FILE* outf,
                                              GENBIND_METHOD_TYPE_PROTOTYPE);
 
         /* prototype definition */
-        fprintf(outf, "duk_ret_t %s_%s___proto(duk_context *ctx)\n",
+        fprintf(outf, "duk_ret_t %s_%s___proto(duk_context *ctx, void 
*udata)\n",
                 DLPFX, interfacee->class_name);
         fprintf(outf,"{\n");
 
@@ -1511,7 +1511,7 @@ int output_interface_declaration(FILE* outf, struct 
ir_entry *interfacee)
         }
 
         /* prototype declaration */
-        fprintf(outf, "duk_ret_t %s_%s___proto(duk_context *ctx);\n",
+        fprintf(outf, "duk_ret_t %s_%s___proto(duk_context *ctx, void 
*udata);\n",
                 DLPFX, interfacee->class_name);
 
         /* if the interface has no references (no other interface inherits from
diff --git a/src/duk-libdom.c b/src/duk-libdom.c
index bf27007..96b11d5 100644
--- a/src/duk-libdom.c
+++ b/src/duk-libdom.c
@@ -441,7 +441,7 @@ output_binding_src(struct ir *ir)
                 "{\n"
                 "\tduk_int_t ret;\n"
                 "\tduk_push_object(ctx);\n"
-                "\tif ((ret = duk_safe_call(ctx, genproto, 1, 1)) != 
DUK_EXEC_SUCCESS) {\n"
+                "\tif ((ret = duk_safe_call(ctx, genproto, NULL, 1, 1)) != 
DUK_EXEC_SUCCESS) {\n"
                 "\t\tduk_pop(ctx);\n"
                 "\t\tLOG(\"Failed to register prototype for %%s\", proto_name 
+ 2);\n"
                 "\t\treturn ret;\n"


-----------------------------------------------------------------------


-- 
NetSurf Generator for JavaScript bindings

_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org

Reply via email to