Commit Graph

141 Commits

Author SHA1 Message Date
Daniel Silverstone
3ba50e8574 Force a GC to ensure old compartment goes away
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-05 18:51:41 +01:00
Daniel Silverstone
ac512958ff Ensure we clear the cbt entry after finishing a non-recurring callback
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-05 18:51:25 +01:00
Vincent Sanders
e27df0c0b8 make missing xxd command fail the build correctly 2019-05-05 16:07:27 +01:00
Daniel Silverstone
9a3b644bf0 Replace zd with PRIsizet to appease Windows
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-05 14:55:08 +01:00
Daniel Silverstone
4394dbd9d4 Add missing semi-colon. Sorry
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 23:15:13 +01:00
Daniel Silverstone
6dfc0f1486 Support nodelist indexing
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 23:06:20 +01:00
Vincent Sanders
38a65c0242 add some comments to window location binding 2019-05-04 22:48:50 +01:00
Daniel Silverstone
274b4a2d2e Support Document::createDocumentFragment
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 21:56:07 +01:00
Daniel Silverstone
2f1526653f Expose Number and Error on Window
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 21:55:54 +01:00
Daniel Silverstone
85a4792280 Add createElementNS
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 17:57:45 +01:00
Daniel Silverstone
ed829a4772 JS: Attribute external JS to the URI it came from in backtraces
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 17:32:17 +01:00
Daniel Silverstone
8009444918 Expose encodeURI{,Component}
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 17:31:46 +01:00
Daniel Silverstone
83f24af275 Restore newlines for unimplemented javascript in doxygen
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 17:03:46 +01:00
Daniel Silverstone
36d83668c2 Support Window as an event target for dukky
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 15:49:21 +01:00
Daniel Silverstone
e4f57437f6 Unref body when finished getting event handler
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 15:01:15 +01:00
Daniel Silverstone
99809ee646 Better dukky debug for node creation
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 15:01:15 +01:00
Daniel Silverstone
19b45fb494 Support script insertion after conversion has begun
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-04 12:18:21 +01:00
Daniel Silverstone
90cabaf8c8 Add auto-generated getters and setters for HTMLFrameSetElement events
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-03 14:30:10 +01:00
Daniel Silverstone
ed9894d750 Add auto-generated getters/setters on body element
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-03 14:26:12 +01:00
Daniel Silverstone
dd02849df0 Add global handlers to Window
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-03 13:45:24 +01:00
Daniel Silverstone
b2e4c2ec58 UnimplementedJavascript.txt: Remove spurious newlines
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-03 13:39:07 +01:00
Daniel Silverstone
4f9a373960 Support Document::createEvent()
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-03 13:32:23 +01:00
Daniel Silverstone
2739a47d83 Event: Implement initEvent() and getter isTrusted
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-03 12:20:10 +01:00
Daniel Silverstone
177a047752 Update UnimplementedJavascript with the window functions now implemented
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-03 11:54:38 +01:00
Daniel Silverstone
c17e588b66 Javascript: Support setTimeout and friends
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-03 11:33:07 +01:00
Daniel Silverstone
519f029420 dukky: Clean up the logging levels a little
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-02 21:18:30 +01:00
Daniel Silverstone
d4d57bc0ed DUKKY: Remove LOG/JS_LOG macros, update to dukky category
Update the logging levels, change to NSLOG across the board,
and ensure that we use the `dukky` category now added for us.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-02-17 11:33:37 +00:00
Daniel Silverstone
41eed8eeaf Use NSLOG rather than LOG/JS_LOG
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-02-17 11:33:28 +00:00
Vincent Sanders
5b235b5195 fix logging level in duktape binding 2018-11-06 21:54:03 +00:00
Daniel Silverstone
44082f9988 Slightly nicer handling of js_exec() and errors 2018-11-04 09:56:41 +00:00
Michael Drake
0601b7dbec Duktape: Make declaration match definition for memcmp and double_div. 2018-08-10 12:30:48 +01:00
Michael Drake
80e8c74a69 Duktape: Make declaration match definition for duk_refzero_check_fast() 2018-08-10 11:30:17 +01:00
Michael Drake
ad0a75af8f Duktape: Make declarations match definitions for fastint-enabled functions. 2018-08-10 11:29:39 +01:00
Michael Drake
e5f2ea9d7a Duktape: Make declarations match definitions for duk_raw_read_xxx_be 2018-08-10 11:28:27 +01:00
Michael Drake
c986c212bf Duktape: Make declarations match definitions for inline functions. 2018-08-10 11:27:56 +01:00
Michael Drake
f5f2ebb37a Duktape: Prevent clang static analysis. 2018-08-10 11:12:20 +01:00
Michael Drake
ae126cfdd5 Duktape: Update to version 2.3.0 release. 2018-08-10 11:11:08 +01:00
Michael Drake
09b015bf11 Browser: Rename function to access bw URL. 2018-07-23 10:47:26 +01:00
Vincent Sanders
2a03ea3049 move html and text content handlers where they belong 2018-05-10 13:37:02 +01:00
Michael Drake
6e0e3ea81f Duktape: Squash armhf warnings.
content/handlers/javascript/duktape/duktape.c: In function 'duk_resolve_nonbound_function':
content/handlers/javascript/duktape/duktape.c:14609:25: warning: cast increases required alignment of target type [-Wcast-align]
    duk_push_tval(thr, &((duk_hboundfunc *) h)->target);
                         ^
