Unverified Commit f8a4e379 authored by Péter Szilágyi's avatar Péter Szilágyi Committed by GitHub

Merge pull request #19629 from karalabe/duktape-2.3.0

vendor: update go-duktape to v2.3.0
parents 17cf0e58 9cd33805
...@@ -247,16 +247,16 @@ func (d *Context) CompileFile(flags uint, path string) { ...@@ -247,16 +247,16 @@ func (d *Context) CompileFile(flags uint, path string) {
} }
// See: http://duktape.org/api.html#duk_compile_lstring // See: http://duktape.org/api.html#duk_compile_lstring
func (d *Context) CompileLstring(flags uint, src string, len int) { func (d *Context) CompileLstring(flags uint, src string, lenght int) {
__src__ := C.CString(src) __src__ := C.CString(src)
C._duk_compile_lstring(d.duk_context, C.duk_uint_t(flags), __src__, C.duk_size_t(len)) C._duk_compile_lstring(d.duk_context, C.duk_uint_t(flags), __src__, C.duk_size_t(lenght))
C.free(unsafe.Pointer(__src__)) C.free(unsafe.Pointer(__src__))
} }
// See: http://duktape.org/api.html#duk_compile_lstring_filename // See: http://duktape.org/api.html#duk_compile_lstring_filename
func (d *Context) CompileLstringFilename(flags uint, src string, len int) { func (d *Context) CompileLstringFilename(flags uint, src string, lenght int) {
__src__ := C.CString(src) __src__ := C.CString(src)
C._duk_compile_lstring_filename(d.duk_context, C.duk_uint_t(flags), __src__, C.duk_size_t(len)) C._duk_compile_lstring_filename(d.duk_context, C.duk_uint_t(flags), __src__, C.duk_size_t(lenght))
C.free(unsafe.Pointer(__src__)) C.free(unsafe.Pointer(__src__))
} }
...@@ -395,16 +395,16 @@ func (d *Context) EvalFileNoresult(path string) { ...@@ -395,16 +395,16 @@ func (d *Context) EvalFileNoresult(path string) {
} }
// See: http://duktape.org/api.html#duk_eval_lstring // See: http://duktape.org/api.html#duk_eval_lstring
func (d *Context) EvalLstring(src string, len int) { func (d *Context) EvalLstring(src string, lenght int) {
__src__ := C.CString(src) __src__ := C.CString(src)
C._duk_eval_lstring(d.duk_context, __src__, C.duk_size_t(len)) C._duk_eval_lstring(d.duk_context, __src__, C.duk_size_t(lenght))
C.free(unsafe.Pointer(__src__)) C.free(unsafe.Pointer(__src__))
} }
// See: http://duktape.org/api.html#duk_eval_lstring_noresult // See: http://duktape.org/api.html#duk_eval_lstring_noresult
func (d *Context) EvalLstringNoresult(src string, len int) { func (d *Context) EvalLstringNoresult(src string, lenght int) {
__src__ := C.CString(src) __src__ := C.CString(src)
C._duk_eval_lstring_noresult(d.duk_context, __src__, C.duk_size_t(len)) C._duk_eval_lstring_noresult(d.duk_context, __src__, C.duk_size_t(lenght))
C.free(unsafe.Pointer(__src__)) C.free(unsafe.Pointer(__src__))
} }
...@@ -801,17 +801,17 @@ func (d *Context) PcompileFile(flags uint, path string) error { ...@@ -801,17 +801,17 @@ func (d *Context) PcompileFile(flags uint, path string) error {
} }
// See: http://duktape.org/api.html#duk_pcompile_lstring // See: http://duktape.org/api.html#duk_pcompile_lstring
func (d *Context) PcompileLstring(flags uint, src string, len int) error { func (d *Context) PcompileLstring(flags uint, src string, lenght int) error {
__src__ := C.CString(src) __src__ := C.CString(src)
result := int(C._duk_pcompile_lstring(d.duk_context, C.duk_uint_t(flags), __src__, C.duk_size_t(len))) result := int(C._duk_pcompile_lstring(d.duk_context, C.duk_uint_t(flags), __src__, C.duk_size_t(lenght)))
C.free(unsafe.Pointer(__src__)) C.free(unsafe.Pointer(__src__))
return d.castStringToError(result) return d.castStringToError(result)
} }
// See: http://duktape.org/api.html#duk_pcompile_lstring_filename // See: http://duktape.org/api.html#duk_pcompile_lstring_filename
func (d *Context) PcompileLstringFilename(flags uint, src string, len int) error { func (d *Context) PcompileLstringFilename(flags uint, src string, lenght int) error {
__src__ := C.CString(src) __src__ := C.CString(src)
result := int(C._duk_pcompile_lstring_filename(d.duk_context, C.duk_uint_t(flags), __src__, C.duk_size_t(len))) result := int(C._duk_pcompile_lstring_filename(d.duk_context, C.duk_uint_t(flags), __src__, C.duk_size_t(lenght)))
C.free(unsafe.Pointer(__src__)) C.free(unsafe.Pointer(__src__))
return d.castStringToError(result) return d.castStringToError(result)
} }
...@@ -821,8 +821,7 @@ func (d *Context) PcompileString(flags uint, src string) error { ...@@ -821,8 +821,7 @@ func (d *Context) PcompileString(flags uint, src string) error {
__src__ := C.CString(src) __src__ := C.CString(src)
result := int(C._duk_pcompile_string(d.duk_context, C.duk_uint_t(flags), __src__)) result := int(C._duk_pcompile_string(d.duk_context, C.duk_uint_t(flags), __src__))
C.free(unsafe.Pointer(__src__)) C.free(unsafe.Pointer(__src__))
fmt.Println("result herhehreh", result) return d.castStringToError(result)
return nil //d.castStringToError(result)
} }
// See: http://duktape.org/api.html#duk_pcompile_string_filename // See: http://duktape.org/api.html#duk_pcompile_string_filename
...@@ -856,18 +855,18 @@ func (d *Context) PevalFileNoresult(path string) int { ...@@ -856,18 +855,18 @@ func (d *Context) PevalFileNoresult(path string) int {
} }
// See: http://duktape.org/api.html#duk_peval_lstring // See: http://duktape.org/api.html#duk_peval_lstring
func (d *Context) PevalLstring(src string, len int) error { func (d *Context) PevalLstring(src string, lenght int) error {
__src__ := C.CString(src) __src__ := C.CString(src)
result := int(C._duk_peval_lstring(d.duk_context, __src__, C.duk_size_t(len))) result := int(C._duk_peval_lstring(d.duk_context, __src__, C.duk_size_t(lenght)))
C.free(unsafe.Pointer(__src__)) C.free(unsafe.Pointer(__src__))
return d.castStringToError(result) return d.castStringToError(result)
} }
// See: http://duktape.org/api.html#duk_peval_lstring_noresult // See: http://duktape.org/api.html#duk_peval_lstring_noresult
func (d *Context) PevalLstringNoresult(src string, len int) int { func (d *Context) PevalLstringNoresult(src string, lenght int) int {
__src__ := C.CString(src) __src__ := C.CString(src)
result := int(C._duk_peval_lstring_noresult(d.duk_context, __src__, C.duk_size_t(len))) result := int(C._duk_peval_lstring_noresult(d.duk_context, __src__, C.duk_size_t(lenght)))
C.free(unsafe.Pointer(__src__)) C.free(unsafe.Pointer(__src__))
return result return result
} }
...@@ -1040,10 +1039,10 @@ func (d *Context) PushInt(val int) { ...@@ -1040,10 +1039,10 @@ func (d *Context) PushInt(val int) {
} }
// See: http://duktape.org/api.html#duk_push_lstring // See: http://duktape.org/api.html#duk_push_lstring
func (d *Context) PushLstring(str string, len int) string { func (d *Context) PushLstring(str string, lenght int) string {
__str__ := C.CString(str) __str__ := C.CString(str)
var result string var result string
if s := C.duk_push_lstring(d.duk_context, __str__, C.duk_size_t(len)); s != nil { if s := C.duk_push_lstring(d.duk_context, __str__, C.duk_size_t(lenght)); s != nil {
result = C.GoString(s) result = C.GoString(s)
} }
C.free(unsafe.Pointer(__str__)) C.free(unsafe.Pointer(__str__))
...@@ -1590,6 +1589,16 @@ func (d *Context) PushExternalBuffer() { ...@@ -1590,6 +1589,16 @@ func (d *Context) PushExternalBuffer() {
C._duk_push_external_buffer(d.duk_context) C._duk_push_external_buffer(d.duk_context)
} }
// See: http://duktape.org/api.html#duk_config_buffer
func (d *Context) ConfigBuffer(bufferIdx int, buffer []byte) {
C.duk_config_buffer(
d.duk_context,
C.duk_idx_t(bufferIdx),
unsafe.Pointer(&buffer[0]),
C.duk_size_t(len(buffer)),
)
}
/** /**
* Unimplemented. * Unimplemented.
* *
...@@ -1608,7 +1617,6 @@ func (d *Context) PushExternalBuffer() { ...@@ -1608,7 +1617,6 @@ func (d *Context) PushExternalBuffer() {
* Realloc see: http://duktape.org/api.html#duk_realloc * Realloc see: http://duktape.org/api.html#duk_realloc
* ReallocRaw see: http://duktape.org/api.html#duk_realloc_raw * ReallocRaw see: http://duktape.org/api.html#duk_realloc_raw
* RequireCFunction see: http://duktape.org/api.html#duk_require_c_function * RequireCFunction see: http://duktape.org/api.html#duk_require_c_function
* ConfigBuffer see: http://duktape.org/api.html#duk_config_buffer
* GetBufferData see: http://duktape.org/api.html#duk_get_buffer_data * GetBufferData see: http://duktape.org/api.html#duk_get_buffer_data
* StealBuffer see: http://duktape.org/api.html#duk_steal_buffer * StealBuffer see: http://duktape.org/api.html#duk_steal_buffer
* RequireBufferData see: http://duktape.org/api.html#duk_require_buffer_data * RequireBufferData see: http://duktape.org/api.html#duk_require_buffer_data
......
package duktape package duktape
/*
#cgo !windows CFLAGS: -std=c99 -O3 -Wall -Wno-unused-value -fomit-frame-pointer -fstrict-aliasing
#cgo windows CFLAGS: -O3 -Wall -Wno-unused-value -fomit-frame-pointer -fstrict-aliasing
#include "duktape.h"
*/
import "C"
const ( const (
CompileEval uint = 1 << iota CompileEval uint = C.DUK_COMPILE_EVAL
CompileFunction CompileFunction uint = C.DUK_COMPILE_FUNCTION
CompileStrict CompileStrict uint = C.DUK_COMPILE_STRICT
CompileSafe CompileShebang uint = C.DUK_COMPILE_SHEBANG
CompileNoResult CompileSafe uint = C.DUK_COMPILE_SAFE
CompileNoSource CompileNoResult uint = C.DUK_COMPILE_NORESULT
CompileStrlen CompileNoSource uint = C.DUK_COMPILE_NOSOURCE
CompileStrlen uint = C.DUK_COMPILE_STRLEN
CompileNoFileName uint = C.DUK_COMPILE_NOFILENAME
CompileFuncExpr uint = C.DUK_COMPILE_FUNCEXPR
) )
const ( const (
TypeNone Type = iota TypeNone Type = C.DUK_TYPE_NONE
TypeUndefined TypeUndefined Type = C.DUK_TYPE_UNDEFINED
TypeNull TypeNull Type = C.DUK_TYPE_NULL
TypeBoolean TypeBoolean Type = C.DUK_TYPE_BOOLEAN
TypeNumber TypeNumber Type = C.DUK_TYPE_NUMBER
TypeString TypeString Type = C.DUK_TYPE_STRING
TypeObject TypeObject Type = C.DUK_TYPE_OBJECT
TypeBuffer TypeBuffer Type = C.DUK_TYPE_BUFFER
TypePointer TypePointer Type = C.DUK_TYPE_POINTER
TypeLightFunc TypeLightFunc Type = C.DUK_TYPE_LIGHTFUNC
) )
const ( const (
TypeMaskNone uint = 1 << iota TypeMaskNone uint = C.DUK_TYPE_MASK_NONE
TypeMaskUndefined TypeMaskUndefined uint = C.DUK_TYPE_MASK_UNDEFINED
TypeMaskNull TypeMaskNull uint = C.DUK_TYPE_MASK_NULL
TypeMaskBoolean TypeMaskBoolean uint = C.DUK_TYPE_MASK_BOOLEAN
TypeMaskNumber TypeMaskNumber uint = C.DUK_TYPE_MASK_NUMBER
TypeMaskString TypeMaskString uint = C.DUK_TYPE_MASK_STRING
TypeMaskObject TypeMaskObject uint = C.DUK_TYPE_MASK_OBJECT
TypeMaskBuffer TypeMaskBuffer uint = C.DUK_TYPE_MASK_BUFFER
TypeMaskPointer TypeMaskPointer uint = C.DUK_TYPE_MASK_POINTER
TypeMaskLightFunc TypeMaskLightFunc uint = C.DUK_TYPE_MASK_LIGHTFUNC
) )
const ( const (
EnumIncludeNonenumerable uint = 1 << iota EnumIncludeNonenumerable uint = C.DUK_ENUM_INCLUDE_NONENUMERABLE
EnumIncludeInternal EnumIncludeHidden uint = C.DUK_ENUM_INCLUDE_HIDDEN
EnumOwnPropertiesOnly EnumIncludeSymbols uint = C.DUK_ENUM_INCLUDE_SYMBOLS
EnumArrayIndicesOnly EnumExcludeStrings uint = C.DUK_ENUM_EXCLUDE_STRINGS
EnumSortArrayIndices EnumOwnPropertiesOnly uint = C.DUK_ENUM_OWN_PROPERTIES_ONLY
NoProxyBehavior EnumArrayIndicesOnly uint = C.DUK_ENUM_ARRAY_INDICES_ONLY
EnumSortArrayIndices uint = C.DUK_ENUM_SORT_ARRAY_INDICES
NoProxyBehavior uint = C.DUK_ENUM_NO_PROXY_BEHAVIOR
) )
const ( const (
ErrNone int = 0
// Internal to Duktape
ErrUnimplemented int = 50 + iota ErrUnimplemented int = 50 + iota
ErrUnsupported ErrUnsupported
ErrInternal
ErrAlloc
ErrAssertion
ErrAPI
ErrUncaughtError
)
const ( ErrNone int = C.DUK_ERR_NONE
// Common prototypes ErrError int = C.DUK_ERR_ERROR
ErrError int = 1 + iota ErrEval int = C.DUK_ERR_EVAL_ERROR
ErrEval ErrRange int = C.DUK_ERR_RANGE_ERROR
ErrRange ErrReference int = C.DUK_ERR_REFERENCE_ERROR
ErrReference ErrSyntax int = C.DUK_ERR_SYNTAX_ERROR
ErrSyntax ErrType int = C.DUK_ERR_TYPE_ERROR
ErrType ErrURI int = C.DUK_ERR_URI_ERROR
ErrURI
) )
const ( const (
...@@ -81,18 +84,18 @@ const ( ...@@ -81,18 +84,18 @@ const (
) )
const ( const (
ErrRetError int = -(ErrError + iota) ErrRetError int = -(ErrError)
ErrRetEval ErrRetEval int = -(ErrEval)
ErrRetRange ErrRetRange int = -(ErrRange)
ErrRetReference ErrRetReference int = -(ErrReference)
ErrRetSyntax ErrRetSyntax int = -(ErrSyntax)
ErrRetType ErrRetType int = -(ErrType)
ErrRetURI ErrRetURI int = -(ErrURI)
) )
const ( const (
ExecSuccess = iota ExecSuccess int = C.DUK_EXEC_SUCCESS
ExecError ExecError int = C.DUK_EXEC_ERROR
) )
const ( const (
...@@ -105,17 +108,16 @@ const ( ...@@ -105,17 +108,16 @@ const (
) )
const ( const (
BufobjDuktapeAuffer = 0 BufObjArrayBuffer int = C.DUK_BUFOBJ_ARRAYBUFFER
BufobjNodejsAuffer = 1 BufObjNodejsBuffer int = C.DUK_BUFOBJ_NODEJS_BUFFER
BufobjArraybuffer = 2 BufObjDataView int = C.DUK_BUFOBJ_DATAVIEW
BufobjDataview = 3 BufobjInt8Array int = C.DUK_BUFOBJ_INT8ARRAY
BufobjInt8array = 4 BufobjUint8Array int = C.DUK_BUFOBJ_UINT8ARRAY
BufobjUint8array = 5 BufobjUint8ClampedArray int = C.DUK_BUFOBJ_UINT8CLAMPEDARRAY
BufobjUint8clampedarray = 6 BufObjInt16Array int = C.DUK_BUFOBJ_INT16ARRAY
BufobjInt16array = 7 BufObjUint16Array int = C.DUK_BUFOBJ_UINT16ARRAY
BufobjUint16array = 8 BufObjInt32Array int = C.DUK_BUFOBJ_INT32ARRAY
BufobjInt32array = 9 BufObjUint32Array int = C.DUK_BUFOBJ_UINT32ARRAY
BufobjUint32array = 10 BufObjFloat32Array int = C.DUK_BUFOBJ_FLOAT32ARRAY
BufobjFloat32array = 11 BufObjFloat64Array int = C.DUK_BUFOBJ_FLOAT64ARRAY
BufobjFloat64array = 12
) )
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
#include "duktape.h" #include "duktape.h"
#if defined(__cplusplus)
extern "C" {
#endif
/* 32-bit (big endian) marker used at the end of pool entries so that wasted /* 32-bit (big endian) marker used at the end of pool entries so that wasted
* space can be detected. Waste tracking must be enabled explicitly. * space can be detected. Waste tracking must be enabled explicitly.
*/ */
...@@ -220,4 +224,8 @@ static DUK__ALLOC_POOL_ALWAYS_INLINE void *duk_alloc_pool_dec16(duk_uint16_t val ...@@ -220,4 +224,8 @@ static DUK__ALLOC_POOL_ALWAYS_INLINE void *duk_alloc_pool_dec16(duk_uint16_t val
} }
#endif #endif
#if defined(__cplusplus)
}
#endif /* end 'extern "C"' wrapper */
#endif /* DUK_ALLOC_POOL_H_INCLUDED */ #endif /* DUK_ALLOC_POOL_H_INCLUDED */
...@@ -13,10 +13,6 @@ ...@@ -13,10 +13,6 @@
/* XXX: Add some form of log level filtering. */ /* XXX: Add some form of log level filtering. */
/* XXX: For now logs everything to stdout, V8/Node.js logs debug/info level
* to stdout, warn and above to stderr. Should this extra do the same?
*/
/* XXX: Should all output be written via e.g. console.write(formattedMsg)? /* XXX: Should all output be written via e.g. console.write(formattedMsg)?
* This would make it easier for user code to redirect all console output * This would make it easier for user code to redirect all console output
* to a custom backend. * to a custom backend.
...@@ -25,12 +21,10 @@ ...@@ -25,12 +21,10 @@
/* XXX: Init console object using duk_def_prop() when that call is available. */ /* XXX: Init console object using duk_def_prop() when that call is available. */
static duk_ret_t duk__console_log_helper(duk_context *ctx, const char *error_name) { static duk_ret_t duk__console_log_helper(duk_context *ctx, const char *error_name) {
duk_idx_t i, n; duk_uint_t flags = (duk_uint_t) duk_get_current_magic(ctx);
duk_uint_t flags; FILE *output = (flags & DUK_CONSOLE_STDOUT_ONLY) ? stdout : stderr;
duk_idx_t n = duk_get_top(ctx);
flags = (duk_uint_t) duk_get_current_magic(ctx); duk_idx_t i;
n = duk_get_top(ctx);
duk_get_global_string(ctx, "console"); duk_get_global_string(ctx, "console");
duk_get_prop_string(ctx, -1, "format"); duk_get_prop_string(ctx, -1, "format");
...@@ -59,9 +53,9 @@ static duk_ret_t duk__console_log_helper(duk_context *ctx, const char *error_nam ...@@ -59,9 +53,9 @@ static duk_ret_t duk__console_log_helper(duk_context *ctx, const char *error_nam
duk_get_prop_string(ctx, -1, "stack"); duk_get_prop_string(ctx, -1, "stack");
} }
fprintf(stdout, "%s\n", duk_to_string(ctx, -1)); fprintf(output, "%s\n", duk_to_string(ctx, -1));
if (flags & DUK_CONSOLE_FLUSH) { if (flags & DUK_CONSOLE_FLUSH) {
fflush(stdout); fflush(output);
} }
return 0; return 0;
} }
...@@ -110,6 +104,17 @@ static void duk__console_reg_vararg_func(duk_context *ctx, duk_c_function func, ...@@ -110,6 +104,17 @@ static void duk__console_reg_vararg_func(duk_context *ctx, duk_c_function func,
} }
void duk_console_init(duk_context *ctx, duk_uint_t flags) { void duk_console_init(duk_context *ctx, duk_uint_t flags) {
duk_uint_t flags_orig;
/* If both DUK_CONSOLE_STDOUT_ONLY and DUK_CONSOLE_STDERR_ONLY where specified,
* just turn off DUK_CONSOLE_STDOUT_ONLY and keep DUK_CONSOLE_STDERR_ONLY.
*/
if ((flags & DUK_CONSOLE_STDOUT_ONLY) && (flags & DUK_CONSOLE_STDERR_ONLY)) {
flags &= ~DUK_CONSOLE_STDOUT_ONLY;
}
/* Remember the (possibly corrected) flags we received. */
flags_orig = flags;
duk_push_object(ctx); duk_push_object(ctx);
/* Custom function to format objects; user can replace. /* Custom function to format objects; user can replace.
...@@ -128,11 +133,22 @@ void duk_console_init(duk_context *ctx, duk_uint_t flags) { ...@@ -128,11 +133,22 @@ void duk_console_init(duk_context *ctx, duk_uint_t flags) {
"})(Duktape.enc)"); "})(Duktape.enc)");
duk_put_prop_string(ctx, -2, "format"); duk_put_prop_string(ctx, -2, "format");
flags = flags_orig;
if (!(flags & DUK_CONSOLE_STDOUT_ONLY) && !(flags & DUK_CONSOLE_STDERR_ONLY)) {
/* No output indicators were specified; these levels go to stdout. */
flags |= DUK_CONSOLE_STDOUT_ONLY;
}
duk__console_reg_vararg_func(ctx, duk__console_assert, "assert", flags); duk__console_reg_vararg_func(ctx, duk__console_assert, "assert", flags);
duk__console_reg_vararg_func(ctx, duk__console_log, "log", flags); duk__console_reg_vararg_func(ctx, duk__console_log, "log", flags);
duk__console_reg_vararg_func(ctx, duk__console_log, "debug", flags); /* alias to console.log */ duk__console_reg_vararg_func(ctx, duk__console_log, "debug", flags); /* alias to console.log */
duk__console_reg_vararg_func(ctx, duk__console_trace, "trace", flags); duk__console_reg_vararg_func(ctx, duk__console_trace, "trace", flags);
duk__console_reg_vararg_func(ctx, duk__console_info, "info", flags); duk__console_reg_vararg_func(ctx, duk__console_info, "info", flags);
flags = flags_orig;
if (!(flags & DUK_CONSOLE_STDOUT_ONLY) && !(flags & DUK_CONSOLE_STDERR_ONLY)) {
/* No output indicators were specified; these levels go to stderr. */
flags |= DUK_CONSOLE_STDERR_ONLY;
}
duk__console_reg_vararg_func(ctx, duk__console_warn, "warn", flags); duk__console_reg_vararg_func(ctx, duk__console_warn, "warn", flags);
duk__console_reg_vararg_func(ctx, duk__console_error, "error", flags); duk__console_reg_vararg_func(ctx, duk__console_error, "error", flags);
duk__console_reg_vararg_func(ctx, duk__console_error, "exception", flags); /* alias to console.error */ duk__console_reg_vararg_func(ctx, duk__console_error, "exception", flags); /* alias to console.error */
......
...@@ -3,12 +3,27 @@ ...@@ -3,12 +3,27 @@
#include "duktape.h" #include "duktape.h"
#if defined(__cplusplus)
extern "C" {
#endif
/* Use a proxy wrapper to make undefined methods (console.foo()) no-ops. */ /* Use a proxy wrapper to make undefined methods (console.foo()) no-ops. */
#define DUK_CONSOLE_PROXY_WRAPPER (1 << 0) #define DUK_CONSOLE_PROXY_WRAPPER (1U << 0)
/* Flush output after every call. */ /* Flush output after every call. */
#define DUK_CONSOLE_FLUSH (1 << 1) #define DUK_CONSOLE_FLUSH (1U << 1)
/* Send output to stdout only (default is mixed stdout/stderr). */
#define DUK_CONSOLE_STDOUT_ONLY (1U << 2)
/* Send output to stderr only (default is mixed stdout/stderr). */
#define DUK_CONSOLE_STDERR_ONLY (1U << 3)
/* Initialize the console system */
extern void duk_console_init(duk_context *ctx, duk_uint_t flags); extern void duk_console_init(duk_context *ctx, duk_uint_t flags);
#if defined(__cplusplus)
}
#endif /* end 'extern "C"' wrapper */
#endif /* DUK_CONSOLE_H_INCLUDED */ #endif /* DUK_CONSOLE_H_INCLUDED */
...@@ -3,7 +3,11 @@ ...@@ -3,7 +3,11 @@
#include "duktape.h" #include "duktape.h"
/* Log levels */ #if defined(__cplusplus)
extern "C" {
#endif
/* Log levels. */
#define DUK_LOG_TRACE 0 #define DUK_LOG_TRACE 0
#define DUK_LOG_DEBUG 1 #define DUK_LOG_DEBUG 1
#define DUK_LOG_INFO 2 #define DUK_LOG_INFO 2
...@@ -17,4 +21,8 @@ extern void duk_logging_init(duk_context *ctx, duk_uint_t flags); ...@@ -17,4 +21,8 @@ extern void duk_logging_init(duk_context *ctx, duk_uint_t flags);
extern void duk_log_va(duk_context *ctx, duk_int_t level, const char *fmt, va_list ap); extern void duk_log_va(duk_context *ctx, duk_int_t level, const char *fmt, va_list ap);
extern void duk_log(duk_context *ctx, duk_int_t level, const char *fmt, ...); extern void duk_log(duk_context *ctx, duk_int_t level, const char *fmt, ...);
#if defined(__cplusplus)
}
#endif /* end 'extern "C"' wrapper */
#endif /* DUK_LOGGING_H_INCLUDED */ #endif /* DUK_LOGGING_H_INCLUDED */
...@@ -4,9 +4,17 @@ ...@@ -4,9 +4,17 @@
#include <stdarg.h> /* va_list etc */ #include <stdarg.h> /* va_list etc */
#include <stddef.h> /* size_t */ #include <stddef.h> /* size_t */
#if defined(__cplusplus)
extern "C" {
#endif
extern int duk_minimal_sprintf(char *str, const char *format, ...); extern int duk_minimal_sprintf(char *str, const char *format, ...);
extern int duk_minimal_snprintf(char *str, size_t size, const char *format, ...); extern int duk_minimal_snprintf(char *str, size_t size, const char *format, ...);
extern int duk_minimal_vsnprintf(char *str, size_t size, const char *format, va_list ap); extern int duk_minimal_vsnprintf(char *str, size_t size, const char *format, va_list ap);
extern int duk_minimal_sscanf(const char *str, const char *format, ...); extern int duk_minimal_sscanf(const char *str, const char *format, ...);
#if defined(__cplusplus)
}
#endif /* end 'extern "C"' wrapper */
#endif /* DUK_MINIMAL_PRINTF_H_INCLUDED */ #endif /* DUK_MINIMAL_PRINTF_H_INCLUDED */
...@@ -263,7 +263,7 @@ static duk_ret_t duk__require(duk_context *ctx) { ...@@ -263,7 +263,7 @@ static duk_ret_t duk__require(duk_context *ctx) {
* done with Object.defineProperty(). * done with Object.defineProperty().
* *
* XXX: require.id could also be just made non-configurable, as there * XXX: require.id could also be just made non-configurable, as there
* is no practical reason to touch it (at least from Ecmascript code). * is no practical reason to touch it (at least from ECMAScript code).
*/ */
duk_push_c_function(ctx, duk__require, 1 /*nargs*/); duk_push_c_function(ctx, duk__require, 1 /*nargs*/);
duk_push_string(ctx, "name"); duk_push_string(ctx, "name");
...@@ -307,7 +307,7 @@ static duk_ret_t duk__require(duk_context *ctx) { ...@@ -307,7 +307,7 @@ static duk_ret_t duk__require(duk_context *ctx) {
* Call user provided module search function and build the wrapped * Call user provided module search function and build the wrapped
* module source code (if necessary). The module search function * module source code (if necessary). The module search function
* can be used to implement pure Ecmacsript, pure C, and mixed * can be used to implement pure Ecmacsript, pure C, and mixed
* Ecmascript/C modules. * ECMAScript/C modules.
* *
* The module search function can operate on the exports table directly * The module search function can operate on the exports table directly
* (e.g. DLL code can register values to it). It can also return a * (e.g. DLL code can register values to it). It can also return a
......
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
#include "duktape.h" #include "duktape.h"
#if defined(__cplusplus)
extern "C" {
#endif
/* Maximum length of CommonJS module identifier to resolve. Length includes /* Maximum length of CommonJS module identifier to resolve. Length includes
* both current module ID, requested (possibly relative) module ID, and a * both current module ID, requested (possibly relative) module ID, and a
* slash in between. * slash in between.
...@@ -11,4 +15,8 @@ ...@@ -11,4 +15,8 @@
extern void duk_module_duktape_init(duk_context *ctx); extern void duk_module_duktape_init(duk_context *ctx);
#if defined(__cplusplus)
}
#endif /* end 'extern "C"' wrapper */
#endif /* DUK_MODULE_DUKTAPE_H_INCLUDED */ #endif /* DUK_MODULE_DUKTAPE_H_INCLUDED */
...@@ -3,7 +3,15 @@ ...@@ -3,7 +3,15 @@
#include "duktape.h" #include "duktape.h"
#if defined(__cplusplus)
extern "C" {
#endif
extern duk_ret_t duk_module_node_peval_main(duk_context *ctx, const char *path); extern duk_ret_t duk_module_node_peval_main(duk_context *ctx, const char *path);
extern void duk_module_node_init(duk_context *ctx); extern void duk_module_node_init(duk_context *ctx);
#if defined(__cplusplus)
}
#endif /* end 'extern "C"' wrapper */
#endif /* DUK_MODULE_NODE_H_INCLUDED */ #endif /* DUK_MODULE_NODE_H_INCLUDED */
...@@ -3,8 +3,16 @@ ...@@ -3,8 +3,16 @@
#include "duktape.h" #include "duktape.h"
#if defined(__cplusplus)
extern "C" {
#endif
/* No flags at the moment. */ /* No flags at the moment. */
extern void duk_print_alert_init(duk_context *ctx, duk_uint_t flags); extern void duk_print_alert_init(duk_context *ctx, duk_uint_t flags);
#if defined(__cplusplus)
}
#endif /* end 'extern "C"' wrapper */
#endif /* DUK_PRINT_ALERT_H_INCLUDED */ #endif /* DUK_PRINT_ALERT_H_INCLUDED */
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
#include "duktape.h" #include "duktape.h"
#if defined(__cplusplus)
extern "C" {
#endif
/* Straight flag rename */ /* Straight flag rename */
#if !defined(DUK_ENUM_INCLUDE_INTERNAL) #if !defined(DUK_ENUM_INCLUDE_INTERNAL)
#define DUK_ENUM_INCLUDE_INTERNAL DUK_ENUM_INCLUDE_HIDDEN #define DUK_ENUM_INCLUDE_INTERNAL DUK_ENUM_INCLUDE_HIDDEN
...@@ -25,4 +29,8 @@ extern void duk_to_defaultvalue(duk_context *ctx, duk_idx_t idx, duk_int_t hint) ...@@ -25,4 +29,8 @@ extern void duk_to_defaultvalue(duk_context *ctx, duk_idx_t idx, duk_int_t hint)
#define duk_push_string_file(ctx,path) \ #define duk_push_string_file(ctx,path) \
duk_push_string_file_raw((ctx), (path), 0) duk_push_string_file_raw((ctx), (path), 0)
#if defined(__cplusplus)
}
#endif /* end 'extern "C"' wrapper */
#endif /* DUK_V1_COMPAT_INCLUDED */ #endif /* DUK_V1_COMPAT_INCLUDED */
...@@ -199,7 +199,7 @@ func (e *Error) Error() string { ...@@ -199,7 +199,7 @@ func (e *Error) Error() string {
return fmt.Sprintf("%s: %s", e.Type, e.Message) return fmt.Sprintf("%s: %s", e.Type, e.Message)
} }
type Type int type Type uint
func (t Type) IsNone() bool { return t == TypeNone } func (t Type) IsNone() bool { return t == TypeNone }
func (t Type) IsUndefined() bool { return t == TypeUndefined } func (t Type) IsUndefined() bool { return t == TypeUndefined }
......
...@@ -941,10 +941,10 @@ ...@@ -941,10 +941,10 @@
"revisionTime": "2016-06-21T03:49:01Z" "revisionTime": "2016-06-21T03:49:01Z"
}, },
{ {
"checksumSHA1": "vndxs5Tv09/8S+Dr2PBAiM557lI=", "checksumSHA1": "h+m6mYCZIKnMQI24faKak5o19es=",
"path": "gopkg.in/olebedev/go-duktape.v3", "path": "gopkg.in/olebedev/go-duktape.v3",
"revision": "abf0ba0be5d5d36b1f9266463cc320b9a5ab224e", "revision": "ec84240a7772c7a122b1c58a13398210659f7c40",
"revisionTime": "2018-03-02T12:15:09Z" "revisionTime": "2019-02-13T23:42:57Z"
}, },
{ {
"checksumSHA1": "4BwmmgQUhWtizsR2soXND0nqZ1I=", "checksumSHA1": "4BwmmgQUhWtizsR2soXND0nqZ1I=",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment