packages feed

hs-duktape 0.1.1 → 0.1.2

raw patch · 6 files changed

+54/−22 lines, 6 filessetup-changed

Files

README.md view
@@ -72,14 +72,13 @@ ## Contributing  Please feel free to submit pull requests!-Bugfixes and simple non-breaking improvements will be accepted without any questions :-) -By participating in this project you agree to follow the [Contributor Code of Conduct](http://contributor-covenant.org/version/1/2/0/).+By participating in this project you agree to follow the [Contributor Code of Conduct](http://contributor-covenant.org/version/1/4/).  [The list of contributors is available on GitHub](https://github.com/myfreeweb/hs-duktape/graphs/contributors).  ## License  Licensed under the MIT license (see to the `LICENSE` file).  -Haskell bindings: Copyright (c) 2015 Greg V <greg@unrelenting.technology>  -Duktape: Copyright (c) 2013-2015 by Duktape authors (see duktape/AUTHORS.rst)+Haskell bindings: Copyright (c) 2015-2016 Greg V <greg@unrelenting.technology>  +Duktape: Copyright (c) 2013-2016 by Duktape authors (see duktape/AUTHORS.rst)
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
duktape/src/duktape.c view

file too large to diff

duktape/src/duktape.h view
@@ -1,11 +1,12 @@ /*- *  Duktape public API for Duktape 1.3.0.+ *  Duktape public API for Duktape 1.4.0.  *  See the API reference for documentation on call semantics.  *  The exposed API is inside the DUK_API_PUBLIC_H_INCLUDED  *  include guard.  Other parts of the header are Duktape  *  internal and related to platform/compiler/feature detection.  *- *  Git commit 675165f35ea3a5bac34ff4d0a58b007cc2f442dc (v1.3.0).+ *  Git commit cad6f595382a0cc1a7e4207794ade5be11b3e397 (v1.4.0).+ *  Git branch master.  *  *  See Duktape AUTHORS.rst and LICENSE.txt for copyright and  *  licensing information.@@ -19,7 +20,7 @@  *    *  (http://opensource.org/licenses/MIT)  *  - *  Copyright (c) 2013-2015 by Duktape authors (see AUTHORS.rst)+ *  Copyright (c) 2013-2016 by Duktape authors (see AUTHORS.rst)  *    *  Permission is hereby granted, free of charge, to any person obtaining a copy  *  of this software and associated documentation files (the "Software"), to deal@@ -70,6 +71,7 @@  *  * Legimet <legimet.calc@gmail.com>  *  * Karl Skomski <karl@skomski.com>  *  * Bruce Pascoe <fatcerberus1@gmail.com>+ *  * Ren\u00e9 Hollander <rene@rene8888.at>  *    *  Other contributions  *  ===================@@ -106,6 +108,7 @@  *  * https://github.com/sstruchtrup  *  * Michael Drake (https://github.com/tlsa)  *  * https://github.com/chris-y+ *  * Laurent Zubiaur (https://github.com/lzubiaur)  *    *  If you are accidentally missing from this list, send me an e-mail  *  (``sami.vaarala@iki.fi``) and I'll fix the omission.@@ -210,13 +213,16 @@  * have 99 for patch level (e.g. 0.10.99 would be a development version  * after 0.10.0 but before the next official release).  */-#define DUK_VERSION                       10300L+#define DUK_VERSION                       10400L -/* Git describe for Duktape build.  Useful for non-official snapshot builds- * so that application code can easily log which Duktape snapshot was used.- * Not available in the Ecmascript environment.+/* Git commit, describe, and branch for Duktape build.  Useful for+ * non-official snapshot builds so that application code can easily log+ * which Duktape snapshot was used.  Not available in the Ecmascript+ * environment.  */-#define DUK_GIT_DESCRIBE                  "v1.3.0"+#define DUK_GIT_COMMIT                    "cad6f595382a0cc1a7e4207794ade5be11b3e397"+#define DUK_GIT_DESCRIBE                  "v1.4.0"+#define DUK_GIT_BRANCH                    "master"  /* Duktape debug protocol version used by this build. */ #define DUK_DEBUG_PROTOCOL_VERSION        1@@ -238,6 +244,7 @@ #define DUK_API_ENTRY_STACK               64  /* Value types, used by e.g. duk_get_type() */+#define DUK_TYPE_MIN                      0 #define DUK_TYPE_NONE                     0    /* no value, e.g. invalid index */ #define DUK_TYPE_UNDEFINED                1    /* Ecmascript undefined */ #define DUK_TYPE_NULL                     2    /* Ecmascript null */@@ -248,6 +255,7 @@ #define DUK_TYPE_BUFFER                   7    /* fixed or dynamic, garbage collected byte buffer */ #define DUK_TYPE_POINTER                  8    /* raw void pointer */ #define DUK_TYPE_LIGHTFUNC                9    /* lightweight function pointer */+#define DUK_TYPE_MAX                      9  /* Value mask types, used by e.g. duk_get_type_mask() */ #define DUK_TYPE_MASK_NONE                (1 << DUK_TYPE_NONE)@@ -297,6 +305,12 @@ #define DUK_DEFPROP_HAVE_GETTER           (1 << 7)    /* set getter (given on value stack) */ #define DUK_DEFPROP_HAVE_SETTER           (1 << 8)    /* set setter (given on value stack) */ #define DUK_DEFPROP_FORCE                 (1 << 9)    /* force change if possible, may still fail for e.g. virtual properties */+#define DUK_DEFPROP_SET_WRITABLE          (DUK_DEFPROP_HAVE_WRITABLE | DUK_DEFPROP_WRITABLE)+#define DUK_DEFPROP_CLEAR_WRITABLE        DUK_DEFPROP_HAVE_WRITABLE+#define DUK_DEFPROP_SET_ENUMERABLE        (DUK_DEFPROP_HAVE_ENUMERABLE | DUK_DEFPROP_ENUMERABLE)+#define DUK_DEFPROP_CLEAR_ENUMERABLE      DUK_DEFPROP_HAVE_ENUMERABLE+#define DUK_DEFPROP_SET_CONFIGURABLE      (DUK_DEFPROP_HAVE_CONFIGURABLE | DUK_DEFPROP_CONFIGURABLE)+#define DUK_DEFPROP_CLEAR_CONFIGURABLE    DUK_DEFPROP_HAVE_CONFIGURABLE  /* Flags for duk_push_thread_raw() */ #define DUK_THREAD_NEW_GLOBAL_ENV         (1 << 0)    /* create a new global environment */@@ -544,7 +558,7 @@ DUK_EXTERNAL_DECL void *duk_push_buffer_raw(duk_context *ctx, duk_size_t size, duk_small_uint_t flags);  #define duk_push_buffer(ctx,size,dynamic) \-	duk_push_buffer_raw((ctx), (size), (dynamic) ? DUK_BUF_FLAG_DYNAMIC : 0);+	duk_push_buffer_raw((ctx), (size), (dynamic) ? DUK_BUF_FLAG_DYNAMIC : 0) #define duk_push_fixed_buffer(ctx,size) \ 	duk_push_buffer_raw((ctx), (size), 0 /*flags*/) #define duk_push_dynamic_buffer(ctx,size) \@@ -611,7 +625,8 @@ DUK_EXTERNAL_DECL duk_bool_t duk_is_bound_function(duk_context *ctx, duk_idx_t index); DUK_EXTERNAL_DECL duk_bool_t duk_is_thread(duk_context *ctx, duk_idx_t index); -DUK_EXTERNAL_DECL duk_bool_t duk_is_callable(duk_context *ctx, duk_idx_t index);+#define duk_is_callable(ctx,index) \+	duk_is_function((ctx), (index)) DUK_EXTERNAL_DECL duk_bool_t duk_is_dynamic_buffer(duk_context *ctx, duk_idx_t index); DUK_EXTERNAL_DECL duk_bool_t duk_is_fixed_buffer(duk_context *ctx, duk_idx_t index); DUK_EXTERNAL_DECL duk_bool_t duk_is_external_buffer(duk_context *ctx, duk_idx_t index);@@ -638,6 +653,18 @@ DUK_EXTERNAL_DECL duk_errcode_t duk_get_error_code(duk_context *ctx, duk_idx_t index); #define duk_is_error(ctx,index) \ 	(duk_get_error_code((ctx), (index)) != 0)+#define duk_is_eval_error(ctx,index) \+	(duk_get_error_code((ctx), (index)) == DUK_ERR_EVAL_ERROR)+#define duk_is_range_error(ctx,index) \+	(duk_get_error_code((ctx), (index)) == DUK_ERR_RANGE_ERROR)+#define duk_is_reference_error(ctx,index) \+	(duk_get_error_code((ctx), (index)) == DUK_ERR_REFERENCE_ERROR)+#define duk_is_syntax_error(ctx,index) \+	(duk_get_error_code((ctx), (index)) == DUK_ERR_SYNTAX_ERROR)+#define duk_is_type_error(ctx,index) \+	(duk_get_error_code((ctx), (index)) == DUK_ERR_TYPE_ERROR)+#define duk_is_uri_error(ctx,index) \+	(duk_get_error_code((ctx), (index)) == DUK_ERR_URI_ERROR)  /*  *  Get operations: no coercion, returns default value for invalid@@ -682,6 +709,9 @@ DUK_EXTERNAL_DECL void *duk_require_pointer(duk_context *ctx, duk_idx_t index); DUK_EXTERNAL_DECL duk_c_function duk_require_c_function(duk_context *ctx, duk_idx_t index); DUK_EXTERNAL_DECL duk_context *duk_require_context(duk_context *ctx, duk_idx_t index);+DUK_EXTERNAL_DECL void duk_require_function(duk_context *ctx, duk_idx_t index);+#define duk_require_callable(ctx,index) \+	duk_require_function((ctx), (index)) DUK_EXTERNAL_DECL void *duk_require_heapptr(duk_context *ctx, duk_idx_t index);  #define duk_require_object_coercible(ctx,index) \@@ -1203,13 +1233,13 @@ union duk_double_union { 	double d; 	float f[2];-#ifdef DUK_USE_64BIT_OPS+#if defined(DUK_USE_64BIT_OPS) 	duk_uint64_t ull[1]; #endif 	duk_uint32_t ui[2]; 	duk_uint16_t us[4]; 	duk_uint8_t uc[8];-#ifdef DUK_USE_PACKED_TVAL_POSSIBLE+#if defined(DUK_USE_PACKED_TVAL) 	void *vp[2];  /* used by packed duk_tval, assumes sizeof(void *) == 4 */ #endif };@@ -1348,7 +1378,7 @@  *  *  When packed duk_tval is used, the NaN space is used to store pointers  *  and other tagged values in addition to NaNs.  Actual NaNs are normalized- *  to a specific format.  The macros below are used by the implementation+ *  to a specific quiet NaN.  The macros below are used by the implementation  *  to check and normalize NaN values when they might be created.  The macros  *  are essentially NOPs when the non-packed duk_tval representation is used.  *@@ -1356,7 +1386,8 @@  *  the packed duk_tval and works correctly for all NaNs except those that  *  begin with 0x7ff0.  Since the 'normalized NaN' values used with packed  *  duk_tval begin with 0x7ff8, the partial check is reliable when packed- *  duk_tval is used.+ *  duk_tval is used.  The 0x7ff8 prefix means the normalized NaN will be a+ *  quiet NaN regardless of its remaining lower bits.  *  *  The ME variant below is specifically for ARM byte order, which has the  *  feature that while doubles have a mixed byte order (32107654), unsigned
hs-duktape.cabal view
@@ -1,10 +1,10 @@ name:            hs-duktape-version:         0.1.1+version:         0.1.2 synopsis:        Haskell bindings for a very compact embedded ECMAScript (JavaScript) engine. category:        Web homepage:        https://github.com/myfreeweb/hs-duktape author:          Greg V-copyright:       2015 Greg V <greg@unrelenting.technology>, 2013-2015 Duktape authors+copyright:       2015-2016 Greg V <greg@unrelenting.technology>, 2013-2016 Duktape authors maintainer:      greg@unrelenting.technology license:         MIT license-file:    LICENSE@@ -40,7 +40,7 @@     c-sources: duktape/src/duktape.c     includes: duktape.h     install-includes: duktape.h-    cc-options: -Wall -O2 -pedantic -std=c99 -fstrict-aliasing -fomit-frame-pointer+    cc-options: -Wall -pedantic -std=c99 -fstrict-aliasing -fomit-frame-pointer  test-suite tests     build-depends:
test-suite/Scripting/DuktapeSpec.hs view
@@ -39,7 +39,7 @@ function throwsErr () { throw new Error('hi') } |]       rE ← callDuktape (fromJust ctx) Nothing "n0thing!" []-      rE `shouldBe` (Left "TypeError: not callable")+      rE `shouldBe` (Left "TypeError: undefined not callable")       rO ← callDuktape (fromJust ctx) Nothing "returnsObj" []       rO `shouldBe` (Right $ Just [json|{"hello": {"from": [1, 2, 3]}}|])       rT ← callDuktape (fromJust ctx) Nothing "throwsErr" []