content/handlers/javascript/duktape/duktape.c: In function 'duk_bi_function_prototype_bind':
content/handlers/javascript/duktape/duktape.c:32423:20: warning: cast increases required alignment of target type [-Wcast-align]
    h_boundtarget = (duk_hboundfunc *) h_target;
                    ^
content/handlers/javascript/duktape/duktape.c: In function 'duk_free_hobject':
content/handlers/javascript/duktape/duktape.c:46072:23: warning: cast increases required alignment of target type [-Wcast-align]
   duk_hboundfunc *f = (duk_hboundfunc *) h;
                       ^
content/handlers/javascript/duktape/duktape.c: In function 'duk__mark_hobject':
content/handlers/javascript/duktape/duktape.c:47889:23: warning: cast increases required alignment of target type [-Wcast-align]
   duk_hboundfunc *f = (duk_hboundfunc *) h;
                       ^
content/handlers/javascript/duktape/duktape.c: In function 'duk_hobject_refcount_finalize_norz':
content/handlers/javascript/duktape/duktape.c:49866:23: warning: cast increases required alignment of target type [-Wcast-align]
   duk_hboundfunc *f = (duk_hboundfunc *) h;
                       ^
content/handlers/javascript/duktape/duktape.c: In function 'duk__handle_bound_chain_for_call':
content/handlers/javascript/duktape/duktape.c:61533:14: warning: cast increases required alignment of target type [-Wcast-align]
    h_bound = (duk_hboundfunc *) func;
              ^
content/handlers/javascript/duktape/duktape.c: In function 'duk_js_instanceof':
content/handlers/javascript/duktape/duktape.c:78165:24: warning: cast increases required alignment of target type [-Wcast-align]
   duk_push_tval(thr, &((duk_hboundfunc *) func)->target);
                        ^
2018-05-08 12:21:41 +01:00
Michael Drake
8319ead530 Duktape: Squash -Wcast-align warnings on armhf. 2018-05-05 21:19:36 +01:00
Michael Drake
0ee536b083 Duktape: Make declarations match definitions for inline functions. 2018-05-04 16:54:36 +01:00
Michael Drake
dcb12cab51 Duktape: Make declarations match definitions for fastint-enabled functions. 2018-05-04 16:54:33 +01:00
Michael Drake
4bf20cc693 Duktape: Make declaration match definition for duk_refzero_check_fast() 2018-05-04 16:54:30 +01:00
Michael Drake
f6073cd699 Duktape: Make declarations match definitions for duk_raw_read_xxx_be 2018-05-04 16:54:27 +01:00
Michael Drake
af8bde6214 Duktape: Prevent clang static analysis. 2018-05-04 16:54:23 +01:00
Michael Drake
b16b525cd3 Duktape: Update to 2.2.1 release. 2018-05-04 16:50:55 +01:00
Vincent Sanders
f3eb366679 Fix dependency declaration for dukky.c 2018-04-21 11:54:09 +01:00
Michael Drake
046977507b Duktape: Squash -Wcast-align warnings on armhf. 2017-11-02 16:34:59 +00:00
Michael Drake
8f73414c06 Revert "Duktape: Attempt to squash aarch64 cast increases required alignment warnings."
This reverts commit 8cc3adee5a.

These warnings don't show up with the CI updated to Debian Stretch.
2017-11-01 16:02:20 +00:00
Michael Drake
8cc3adee5a Duktape: Attempt to squash aarch64 cast increases required alignment warnings.
content/handlers/javascript/duktape/duktape.c: In function 'duk_resolve_nonbound_function':
content/handlers/javascript/duktape/duktape.c:14585:25: error: cast increases required alignment of target type [-Werror=cast-align]
duk_push_tval(thr, &((duk_hboundfunc *) h)->target);
^
content/handlers/javascript/duktape/duktape.c: In function 'duk_bi_function_prototype_bind':
content/handlers/javascript/duktape/duktape.c:32399:20: error: cast increases required alignment of target type [-Werror=cast-align]
h_boundtarget = (duk_hboundfunc *) h_target;
^
content/handlers/javascript/duktape/duktape.c: In function 'duk_free_hobject':
content/handlers/javascript/duktape/duktape.c:46048:23: error: cast increases required alignment of target type [-Werror=cast-align]
duk_hboundfunc *f = (duk_hboundfunc *) h;
^
content/handlers/javascript/duktape/duktape.c: In function 'duk__mark_hobject':
content/handlers/javascript/duktape/duktape.c:47865:23: error: cast increases required alignment of target type [-Werror=cast-align]
duk_hboundfunc *f = (duk_hboundfunc *) h;
^
content/handlers/javascript/duktape/duktape.c: In function 'duk_hobject_refcount_finalize_norz':
content/handlers/javascript/duktape/duktape.c:49842:23: error: cast increases required alignment of target type [-Werror=cast-align]
duk_hboundfunc *f = (duk_hboundfunc *) h;
^
content/handlers/javascript/duktape/duktape.c: In function 'duk__handle_bound_chain_for_call':
content/handlers/javascript/duktape/duktape.c:61509:14: error: cast increases required alignment of target type [-Werror=cast-align]
h_bound = (duk_hboundfunc *) func;
^
content/handlers/javascript/duktape/duktape.c: In function 'duk_js_instanceof':
content/handlers/javascript/duktape/duktape.c:78117:24: error: cast increases required alignment of target type [-Werror=cast-align]
duk_push_tval(thr, &((duk_hboundfunc *) func)->target);
^
2017-10-30 16:50:38 +00:00
Michael Drake
448228a30c Duktape: Use align-by-8 on all platforms by default
This reproduces upstream commit de7ae8a2ecc597e1c2024c15dbeae4d28c9f2a2c.

*   de7ae8a2ec

It was applied to master after the release of Duktape 2.2.0.  See also:

*   https://github.com/svaarala/duktape/issues/1783
*   https://github.com/svaarala/duktape/issues/812#issuecomment-337058737
2017-10-29 15:17:06 +00:00
Michael Drake
0687687c37 Duktape: Revert alignment of struct duk_hobject. 2017-10-29 15:16:21 +00:00
Michael Drake
ea7da966de Duktape: Another attempt to squash aarch64 increases required alignment warnings. 2017-10-29 14:50:10 +00:00
Michael Drake
6619be2b72 Duktape: Attempt to squash aarch64 cast increases required alignment warnings.
content/handlers/javascript/duktape/duktape.c: In function 'duk_resolve_nonbound_function':
content/handlers/javascript/duktape/duktape.c:14585:25: error: cast increases required alignment of target type [-Werror=cast-align]
duk_push_tval(thr, &((duk_hboundfunc *) h)->target);
^
content/handlers/javascript/duktape/duktape.c: In function 'duk_bi_function_prototype_bind':
content/handlers/javascript/duktape/duktape.c:32399:20: error: cast increases required alignment of target type [-Werror=cast-align]
h_boundtarget = (duk_hboundfunc *) h_target;
^
content/handlers/javascript/duktape/duktape.c: In function 'duk_free_hobject':
content/handlers/javascript/duktape/duktape.c:46048:23: error: cast increases required alignment of target type [-Werror=cast-align]
duk_hboundfunc *f = (duk_hboundfunc *) h;
^
content/handlers/javascript/duktape/duktape.c: In function 'duk__mark_hobject':
content/handlers/javascript/duktape/duktape.c:47865:23: error: cast increases required alignment of target type [-Werror=cast-align]
duk_hboundfunc *f = (duk_hboundfunc *) h;
^
content/handlers/javascript/duktape/duktape.c: In function 'duk_hobject_refcount_finalize_norz':
content/handlers/javascript/duktape/duktape.c:49842:23: error: cast increases required alignment of target type [-Werror=cast-align]
duk_hboundfunc *f = (duk_hboundfunc *) h;
^
content/handlers/javascript/duktape/duktape.c: In function 'duk__handle_bound_chain_for_call':
content/handlers/javascript/duktape/duktape.c:61509:14: error: cast increases required alignment of target type [-Werror=cast-align]
h_bound = (duk_hboundfunc *) func;
^
content/handlers/javascript/duktape/duktape.c: In function 'duk_js_instanceof':
content/handlers/javascript/duktape/duktape.c:78117:24: error: cast increases required alignment of target type [-Werror=cast-align]
duk_push_tval(thr, &((duk_hboundfunc *) func)->target);
^
2017-10-29 14:02:10 +00:00
Michael Drake
a47edd3733 Duktape: Make declarations match definitions for inline functions. 2017-10-21 16:33:03 +01:00
Michael Drake
8e7fc8e2ac Duktape: Make declarations match definitions for fastint-enabled functions.
Restore ff20edbfbe for 2.2.0 import.
2017-10-21 16:23:16 +01:00
Michael Drake
0759139c61 Duktape: Make declaration match definition for duk_refzero_check_fast()
Restore 9a8577fead for 2.2.0 import.
2017-10-21 16:21:48 +01:00
Michael Drake
0a7f62ceb0 Duktape: Make declarations match definitions for duk_raw_read_xxx_be
Restore 6d63f7959a for 2.2.0 import.
2017-10-21 16:20:33 +01:00
Michael Drake
6f33e48ca3 Duktape: Prevent clang static analysis.
Restore 336326af3a for 2.2.0 import.
2017-10-21 15:54:33 +01:00
Michael Drake
3356906904 Duktape: Update to 2.2.0 release. 2017-10-21 15:51:55 +01:00
Vincent Sanders
63f5ba6f62 update bindings with logging changes 2017-09-06 18:45:35 +01:00
Vincent Sanders
75018632a9 Use coccinelle to change logging macro calls in c files
for F in $(git ls-files '*.c');do spatch --sp-file foo.cocci --in-place ${F};done

@@ expression E; @@
-LOG(E);
+NSLOG(netsurf, INFO, E);
@@ expression E, E1; @@
-LOG(E, E1);
+NSLOG(netsurf, INFO, E, E1);
@@ expression E, E1, E2; @@
-LOG(E, E1, E2);
+NSLOG(netsurf, INFO, E, E1, E2);
@@ expression E, E1, E2, E3; @@
-LOG(E, E1, E2, E3);
+NSLOG(netsurf, INFO, E, E1, E2, E3);
@@ expression E, E1, E2, E3, E4; @@
-LOG(E, E1, E2, E3, E4);
+NSLOG(netsurf, INFO, E, E1, E2, E3, E4);
@@ expression E, E1, E2, E3, E4, E5; @@
-LOG(E, E1, E2, E3, E4, E5);
+NSLOG(netsurf, INFO, E, E1, E2, E3, E4, E5);
@@ expression E, E1, E2, E3, E4, E5, E6; @@
-LOG(E, E1, E2, E3, E4, E5, E6);
+NSLOG(netsurf, INFO, E, E1, E2, E3, E4, E5, E6);
@@ expression E, E1, E2, E3, E4, E5, E6, E7; @@
-LOG(E, E1, E2, E3, E4, E5, E6, E7);
+NSLOG(netsurf, INFO, E, E1, E2, E3, E4, E5, E6, E7);
2017-09-06 18:45:27 +01:00
Vincent Sanders
8d9b2efc11 use nslog library for logging if available. 2017-09-03 23:40:32 +01:00
Michael Drake
ff20edbfbe Duktape: Make declarations match definitions for fastint-enabled functions. 2017-04-21 11:33:28 +01:00
Michael Drake
6da983ca27 Duktape: Enable fastints.
Suggested by svaarala.
2017-04-20 12:12:29 +01:00
Michael Drake
9a8577fead Duktape: Make declaration match definition for duk_refzero_check_fast() 2017-04-16 17:36:25 +01:00
Michael Drake
40e589531e Duktape: Make declarations match definitions for duk_raw_read_xxx_be
Restore 6d63f7959a for 2.1.0 import.
2017-04-16 16:58:57 +01:00
Michael Drake
8449b13a3a Duktape: Prevent clang static analysis.
Restore 336326af3a for 2.1.0 import.
2017-04-16 16:58:35 +01:00
Michael Drake
db9b0dfe00 Duktape: Update to 2.1.0 release. 2017-04-16 16:57:01 +01:00
Michael Drake
0a0e7b5bd7 Duktape: Suppress warnings about increasing alignment of pointer type. 2017-03-23 17:52:28 +00:00
Michael Drake
ae793a3ad9 Duktape: Atari Mint lacks trunc, log2 and cbrt.
build/Linux-atari/content_handlers_javascript_duktape_duktape.o:build/Linux-atari/content_handlers_javascript_duktape_duktape.o:(.text+0x978): undefined reference to `_trunc'

build/Linux-atari/content_handlers_javascript_duktape_duktape.o:build/Linux-atari/content_handlers_javascript_duktape_duktape.o:(.text+0x990): undefined reference to `_log2'

build/Linux-atari/content_handlers_javascript_duktape_duktape.o:build/Linux-atari/content_handlers_javascript_duktape_duktape.o:(.text+0x99c): undefined reference to `_cbrt'
2017-03-23 16:02:48 +00:00
Michael Drake
bc204a469a Duktape: Make declarations match definitions for duk_raw_read_xxx_be
Restore 6d63f7959a for 2.0.2 import.
2017-03-23 15:30:22 +00:00
Michael Drake
c98fc7999a Duktape: Prevent clang static analysis.
Restore 336326af3a for 2.0.2 import.
2017-03-23 14:56:32 +00:00
Michael Drake
5d39972b9f 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 also changes Console.bnd to return on error, rather than ignoring it.
2017-03-23 14:56:32 +00:00
Michael Drake
ff8e5c99a0 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
2017-03-23 14:56:32 +00:00
Michael Drake
736bbbed71 Duktape 2.X: Update to Duktape 2.0.2.
Note that DUK_OPT_XXX feature selection has been removed.

This means we can't use `DUK_OPT_HAVE_CUSTOM_H`, so we need another
way to tell duktape about our custom header.

This means assembling our own duktape distribution with a
duktape "tools/configure.py" invocation.

Instructions for updating duktape have been added to NetSurf's
`Docs/` directory.

See:
https://github.com/svaarala/duktape/blob/master/doc/release-notes-v2-0.rst#duk_opt_xxx-feature-option-support-removed
2017-03-23 14:56:32 +00:00
Daniel Silverstone
8e9751d3b6 Add EventTarget binding
This adds the binding for EventTarget along with implementations for
addEventListener() removeEventListener() and dispatchEvent()
2017-02-05 12:39:46 +00:00
Daniel Silverstone
2858aec1c2 Add EventListener support to duktape binding.
This paves the way for EventTarget and its associated event listener support.
In particular it ensures the generic event handling we do supports the
semantics of the addEventListener() and removeEventListener() managed lists of
callbacks.
2017-02-05 12:05:04 +00:00
Daniel Silverstone
108cc0cebd Support fixed nsgenbind bindings 2017-02-05 11:20:08 +00:00
Vincent Sanders
6075feb487 create netsurf inttypes header to have portable integer formatting macros 2017-01-21 14:20:55 +00:00
Vincent Sanders
9be0f4ccaf fixup usage of directory creation macro in Makefiles 2017-01-07 13:21:25 +00:00
Michael Drake
770c277ccc Duktape: Prevent clang static analysis.
Restore 336326af3a for 1.6.0 import.
2016-12-28 15:06:08 +00:00
Michael Drake
539d5da5c4 Duktape: Make declarations match definitions for duk_raw_read_xxx_be
Restore 6d63f7959a for 1.6.0 import.
2016-12-28 15:04:08 +00:00
Michael Drake
7c03ae91fd Duktape: Update to version 1.6.0. 2016-12-28 15:01:03 +00:00
Vincent Sanders
af1f1f375d make nsgenbind call last in rule so faliures are noticed by make 2016-11-24 23:45:49 +00:00
Michael Drake
91d6215215 Duktape: Prevent clang static analysis.
Restore 336326af3a for 1.5.1 import.
2016-08-31 18:58:13 +01:00
Michael Drake
a64f8eb8a0 Duktape: Make declarations match definitions for duk_raw_read_xxx_be
Restore 6d63f7959a for 1.5.1 import.
2016-08-31 18:58:13 +01:00
Michael Drake
9800c5f298 Duktape: Update to version 1.5.1.
Version 1.5.1 includes some of our own fixes, reducing our delta
to upstream.

These should not be needed now:

    - 2cbb337756
      Squash harmless Clang warning introduced in Duktape 1.5.0.
    - 8f8cda2b48
      Fix Duktape on AmigaOS3 (thanks to Tygre and Sami)
2016-08-31 18:54:35 +01:00
Chris Young
8f8cda2b48 Fix Duktape on AmigaOS3 (thanks to Tygre and Sami) 2016-08-27 18:51:17 +01:00
Vincent Sanders
042fcb82b8 Move javascript content handler as appropriate for updated source format 2016-06-07 16:01:04 +01:00