nifi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From phroc...@apache.org
Subject [26/51] [partial] nifi-minifi-cpp git commit: MINIFICPP-351: Remove Civetweb third party directory
Date Tue, 02 Jan 2018 18:29:51 GMT
http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/5977aa27/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_logger.c
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_logger.c b/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_logger.c
deleted file mode 100644
index d2b89e5..0000000
--- a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_logger.c
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- *  Logging support
- */
-
-#include "duk_internal.h"
-
-/* 3-letter log level strings */
-DUK_LOCAL const duk_uint8_t duk__log_level_strings[] = {
-	(duk_uint8_t) DUK_ASC_UC_T, (duk_uint8_t) DUK_ASC_UC_R, (duk_uint8_t) DUK_ASC_UC_C,
-	(duk_uint8_t) DUK_ASC_UC_D, (duk_uint8_t) DUK_ASC_UC_B, (duk_uint8_t) DUK_ASC_UC_G,
-	(duk_uint8_t) DUK_ASC_UC_I, (duk_uint8_t) DUK_ASC_UC_N, (duk_uint8_t) DUK_ASC_UC_F,
-	(duk_uint8_t) DUK_ASC_UC_W, (duk_uint8_t) DUK_ASC_UC_R, (duk_uint8_t) DUK_ASC_UC_N,
-	(duk_uint8_t) DUK_ASC_UC_E, (duk_uint8_t) DUK_ASC_UC_R, (duk_uint8_t) DUK_ASC_UC_R,
-	(duk_uint8_t) DUK_ASC_UC_F, (duk_uint8_t) DUK_ASC_UC_T, (duk_uint8_t) DUK_ASC_UC_L
-};
-
-/* Constructor */
-DUK_INTERNAL duk_ret_t duk_bi_logger_constructor(duk_context *ctx) {
-	duk_hthread *thr = (duk_hthread *) ctx;
-	duk_idx_t nargs;
-
-	/* Calling as a non-constructor is not meaningful. */
-	if (!duk_is_constructor_call(ctx)) {
-		return DUK_RET_TYPE_ERROR;
-	}
-
-	nargs = duk_get_top(ctx);
-	duk_set_top(ctx, 1);
-
-	duk_push_this(ctx);
-
-	/* [ name this ] */
-
-	if (nargs == 0) {
-		/* Automatic defaulting of logger name from caller.  This would
-		 * work poorly with tail calls, but constructor calls are currently
-		 * never tail calls, so tail calls are not an issue now.
-		 */
-
-		if (thr->callstack_top >= 2) {
-			duk_activation *act_caller = thr->callstack + thr->callstack_top - 2;
-			duk_hobject *func_caller;
-
-			func_caller = DUK_ACT_GET_FUNC(act_caller);
-			if (func_caller) {
-				/* Stripping the filename might be a good idea
-				 * ("/foo/bar/quux.js" -> logger name "quux"),
-				 * but now used verbatim.
-				 */
-				duk_push_hobject(ctx, func_caller);
-				duk_get_prop_stridx(ctx, -1, DUK_STRIDX_FILE_NAME);
-				duk_replace(ctx, 0);
-			}
-		}
-	}
-	/* the stack is unbalanced here on purpose; we only rely on the
-	 * initial two values: [ name this ].
-	 */
-
-	if (duk_is_string(ctx, 0)) {
-		duk_dup(ctx, 0);
-		duk_put_prop_stridx(ctx, 1, DUK_STRIDX_LC_N);
-	} else {
-		/* don't set 'n' at all, inherited value is used as name */
-	}
-
-	duk_compact(ctx, 1);
-
-	return 0;  /* keep default instance */
-}
-
-/* Default function to format objects.  Tries to use toLogString() but falls
- * back to toString().  Any errors are propagated out without catching.
- */
-DUK_INTERNAL duk_ret_t duk_bi_logger_prototype_fmt(duk_context *ctx) {
-	if (duk_get_prop_stridx(ctx, 0, DUK_STRIDX_TO_LOG_STRING)) {
-		/* [ arg toLogString ] */
-
-		duk_dup(ctx, 0);
-		duk_call_method(ctx, 0);
-
-		/* [ arg result ] */
-		return 1;
-	}
-
-	/* [ arg undefined ] */
-	duk_pop(ctx);
-	duk_to_string(ctx, 0);
-	return 1;
-}
-
-/* Default function to write a formatted log line.  Writes to stderr,
- * appending a newline to the log line.
- *
- * The argument is a buffer whose visible size contains the log message.
- * This function should avoid coercing the buffer to a string to avoid
- * string table traffic.
- */
-DUK_INTERNAL duk_ret_t duk_bi_logger_prototype_raw(duk_context *ctx) {
-	const char *data;
-	duk_size_t data_len;
-
-	DUK_UNREF(ctx);
-	DUK_UNREF(data);
-	DUK_UNREF(data_len);
-
-#ifdef DUK_USE_FILE_IO
-	data = (const char *) duk_require_buffer(ctx, 0, &data_len);
-	DUK_FWRITE((const void *) data, 1, data_len, DUK_STDERR);
-	DUK_FPUTC((int) '\n', DUK_STDERR);
-	DUK_FFLUSH(DUK_STDERR);
-#else
-	/* nop */
-#endif
-	return 0;
-}
-
-/* Log frontend shared helper, magic value indicates log level.  Provides
- * frontend functions: trace(), debug(), info(), warn(), error(), fatal().
- * This needs to have small footprint, reasonable performance, minimal
- * memory churn, etc.
- */
-DUK_INTERNAL duk_ret_t duk_bi_logger_prototype_log_shared(duk_context *ctx) {
-	duk_hthread *thr = (duk_hthread *) ctx;
-	duk_double_t now;
-	duk_small_int_t entry_lev = duk_get_current_magic(ctx);
-	duk_small_int_t logger_lev;
-	duk_int_t nargs;
-	duk_int_t i;
-	duk_size_t tot_len;
-	const duk_uint8_t *arg_str;
-	duk_size_t arg_len;
-	duk_uint8_t *buf, *p;
-	const duk_uint8_t *q;
-	duk_uint8_t date_buf[DUK_BI_DATE_ISO8601_BUFSIZE];
-	duk_size_t date_len;
-	duk_small_int_t rc;
-
-	DUK_ASSERT(entry_lev >= 0 && entry_lev <= 5);
-	DUK_UNREF(thr);
-
-	/* XXX: sanitize to printable (and maybe ASCII) */
-	/* XXX: better multiline */
-
-	/*
-	 *  Logger arguments are:
-	 *
-	 *    magic: log level (0-5)
-	 *    this: logger
-	 *    stack: plain log args
-	 *
-	 *  We want to minimize memory churn so a two-pass approach
-	 *  is used: first pass formats arguments and computes final
-	 *  string length, second pass copies strings either into a
-	 *  pre-allocated and reused buffer (short messages) or into a
-	 *  newly allocated fixed buffer.  If the backend function plays
-	 *  nice, it won't coerce the buffer to a string (and thus
-	 *  intern it).
-	 */
-
-	nargs = duk_get_top(ctx);
-
-	/* [ arg1 ... argN this ] */
-
-	/*
-	 *  Log level check
-	 */
-
-	duk_push_this(ctx);
-
-	duk_get_prop_stridx(ctx, -1, DUK_STRIDX_LC_L);
-	logger_lev = (duk_small_int_t) duk_get_int(ctx, -1);
-	if (entry_lev < logger_lev) {
-		return 0;
-	}
-	/* log level could be popped but that's not necessary */
-
-	now = DUK_USE_DATE_GET_NOW(ctx);
-	duk_bi_date_format_timeval(now, date_buf);
-	date_len = DUK_STRLEN((const char *) date_buf);
-
-	duk_get_prop_stridx(ctx, -2, DUK_STRIDX_LC_N);
-	duk_to_string(ctx, -1);
-	DUK_ASSERT(duk_is_string(ctx, -1));
-
-	/* [ arg1 ... argN this loggerLevel loggerName ] */
-
-	/*
-	 *  Pass 1
-	 */
-
-	/* Line format: <time> <entryLev> <loggerName>: <msg> */
-
-	tot_len = 0;
-	tot_len += 3 +  /* separators: space, space, colon */
-	           3 +  /* level string */
-	           date_len +  /* time */
-	           duk_get_length(ctx, -1);  /* loggerName */
-
-	for (i = 0; i < nargs; i++) {
-		/* When formatting an argument to a string, errors may happen from multiple
-		 * causes.  In general we want to catch obvious errors like a toLogString()
-		 * throwing an error, but we don't currently try to catch every possible
-		 * error.  In particular, internal errors (like out of memory or stack) are
-		 * not caught.  Also, we expect Error toString() to not throw an error.
-		 */
-		if (duk_is_object(ctx, i)) {
-			/* duk_pcall_prop() may itself throw an error, but we're content
-			 * in catching the obvious errors (like toLogString() throwing an
-			 * error).
-			 */
-			duk_push_hstring_stridx(ctx, DUK_STRIDX_FMT);
-			duk_dup(ctx, i);
-			/* [ arg1 ... argN this loggerLevel loggerName 'fmt' arg ] */
-			/* call: this.fmt(arg) */
-			rc = duk_pcall_prop(ctx, -5 /*obj_index*/, 1 /*nargs*/);
-			if (rc) {
-				/* Keep the error as the result (coercing it might fail below,
-				 * but we don't catch that now).
-				 */
-				;
-			}
-			duk_replace(ctx, i);
-		}
-		(void) duk_to_lstring(ctx, i, &arg_len);
-		tot_len++;  /* sep (even before first one) */
-		tot_len += arg_len;
-	}
-
-	/*
-	 *  Pass 2
-	 */
-
-	/* XXX: There used to be a shared log buffer here, but it was removed
-	 * when dynamic buffer spare was removed.  The problem with using
-	 * bufwriter is that, without the spare, the buffer gets passed on
-	 * as an argument to the raw() call so it'd need to be resized
-	 * (reallocated) anyway.  If raw() call convention is changed, this
-	 * could be made more efficient.
-	 */
-
-	buf = (duk_uint8_t *) duk_push_fixed_buffer(ctx, tot_len);
-	DUK_ASSERT(buf != NULL);
-	p = buf;
-
-	DUK_MEMCPY((void *) p, (const void *) date_buf, (size_t) date_len);
-	p += date_len;
-	*p++ = (duk_uint8_t) DUK_ASC_SPACE;
-
-	q = duk__log_level_strings + (entry_lev * 3);
-	DUK_MEMCPY((void *) p, (const void *) q, (size_t) 3);
-	p += 3;
-
-	*p++ = (duk_uint8_t) DUK_ASC_SPACE;
-
-	arg_str = (const duk_uint8_t *) duk_get_lstring(ctx, -2, &arg_len);
-	DUK_MEMCPY((void *) p, (const void *) arg_str, (size_t) arg_len);
-	p += arg_len;
-
-	*p++ = (duk_uint8_t) DUK_ASC_COLON;
-
-	for (i = 0; i < nargs; i++) {
-		*p++ = (duk_uint8_t) DUK_ASC_SPACE;
-
-		arg_str = (const duk_uint8_t *) duk_get_lstring(ctx, i, &arg_len);
-		DUK_ASSERT(arg_str != NULL);
-		DUK_MEMCPY((void *) p, (const void *) arg_str, (size_t) arg_len);
-		p += arg_len;
-	}
-	DUK_ASSERT(buf + tot_len == p);
-
-	/* [ arg1 ... argN this loggerLevel loggerName buffer ] */
-
-#if defined(DUK_USE_DEBUGGER_SUPPORT) && defined(DUK_USE_DEBUGGER_FWD_LOGGING)
-	/* Do debugger forwarding before raw() because the raw() function
-	 * doesn't get the log level right now.
-	 */
-	if (DUK_HEAP_IS_DEBUGGER_ATTACHED(thr->heap)) {
-		const char *log_buf;
-		duk_size_t sz_buf;
-		log_buf = (const char *) duk_get_buffer(ctx, -1, &sz_buf);
-		DUK_ASSERT(log_buf != NULL);
-		duk_debug_write_notify(thr, DUK_DBG_CMD_LOG);
-		duk_debug_write_int(thr, (duk_int32_t) entry_lev);
-		duk_debug_write_string(thr, (const char *) log_buf, sz_buf);
-		duk_debug_write_eom(thr);
-	}
-#endif
-
-	/* Call this.raw(msg); look up through the instance allows user to override
-	 * the raw() function in the instance or in the prototype for maximum
-	 * flexibility.
-	 */
-	duk_push_hstring_stridx(ctx, DUK_STRIDX_RAW);
-	duk_dup(ctx, -2);
-	/* [ arg1 ... argN this loggerLevel loggerName buffer 'raw' buffer ] */
-	duk_call_prop(ctx, -6, 1);  /* this.raw(buffer) */
-
-	return 0;
-}

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/5977aa27/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_math.c
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_math.c b/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_math.c
deleted file mode 100644
index 62c9341..0000000
--- a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_math.c
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- *  Math built-ins
- */
-
-#include "duk_internal.h"
-
-#if defined(DUK_USE_MATH_BUILTIN)
-
-/*
- *  Use static helpers which can work with math.h functions matching
- *  the following signatures. This is not portable if any of these math
- *  functions is actually a macro.
- *
- *  Typing here is intentionally 'double' wherever values interact with
- *  the standard library APIs.
- */
-
-typedef double (*duk__one_arg_func)(double);
-typedef double (*duk__two_arg_func)(double, double);
-
-DUK_LOCAL duk_ret_t duk__math_minmax(duk_context *ctx, duk_double_t initial, duk__two_arg_func min_max) {
-	duk_idx_t n = duk_get_top(ctx);
-	duk_idx_t i;
-	duk_double_t res = initial;
-	duk_double_t t;
-
-	/*
-	 *  Note: fmax() does not match the E5 semantics.  E5 requires
-	 *  that if -any- input to Math.max() is a NaN, the result is a
-	 *  NaN.  fmax() will return a NaN only if -both- inputs are NaN.
-	 *  Same applies to fmin().
-	 *
-	 *  Note: every input value must be coerced with ToNumber(), even
-	 *  if we know the result will be a NaN anyway: ToNumber() may have
-	 *  side effects for which even order of evaluation matters.
-	 */
-
-	for (i = 0; i < n; i++) {
-		t = duk_to_number(ctx, i);
-		if (DUK_FPCLASSIFY(t) == DUK_FP_NAN || DUK_FPCLASSIFY(res) == DUK_FP_NAN) {
-			/* Note: not normalized, but duk_push_number() will normalize */
-			res = (duk_double_t) DUK_DOUBLE_NAN;
-		} else {
-			res = (duk_double_t) min_max(res, (double) t);
-		}
-	}
-
-	duk_push_number(ctx, res);
-	return 1;
-}
-
-DUK_LOCAL double duk__fmin_fixed(double x, double y) {
-	/* fmin() with args -0 and +0 is not guaranteed to return
-	 * -0 as Ecmascript requires.
-	 */
-	if (x == 0 && y == 0) {
-		/* XXX: what's the safest way of creating a negative zero? */
-		if (DUK_SIGNBIT(x) != 0 || DUK_SIGNBIT(y) != 0) {
-			return -0.0;
-		} else {
-			return +0.0;
-		}
-	}
-#ifdef DUK_USE_MATH_FMIN
-	return DUK_FMIN(x, y);
-#else
-	return (x < y ? x : y);
-#endif
-}
-
-DUK_LOCAL double duk__fmax_fixed(double x, double y) {
-	/* fmax() with args -0 and +0 is not guaranteed to return
-	 * +0 as Ecmascript requires.
-	 */
-	if (x == 0 && y == 0) {
-		if (DUK_SIGNBIT(x) == 0 || DUK_SIGNBIT(y) == 0) {
-			return +0.0;
-		} else {
-			return -0.0;
-		}
-	}
-#ifdef DUK_USE_MATH_FMAX
-	return DUK_FMAX(x, y);
-#else
-	return (x > y ? x : y);
-#endif
-}
-
-DUK_LOCAL double duk__round_fixed(double x) {
-	/* Numbers half-way between integers must be rounded towards +Infinity,
-	 * e.g. -3.5 must be rounded to -3 (not -4).  When rounded to zero, zero
-	 * sign must be set appropriately.  E5.1 Section 15.8.2.15.
-	 *
-	 * Note that ANSI C round() is "round to nearest integer, away from zero",
-	 * which is incorrect for negative values.  Here we make do with floor().
-	 */
-
-	duk_small_int_t c = (duk_small_int_t) DUK_FPCLASSIFY(x);
-	if (c == DUK_FP_NAN || c == DUK_FP_INFINITE || c == DUK_FP_ZERO) {
-		return x;
-	}
-
-	/*
-	 *  x is finite and non-zero
-	 *
-	 *  -1.6 -> floor(-1.1) -> -2
-	 *  -1.5 -> floor(-1.0) -> -1  (towards +Inf)
-	 *  -1.4 -> floor(-0.9) -> -1
-	 *  -0.5 -> -0.0               (special case)
-	 *  -0.1 -> -0.0               (special case)
-	 *  +0.1 -> +0.0               (special case)
-	 *  +0.5 -> floor(+1.0) -> 1   (towards +Inf)
-	 *  +1.4 -> floor(+1.9) -> 1
-	 *  +1.5 -> floor(+2.0) -> 2   (towards +Inf)
-	 *  +1.6 -> floor(+2.1) -> 2
-	 */
-
-	if (x >= -0.5 && x < 0.5) {
-		/* +0.5 is handled by floor, this is on purpose */
-		if (x < 0.0) {
-			return -0.0;
-		} else {
-			return +0.0;
-		}
-	}
-
-	return DUK_FLOOR(x + 0.5);
-}
-
-DUK_LOCAL double duk__pow_fixed(double x, double y) {
-	/* The ANSI C pow() semantics differ from Ecmascript.
-	 *
-	 * E.g. when x==1 and y is +/- infinite, the Ecmascript required
-	 * result is NaN, while at least Linux pow() returns 1.
-	 */
-
-	duk_small_int_t cx, cy, sx;
-
-	DUK_UNREF(cx);
-	DUK_UNREF(sx);
-	cy = (duk_small_int_t) DUK_FPCLASSIFY(y);
-
-	if (cy == DUK_FP_NAN) {
-		goto ret_nan;
-	}
-	if (DUK_FABS(x) == 1.0 && cy == DUK_FP_INFINITE) {
-		goto ret_nan;
-	}
-#if defined(DUK_USE_POW_NETBSD_WORKAROUND)
-	/* See test-bug-netbsd-math-pow.js: NetBSD 6.0 on x86 (at least) does not
-	 * correctly handle some cases where x=+/-0.  Specific fixes to these
-	 * here.
-	 */
-	cx = (duk_small_int_t) DUK_FPCLASSIFY(x);
-	if (cx == DUK_FP_ZERO && y < 0.0) {
-		sx = (duk_small_int_t) DUK_SIGNBIT(x);
-		if (sx == 0) {
-			/* Math.pow(+0,y) should be Infinity when y<0.  NetBSD pow()
-			 * returns -Infinity instead when y is <0 and finite.  The
-			 * if-clause also catches y == -Infinity (which works even
-			 * without the fix).
-			 */
-			return DUK_DOUBLE_INFINITY;
-		} else {
-			/* Math.pow(-0,y) where y<0 should be:
-			 *   - -Infinity if y<0 and an odd integer
-			 *   - Infinity otherwise
-			 * NetBSD pow() returns -Infinity for all finite y<0.  The
-			 * if-clause also catches y == -Infinity (which works even
-			 * without the fix).
-			 */
-
-			/* fmod() return value has same sign as input (negative) so
-			 * the result here will be in the range ]-2,0], 1 indicates
-			 * odd.  If x is -Infinity, NaN is returned and the odd check
-			 * always concludes "not odd" which results in desired outcome.
-			 */
-			double tmp = DUK_FMOD(y, 2);
-			if (tmp == -1.0) {
-				return -DUK_DOUBLE_INFINITY;
-			} else {
-				/* Not odd, or y == -Infinity */
-				return DUK_DOUBLE_INFINITY;
-			}
-		}
-	}
-#endif
-	return DUK_POW(x, y);
-
- ret_nan:
-	return DUK_DOUBLE_NAN;
-}
-
-/* Wrappers for calling standard math library methods.  These may be required
- * on platforms where one or more of the math built-ins are defined as macros
- * or inline functions and are thus not suitable to be used as function pointers.
- */
-#if defined(DUK_USE_AVOID_PLATFORM_FUNCPTRS)
-DUK_LOCAL double duk__fabs(double x) {
-	return DUK_FABS(x);
-}
-DUK_LOCAL double duk__acos(double x) {
-	return DUK_ACOS(x);
-}
-DUK_LOCAL double duk__asin(double x) {
-	return DUK_ASIN(x);
-}
-DUK_LOCAL double duk__atan(double x) {
-	return DUK_ATAN(x);
-}
-DUK_LOCAL double duk__ceil(double x) {
-	return DUK_CEIL(x);
-}
-DUK_LOCAL double duk__cos(double x) {
-	return DUK_COS(x);
-}
-DUK_LOCAL double duk__exp(double x) {
-	return DUK_EXP(x);
-}
-DUK_LOCAL double duk__floor(double x) {
-	return DUK_FLOOR(x);
-}
-DUK_LOCAL double duk__log(double x) {
-	return DUK_LOG(x);
-}
-DUK_LOCAL double duk__sin(double x) {
-	return DUK_SIN(x);
-}
-DUK_LOCAL double duk__sqrt(double x) {
-	return DUK_SQRT(x);
-}
-DUK_LOCAL double duk__tan(double x) {
-	return DUK_TAN(x);
-}
-DUK_LOCAL double duk__atan2(double x, double y) {
-	return DUK_ATAN2(x, y);
-}
-#endif  /* DUK_USE_AVOID_PLATFORM_FUNCPTRS */
-
-/* order must match constants in genbuiltins.py */
-DUK_LOCAL const duk__one_arg_func duk__one_arg_funcs[] = {
-#if defined(DUK_USE_AVOID_PLATFORM_FUNCPTRS)
-	duk__fabs,
-	duk__acos,
-	duk__asin,
-	duk__atan,
-	duk__ceil,
-	duk__cos,
-	duk__exp,
-	duk__floor,
-	duk__log,
-	duk__round_fixed,
-	duk__sin,
-	duk__sqrt,
-	duk__tan
-#else
-	DUK_FABS,
-	DUK_ACOS,
-	DUK_ASIN,
-	DUK_ATAN,
-	DUK_CEIL,
-	DUK_COS,
-	DUK_EXP,
-	DUK_FLOOR,
-	DUK_LOG,
-	duk__round_fixed,
-	DUK_SIN,
-	DUK_SQRT,
-	DUK_TAN
-#endif
-};
-
-/* order must match constants in genbuiltins.py */
-DUK_LOCAL const duk__two_arg_func duk__two_arg_funcs[] = {
-#if defined(DUK_USE_AVOID_PLATFORM_FUNCPTRS)
-	duk__atan2,
-	duk__pow_fixed
-#else
-	DUK_ATAN2,
-	duk__pow_fixed
-#endif
-};
-
-DUK_INTERNAL duk_ret_t duk_bi_math_object_onearg_shared(duk_context *ctx) {
-	duk_small_int_t fun_idx = duk_get_current_magic(ctx);
-	duk__one_arg_func fun;
-
-	DUK_ASSERT(fun_idx >= 0);
-	DUK_ASSERT(fun_idx < (duk_small_int_t) (sizeof(duk__one_arg_funcs) / sizeof(duk__one_arg_func)));
-	fun = duk__one_arg_funcs[fun_idx];
-	duk_push_number(ctx, (duk_double_t) fun((double) duk_to_number(ctx, 0)));
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_math_object_twoarg_shared(duk_context *ctx) {
-	duk_small_int_t fun_idx = duk_get_current_magic(ctx);
-	duk__two_arg_func fun;
-
-	DUK_ASSERT(fun_idx >= 0);
-	DUK_ASSERT(fun_idx < (duk_small_int_t) (sizeof(duk__two_arg_funcs) / sizeof(duk__two_arg_func)));
-	fun = duk__two_arg_funcs[fun_idx];
-	duk_push_number(ctx, (duk_double_t) fun((double) duk_to_number(ctx, 0), (double) duk_to_number(ctx, 1)));
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_math_object_max(duk_context *ctx) {
-	return duk__math_minmax(ctx, -DUK_DOUBLE_INFINITY, duk__fmax_fixed);
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_math_object_min(duk_context *ctx) {
-	return duk__math_minmax(ctx, DUK_DOUBLE_INFINITY, duk__fmin_fixed);
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_math_object_random(duk_context *ctx) {
-	duk_push_number(ctx, (duk_double_t) duk_util_tinyrandom_get_double((duk_hthread *) ctx));
-	return 1;
-}
-
-#else  /* DUK_USE_MATH_BUILTIN */
-
-/* A stubbed built-in is useful for e.g. compilation torture testing with BCC. */
-
-DUK_INTERNAL duk_ret_t duk_bi_math_object_onearg_shared(duk_context *ctx) {
-	DUK_UNREF(ctx);
-	return DUK_RET_UNIMPLEMENTED_ERROR;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_math_object_twoarg_shared(duk_context *ctx) {
-	DUK_UNREF(ctx);
-	return DUK_RET_UNIMPLEMENTED_ERROR;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_math_object_max(duk_context *ctx) {
-	DUK_UNREF(ctx);
-	return DUK_RET_UNIMPLEMENTED_ERROR;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_math_object_min(duk_context *ctx) {
-	DUK_UNREF(ctx);
-	return DUK_RET_UNIMPLEMENTED_ERROR;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_math_object_random(duk_context *ctx) {
-	DUK_UNREF(ctx);
-	return DUK_RET_UNIMPLEMENTED_ERROR;
-}
-
-#endif  /* DUK_USE_MATH_BUILTIN */

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/5977aa27/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_number.c
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_number.c b/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_number.c
deleted file mode 100644
index 4b7abf5..0000000
--- a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_number.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- *  Number built-ins
- */
-
-#include "duk_internal.h"
-
-DUK_LOCAL duk_double_t duk__push_this_number_plain(duk_context *ctx) {
-	duk_hobject *h;
-
-	/* Number built-in accepts a plain number or a Number object (whose
-	 * internal value is operated on).  Other types cause TypeError.
-	 */
-
-	duk_push_this(ctx);
-	if (duk_is_number(ctx, -1)) {
-		DUK_DDD(DUK_DDDPRINT("plain number value: %!T", (duk_tval *) duk_get_tval(ctx, -1)));
-		goto done;
-	}
-	h = duk_get_hobject(ctx, -1);
-	if (!h ||
-	    (DUK_HOBJECT_GET_CLASS_NUMBER(h) != DUK_HOBJECT_CLASS_NUMBER)) {
-		DUK_DDD(DUK_DDDPRINT("unacceptable this value: %!T", (duk_tval *) duk_get_tval(ctx, -1)));
-		DUK_ERROR_TYPE((duk_hthread *) ctx, "number expected");
-	}
-	duk_get_prop_stridx(ctx, -1, DUK_STRIDX_INT_VALUE);
-	DUK_ASSERT(duk_is_number(ctx, -1));
-	DUK_DDD(DUK_DDDPRINT("number object: %!T, internal value: %!T",
-	                     (duk_tval *) duk_get_tval(ctx, -2), (duk_tval *) duk_get_tval(ctx, -1)));
-	duk_remove(ctx, -2);
-
- done:
-	return duk_get_number(ctx, -1);
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_number_constructor(duk_context *ctx) {
-	duk_hthread *thr = (duk_hthread *) ctx;
-	duk_idx_t nargs;
-	duk_hobject *h_this;
-
-	DUK_UNREF(thr);
-
-	/*
-	 *  The Number constructor uses ToNumber(arg) for number coercion
-	 *  (coercing an undefined argument to NaN).  However, if the
-	 *  argument is not given at all, +0 must be used instead.  To do
-	 *  this, a vararg function is used.
-	 */
-
-	nargs = duk_get_top(ctx);
-	if (nargs == 0) {
-		duk_push_int(ctx, 0);
-	}
-	duk_to_number(ctx, 0);
-	duk_set_top(ctx, 1);
-	DUK_ASSERT_TOP(ctx, 1);
-
-	if (!duk_is_constructor_call(ctx)) {
-		return 1;
-	}
-
-	/*
-	 *  E5 Section 15.7.2.1 requires that the constructed object
-	 *  must have the original Number.prototype as its internal
-	 *  prototype.  However, since Number.prototype is non-writable
-	 *  and non-configurable, this doesn't have to be enforced here:
-	 *  The default object (bound to 'this') is OK, though we have
-	 *  to change its class.
-	 *
-	 *  Internal value set to ToNumber(arg) or +0; if no arg given,
-	 *  ToNumber(undefined) = NaN, so special treatment is needed
-	 *  (above).  String internal value is immutable.
-	 */
-
-	/* XXX: helper */
-	duk_push_this(ctx);
-	h_this = duk_get_hobject(ctx, -1);
-	DUK_ASSERT(h_this != NULL);
-	DUK_HOBJECT_SET_CLASS_NUMBER(h_this, DUK_HOBJECT_CLASS_NUMBER);
-
-	DUK_ASSERT(DUK_HOBJECT_GET_PROTOTYPE(thr->heap, h_this) == thr->builtins[DUK_BIDX_NUMBER_PROTOTYPE]);
-	DUK_ASSERT(DUK_HOBJECT_GET_CLASS_NUMBER(h_this) == DUK_HOBJECT_CLASS_NUMBER);
-	DUK_ASSERT(DUK_HOBJECT_HAS_EXTENSIBLE(h_this));
-
-	duk_dup(ctx, 0);  /* -> [ val obj val ] */
-	duk_xdef_prop_stridx(ctx, -2, DUK_STRIDX_INT_VALUE, DUK_PROPDESC_FLAGS_NONE);
-	return 0;  /* no return value -> don't replace created value */
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_number_prototype_value_of(duk_context *ctx) {
-	(void) duk__push_this_number_plain(ctx);
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_number_prototype_to_string(duk_context *ctx) {
-	duk_small_int_t radix;
-	duk_small_uint_t n2s_flags;
-
-	(void) duk__push_this_number_plain(ctx);
-	if (duk_is_undefined(ctx, 0)) {
-		radix = 10;
-	} else {
-		radix = (duk_small_int_t) duk_to_int_check_range(ctx, 0, 2, 36);
-	}
-	DUK_DDD(DUK_DDDPRINT("radix=%ld", (long) radix));
-
-	n2s_flags = 0;
-
-	duk_numconv_stringify(ctx,
-	                      radix /*radix*/,
-	                      0 /*digits*/,
-	                      n2s_flags /*flags*/);
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_number_prototype_to_locale_string(duk_context *ctx) {
-	/* XXX: just use toString() for now; permitted although not recommended.
-	 * nargs==1, so radix is passed to toString().
-	 */
-	return duk_bi_number_prototype_to_string(ctx);
-}
-
-/*
- *  toFixed(), toExponential(), toPrecision()
- */
-
-/* XXX: shared helper for toFixed(), toExponential(), toPrecision()? */
-
-DUK_INTERNAL duk_ret_t duk_bi_number_prototype_to_fixed(duk_context *ctx) {
-	duk_small_int_t frac_digits;
-	duk_double_t d;
-	duk_small_int_t c;
-	duk_small_uint_t n2s_flags;
-
-	frac_digits = (duk_small_int_t) duk_to_int_check_range(ctx, 0, 0, 20);
-	d = duk__push_this_number_plain(ctx);
-
-	c = (duk_small_int_t) DUK_FPCLASSIFY(d);
-	if (c == DUK_FP_NAN || c == DUK_FP_INFINITE) {
-		goto use_to_string;
-	}
-
-	if (d >= 1.0e21 || d <= -1.0e21) {
-		goto use_to_string;
-	}
-
-	n2s_flags = DUK_N2S_FLAG_FIXED_FORMAT |
-	            DUK_N2S_FLAG_FRACTION_DIGITS;
-
-	duk_numconv_stringify(ctx,
-	                      10 /*radix*/,
-	                      frac_digits /*digits*/,
-	                      n2s_flags /*flags*/);
-	return 1;
-
- use_to_string:
-	DUK_ASSERT_TOP(ctx, 2);
-	duk_to_string(ctx, -1);
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_number_prototype_to_exponential(duk_context *ctx) {
-	duk_bool_t frac_undefined;
-	duk_small_int_t frac_digits;
-	duk_double_t d;
-	duk_small_int_t c;
-	duk_small_uint_t n2s_flags;
-
-	d = duk__push_this_number_plain(ctx);
-
-	frac_undefined = duk_is_undefined(ctx, 0);
-	duk_to_int(ctx, 0);  /* for side effects */
-
-	c = (duk_small_int_t) DUK_FPCLASSIFY(d);
-	if (c == DUK_FP_NAN || c == DUK_FP_INFINITE) {
-		goto use_to_string;
-	}
-
-	frac_digits = (duk_small_int_t) duk_to_int_check_range(ctx, 0, 0, 20);
-
-	n2s_flags = DUK_N2S_FLAG_FORCE_EXP |
-	           (frac_undefined ? 0 : DUK_N2S_FLAG_FIXED_FORMAT);
-
-	duk_numconv_stringify(ctx,
-	                      10 /*radix*/,
-	                      frac_digits + 1 /*leading digit + fractions*/,
-	                      n2s_flags /*flags*/);
-	return 1;
-
- use_to_string:
-	DUK_ASSERT_TOP(ctx, 2);
-	duk_to_string(ctx, -1);
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_number_prototype_to_precision(duk_context *ctx) {
-	/* The specification has quite awkward order of coercion and
-	 * checks for toPrecision().  The operations below are a bit
-	 * reordered, within constraints of observable side effects.
-	 */
-
-	duk_double_t d;
-	duk_small_int_t prec;
-	duk_small_int_t c;
-	duk_small_uint_t n2s_flags;
-
-	DUK_ASSERT_TOP(ctx, 1);
-
-	d = duk__push_this_number_plain(ctx);
-	if (duk_is_undefined(ctx, 0)) {
-		goto use_to_string;
-	}
-	DUK_ASSERT_TOP(ctx, 2);
-
-	duk_to_int(ctx, 0);  /* for side effects */
-
-	c = (duk_small_int_t) DUK_FPCLASSIFY(d);
-	if (c == DUK_FP_NAN || c == DUK_FP_INFINITE) {
-		goto use_to_string;
-	}
-
-	prec = (duk_small_int_t) duk_to_int_check_range(ctx, 0, 1, 21);
-
-	n2s_flags = DUK_N2S_FLAG_FIXED_FORMAT |
-	            DUK_N2S_FLAG_NO_ZERO_PAD;
-
-	duk_numconv_stringify(ctx,
-	                      10 /*radix*/,
-	                      prec /*digits*/,
-	                      n2s_flags /*flags*/);
-	return 1;
-
- use_to_string:
-	/* Used when precision is undefined; also used for NaN (-> "NaN"),
-	 * and +/- infinity (-> "Infinity", "-Infinity").
-	 */
-
-	DUK_ASSERT_TOP(ctx, 2);
-	duk_to_string(ctx, -1);
-	return 1;
-}

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/5977aa27/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_object.c
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_object.c b/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_object.c
deleted file mode 100644
index 28509ab..0000000
--- a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_object.c
+++ /dev/null
@@ -1,577 +0,0 @@
-/*
- *  Object built-ins
- */
-
-#include "duk_internal.h"
-
-DUK_INTERNAL duk_ret_t duk_bi_object_constructor(duk_context *ctx) {
-	if (!duk_is_constructor_call(ctx) &&
-	    !duk_is_null_or_undefined(ctx, 0)) {
-		duk_to_object(ctx, 0);
-		return 1;
-	}
-
-	if (duk_is_object(ctx, 0)) {
-		return 1;
-	}
-
-	/* Pointer and buffer primitive values are treated like other
-	 * primitives values which have a fully fledged object counterpart:
-	 * promote to an object value.  Lightfuncs are coerced with
-	 * ToObject() even they could also be returned as is.
-	 */
-	if (duk_check_type_mask(ctx, 0, DUK_TYPE_MASK_STRING |
-	                                DUK_TYPE_MASK_BOOLEAN |
-	                                DUK_TYPE_MASK_NUMBER |
-	                                DUK_TYPE_MASK_POINTER |
-	                                DUK_TYPE_MASK_BUFFER |
-	                                DUK_TYPE_MASK_LIGHTFUNC)) {
-		duk_to_object(ctx, 0);
-		return 1;
-	}
-
-	duk_push_object_helper(ctx,
-	                       DUK_HOBJECT_FLAG_EXTENSIBLE |
-	                       DUK_HOBJECT_CLASS_AS_FLAGS(DUK_HOBJECT_CLASS_OBJECT),
-	                       DUK_BIDX_OBJECT_PROTOTYPE);
-	return 1;
-}
-
-/* Shared helper to implement Object.getPrototypeOf and the ES6
- * Object.prototype.__proto__ getter.
- *
- * http://www.ecma-international.org/ecma-262/6.0/index.html#sec-get-object.prototype.__proto__
- */
-DUK_INTERNAL duk_ret_t duk_bi_object_getprototype_shared(duk_context *ctx) {
-	duk_hthread *thr = (duk_hthread *) ctx;
-	duk_hobject *h;
-	duk_hobject *proto;
-
-	DUK_UNREF(thr);
-
-	/* magic: 0=getter call, 1=Object.getPrototypeOf */
-	if (duk_get_current_magic(ctx) == 0) {
-		duk_push_this_coercible_to_object(ctx);
-		duk_insert(ctx, 0);
-	}
-
-	h = duk_require_hobject_or_lfunc(ctx, 0);
-	/* h is NULL for lightfunc */
-
-	/* XXX: should the API call handle this directly, i.e. attempt
-	 * to duk_push_hobject(ctx, null) would push a null instead?
-	 * (On the other hand 'undefined' would be just as logical, but
-	 * not wanted here.)
-	 */
-
-	if (h == NULL) {
-		duk_push_hobject_bidx(ctx, DUK_BIDX_FUNCTION_PROTOTYPE);
-	} else {
-		proto = DUK_HOBJECT_GET_PROTOTYPE(thr->heap, h);
-		if (proto) {
-			duk_push_hobject(ctx, proto);
-		} else {
-			duk_push_null(ctx);
-		}
-	}
-	return 1;
-}
-
-/* Shared helper to implement ES6 Object.setPrototypeOf and
- * Object.prototype.__proto__ setter.
- *
- * http://www.ecma-international.org/ecma-262/6.0/index.html#sec-get-object.prototype.__proto__
- * http://www.ecma-international.org/ecma-262/6.0/index.html#sec-object.setprototypeof
- */
-DUK_INTERNAL duk_ret_t duk_bi_object_setprototype_shared(duk_context *ctx) {
-	duk_hthread *thr = (duk_hthread *) ctx;
-	duk_hobject *h_obj;
-	duk_hobject *h_new_proto;
-	duk_hobject *h_curr;
-	duk_ret_t ret_success = 1;  /* retval for success path */
-
-	/* Preliminaries for __proto__ and setPrototypeOf (E6 19.1.2.18 steps 1-4);
-	 * magic: 0=setter call, 1=Object.setPrototypeOf
-	 */
-	if (duk_get_current_magic(ctx) == 0) {
-		duk_push_this_check_object_coercible(ctx);
-		duk_insert(ctx, 0);
-		if (!duk_check_type_mask(ctx, 1, DUK_TYPE_MASK_NULL | DUK_TYPE_MASK_OBJECT)) {
-			return 0;
-		}
-
-		/* __proto__ setter returns 'undefined' on success unlike the
-		 * setPrototypeOf() call which returns the target object.
-		 */
-		ret_success = 0;
-	} else {
-		duk_require_object_coercible(ctx, 0);
-		duk_require_type_mask(ctx, 1, DUK_TYPE_MASK_NULL | DUK_TYPE_MASK_OBJECT);
-	}
-
-	h_new_proto = duk_get_hobject(ctx, 1);
-	/* h_new_proto may be NULL */
-	if (duk_is_lightfunc(ctx, 0)) {
-		if (h_new_proto == thr->builtins[DUK_BIDX_FUNCTION_PROTOTYPE]) {
-			goto skip;
-		}
-		goto fail_nonextensible;
-	}
-	h_obj = duk_get_hobject(ctx, 0);
-	if (!h_obj) {
-		goto skip;
-	}
-	DUK_ASSERT(h_obj != NULL);
-
-	/* [[SetPrototypeOf]] standard behavior, E6 9.1.2 */
-	/* TODO: implement Proxy object support here */
-
-	if (h_new_proto == DUK_HOBJECT_GET_PROTOTYPE(thr->heap, h_obj)) {
-		goto skip;
-	}
-	if (!DUK_HOBJECT_HAS_EXTENSIBLE(h_obj)) {
-		goto fail_nonextensible;
-	}
-	for (h_curr = h_new_proto; h_curr != NULL; h_curr = DUK_HOBJECT_GET_PROTOTYPE(thr->heap, h_curr)) {
-		/* Loop prevention */
-		if (h_curr == h_obj) {
-			goto fail_loop;
-		}
-	}
-	DUK_HOBJECT_SET_PROTOTYPE_UPDREF(thr, h_obj, h_new_proto);
-	/* fall thru */
-
- skip:
-	duk_set_top(ctx, 1);
-	return ret_success;
-
- fail_nonextensible:
- fail_loop:
-	return DUK_RET_TYPE_ERROR;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_constructor_get_own_property_descriptor(duk_context *ctx) {
-	/* XXX: no need for indirect call */
-	return duk_hobject_object_get_own_property_descriptor(ctx);
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_constructor_create(duk_context *ctx) {
-	duk_tval *tv;
-	duk_hobject *proto = NULL;
-
-	DUK_ASSERT_TOP(ctx, 2);
-
-	tv = duk_get_tval(ctx, 0);
-	DUK_ASSERT(tv != NULL);
-	if (DUK_TVAL_IS_NULL(tv)) {
-		;
-	} else if (DUK_TVAL_IS_OBJECT(tv)) {
-		proto = DUK_TVAL_GET_OBJECT(tv);
-		DUK_ASSERT(proto != NULL);
-	} else {
-		return DUK_RET_TYPE_ERROR;
-	}
-
-	(void) duk_push_object_helper_proto(ctx,
-	                                    DUK_HOBJECT_FLAG_EXTENSIBLE |
-	                                    DUK_HOBJECT_CLASS_AS_FLAGS(DUK_HOBJECT_CLASS_OBJECT),
-	                                    proto);
-
-	if (!duk_is_undefined(ctx, 1)) {
-		/* [ O Properties obj ] */
-
-		duk_replace(ctx, 0);
-
-		/* [ obj Properties ] */
-
-		/* Just call the "original" Object.defineProperties() to
-		 * finish up.
-		 */
-
-		return duk_bi_object_constructor_define_properties(ctx);
-	}
-
-	/* [ O Properties obj ] */
-
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_constructor_define_property(duk_context *ctx) {
-	duk_hobject *obj;
-	duk_hstring *key;
-	duk_hobject *get;
-	duk_hobject *set;
-	duk_idx_t idx_value;
-	duk_uint_t defprop_flags;
-
-	DUK_ASSERT(ctx != NULL);
-
-	DUK_DDD(DUK_DDDPRINT("Object.defineProperty(): ctx=%p obj=%!T key=%!T desc=%!T",
-	                     (void *) ctx,
-	                     (duk_tval *) duk_get_tval(ctx, 0),
-	                     (duk_tval *) duk_get_tval(ctx, 1),
-	                     (duk_tval *) duk_get_tval(ctx, 2)));
-
-	/* [ obj key desc ] */
-
-	/* Lightfuncs are currently supported by coercing to a temporary
-	 * Function object; changes will be allowed (the coerced value is
-	 * extensible) but will be lost.
-	 */
-	obj = duk_require_hobject_or_lfunc_coerce(ctx, 0);
-	(void) duk_to_string(ctx, 1);
-	key = duk_require_hstring(ctx, 1);
-	(void) duk_require_hobject(ctx, 2);
-
-	DUK_ASSERT(obj != NULL);
-	DUK_ASSERT(key != NULL);
-	DUK_ASSERT(duk_get_hobject(ctx, 2) != NULL);
-
-	/*
-	 *  Validate and convert argument property descriptor (an Ecmascript
-	 *  object) into a set of defprop_flags and possibly property value,
-	 *  getter, and/or setter values on the value stack.
-	 *
-	 *  Lightfunc set/get values are coerced to full Functions.
-	 */
-
-	duk_hobject_prepare_property_descriptor(ctx,
-	                                        2 /*idx_desc*/,
-	                                        &defprop_flags,
-	                                        &idx_value,
-	                                        &get,
-	                                        &set);
-
-	/*
-	 *  Use Object.defineProperty() helper for the actual operation.
-	 */
-
-	duk_hobject_define_property_helper(ctx,
-	                                   defprop_flags,
-	                                   obj,
-	                                   key,
-	                                   idx_value,
-	                                   get,
-	                                   set);
-
-	/* Ignore the normalize/validate helper outputs on the value stack,
-	 * they're popped automatically.
-	 */
-
-	/*
-	 *  Return target object.
-	 */
-
-	duk_push_hobject(ctx, obj);
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_constructor_define_properties(duk_context *ctx) {
-	duk_small_uint_t pass;
-	duk_uint_t defprop_flags;
-	duk_hobject *obj;
-	duk_idx_t idx_value;
-	duk_hobject *get;
-	duk_hobject *set;
-
-	/* Lightfunc handling by ToObject() coercion. */
-	obj = duk_require_hobject_or_lfunc_coerce(ctx, 0);  /* target */
-	DUK_ASSERT(obj != NULL);
-
-	duk_to_object(ctx, 1);        /* properties object */
-
-	DUK_DDD(DUK_DDDPRINT("target=%!iT, properties=%!iT",
-	                     (duk_tval *) duk_get_tval(ctx, 0),
-	                     (duk_tval *) duk_get_tval(ctx, 1)));
-
-	/*
-	 *  Two pass approach to processing the property descriptors.
-	 *  On first pass validate and normalize all descriptors before
-	 *  any changes are made to the target object.  On second pass
-	 *  make the actual modifications to the target object.
-	 *
-	 *  Right now we'll just use the same normalize/validate helper
-	 *  on both passes, ignoring its outputs on the first pass.
-	 */
-
-	for (pass = 0; pass < 2; pass++) {
-		duk_set_top(ctx, 2);  /* -> [ hobject props ] */
-		duk_enum(ctx, 1, DUK_ENUM_OWN_PROPERTIES_ONLY /*enum_flags*/);
-
-		for (;;) {
-			duk_hstring *key;
-
-			/* [ hobject props enum(props) ] */
-
-			duk_set_top(ctx, 3);
-
-			if (!duk_next(ctx, 2, 1 /*get_value*/)) {
-				break;
-			}
-
-			DUK_DDD(DUK_DDDPRINT("-> key=%!iT, desc=%!iT",
-			                     (duk_tval *) duk_get_tval(ctx, -2),
-			                     (duk_tval *) duk_get_tval(ctx, -1)));
-
-			/* [ hobject props enum(props) key desc ] */
-
-			duk_hobject_prepare_property_descriptor(ctx,
-			                                        4 /*idx_desc*/,
-			                                        &defprop_flags,
-			                                        &idx_value,
-			                                        &get,
-			                                        &set);
-
-			/* [ hobject props enum(props) key desc value? getter? setter? ] */
-
-			if (pass == 0) {
-				continue;
-			}
-
-			key = duk_get_hstring(ctx, 3);
-			DUK_ASSERT(key != NULL);
-
-			duk_hobject_define_property_helper(ctx,
-			                                   defprop_flags,
-			                                   obj,
-			                                   key,
-			                                   idx_value,
-			                                   get,
-			                                   set);
-		}
-	}
-
-	/*
-	 *  Return target object
-	 */
-
-	duk_dup(ctx, 0);
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_constructor_seal_freeze_shared(duk_context *ctx) {
-	duk_hthread *thr = (duk_hthread *) ctx;
-	duk_hobject *h;
-	duk_bool_t is_freeze;
-
-	h = duk_require_hobject_or_lfunc(ctx, 0);
-	if (!h) {
-		/* Lightfunc, always success. */
-		return 1;
-	}
-
-	is_freeze = (duk_bool_t) duk_get_current_magic(ctx);
-	duk_hobject_object_seal_freeze_helper(thr, h, is_freeze);
-
-	/* Sealed and frozen objects cannot gain any more properties,
-	 * so this is a good time to compact them.
-	 */
-	duk_hobject_compact_props(thr, h);
-
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_constructor_prevent_extensions(duk_context *ctx) {
-	duk_hthread *thr = (duk_hthread *) ctx;
-	duk_hobject *h;
-
-	h = duk_require_hobject_or_lfunc(ctx, 0);
-	if (!h) {
-		/* Lightfunc, always success. */
-		return 1;
-	}
-	DUK_ASSERT(h != NULL);
-
-	DUK_HOBJECT_CLEAR_EXTENSIBLE(h);
-
-	/* A non-extensible object cannot gain any more properties,
-	 * so this is a good time to compact.
-	 */
-	duk_hobject_compact_props(thr, h);
-
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_constructor_is_sealed_frozen_shared(duk_context *ctx) {
-	duk_hobject *h;
-	duk_bool_t is_frozen;
-	duk_bool_t rc;
-
-	h = duk_require_hobject_or_lfunc(ctx, 0);
-	if (!h) {
-		duk_push_true(ctx);  /* frozen and sealed */
-	} else {
-		is_frozen = duk_get_current_magic(ctx);
-		rc = duk_hobject_object_is_sealed_frozen_helper((duk_hthread *) ctx, h, is_frozen /*is_frozen*/);
-		duk_push_boolean(ctx, rc);
-	}
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_constructor_is_extensible(duk_context *ctx) {
-	duk_hobject *h;
-
-	h = duk_require_hobject_or_lfunc(ctx, 0);
-	if (!h) {
-		duk_push_false(ctx);
-	} else {
-		duk_push_boolean(ctx, DUK_HOBJECT_HAS_EXTENSIBLE(h));
-	}
-	return 1;
-}
-
-/* Shared helper for Object.getOwnPropertyNames() and Object.keys().
- * Magic: 0=getOwnPropertyNames, 1=Object.keys.
- */
-DUK_INTERNAL duk_ret_t duk_bi_object_constructor_keys_shared(duk_context *ctx) {
-	duk_hthread *thr = (duk_hthread *) ctx;
-	duk_hobject *obj;
-#if defined(DUK_USE_ES6_PROXY)
-	duk_hobject *h_proxy_target;
-	duk_hobject *h_proxy_handler;
-	duk_hobject *h_trap_result;
-	duk_uarridx_t i, len, idx;
-#endif
-	duk_small_uint_t enum_flags;
-
-	DUK_ASSERT_TOP(ctx, 1);
-	DUK_UNREF(thr);
-
-	obj = duk_require_hobject_or_lfunc_coerce(ctx, 0);
-	DUK_ASSERT(obj != NULL);
-	DUK_UNREF(obj);
-
-#if defined(DUK_USE_ES6_PROXY)
-	if (DUK_LIKELY(!duk_hobject_proxy_check(thr,
-	                                        obj,
-	                                        &h_proxy_target,
-	                                        &h_proxy_handler))) {
-		goto skip_proxy;
-	}
-
-	duk_push_hobject(ctx, h_proxy_handler);
-	if (!duk_get_prop_stridx(ctx, -1, DUK_STRIDX_OWN_KEYS)) {
-		/* Careful with reachability here: don't pop 'obj' before pushing
-		 * proxy target.
-		 */
-		DUK_DDD(DUK_DDDPRINT("no ownKeys trap, get keys of target instead"));
-		duk_pop_2(ctx);
-		duk_push_hobject(ctx, h_proxy_target);
-		duk_replace(ctx, 0);
-		DUK_ASSERT_TOP(ctx, 1);
-		goto skip_proxy;
-	}
-
-	/* [ obj handler trap ] */
-	duk_insert(ctx, -2);
-	duk_push_hobject(ctx, h_proxy_target);  /* -> [ obj trap handler target ] */
-	duk_call_method(ctx, 1 /*nargs*/);      /* -> [ obj trap_result ] */
-	h_trap_result = duk_require_hobject(ctx, -1);
-	DUK_UNREF(h_trap_result);
-
-	len = (duk_uarridx_t) duk_get_length(ctx, -1);
-	idx = 0;
-	duk_push_array(ctx);
-	for (i = 0; i < len; i++) {
-		/* [ obj trap_result res_arr ] */
-		if (duk_get_prop_index(ctx, -2, i) && duk_is_string(ctx, -1)) {
-			/* XXX: for Object.keys() we should check enumerability of key */
-			/* [ obj trap_result res_arr propname ] */
-			duk_put_prop_index(ctx, -2, idx);
-			idx++;
-		} else {
-			duk_pop(ctx);
-		}
-	}
-
-	/* XXX: missing trap result validation for non-configurable target keys
-	 * (must be present), for non-extensible target all target keys must be
-	 * present and no extra keys can be present.
-	 * http://www.ecma-international.org/ecma-262/6.0/#sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys
-	 */
-
-	/* XXX: for Object.keys() the [[OwnPropertyKeys]] result (trap result)
-	 * should be filtered so that only enumerable keys remain.  Enumerability
-	 * should be checked with [[GetOwnProperty]] on the original object
-	 * (i.e., the proxy in this case).  If the proxy has a getOwnPropertyDescriptor
-	 * trap, it should be triggered for every property.  If the proxy doesn't have
-	 * the trap, enumerability should be checked against the target object instead.
-	 * We don't do any of this now, so Object.keys() and Object.getOwnPropertyNames()
-	 * return the same result now for proxy traps.  We still do clean up the trap
-	 * result, so that Object.keys() and Object.getOwnPropertyNames() will return a
-	 * clean array of strings without gaps.
-	 */
-	return 1;
-
- skip_proxy:
-#endif  /* DUK_USE_ES6_PROXY */
-
-	DUK_ASSERT_TOP(ctx, 1);
-
-	if (duk_get_current_magic(ctx)) {
-		/* Object.keys */
-		enum_flags = DUK_ENUM_OWN_PROPERTIES_ONLY |
-		             DUK_ENUM_NO_PROXY_BEHAVIOR;
-	} else {
-		/* Object.getOwnPropertyNames */
-		enum_flags = DUK_ENUM_INCLUDE_NONENUMERABLE |
-		             DUK_ENUM_OWN_PROPERTIES_ONLY |
-		             DUK_ENUM_NO_PROXY_BEHAVIOR;
-	}
-
-	return duk_hobject_get_enumerated_keys(ctx, enum_flags);
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_prototype_to_string(duk_context *ctx) {
-	duk_push_this(ctx);
-	duk_to_object_class_string_top(ctx);
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_prototype_to_locale_string(duk_context *ctx) {
-	DUK_ASSERT_TOP(ctx, 0);
-	(void) duk_push_this_coercible_to_object(ctx);
-	duk_get_prop_stridx(ctx, 0, DUK_STRIDX_TO_STRING);
-	if (!duk_is_callable(ctx, 1)) {
-		return DUK_RET_TYPE_ERROR;
-	}
-	duk_dup(ctx, 0);  /* -> [ O toString O ] */
-	duk_call_method(ctx, 0);  /* XXX: call method tail call? */
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_prototype_value_of(duk_context *ctx) {
-	(void) duk_push_this_coercible_to_object(ctx);
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_prototype_is_prototype_of(duk_context *ctx) {
-	duk_hthread *thr = (duk_hthread *) ctx;
-	duk_hobject *h_v;
-	duk_hobject *h_obj;
-
-	DUK_ASSERT_TOP(ctx, 1);
-
-	h_v = duk_get_hobject(ctx, 0);
-	if (!h_v) {
-		duk_push_false(ctx);  /* XXX: tail call: return duk_push_false(ctx) */
-		return 1;
-	}
-
-	h_obj = duk_push_this_coercible_to_object(ctx);
-	DUK_ASSERT(h_obj != NULL);
-
-	/* E5.1 Section 15.2.4.6, step 3.a, lookup proto once before compare.
-	 * Prototype loops should cause an error to be thrown.
-	 */
-	duk_push_boolean(ctx, duk_hobject_prototype_chain_contains(thr, DUK_HOBJECT_GET_PROTOTYPE(thr->heap, h_v), h_obj, 0 /*ignore_loop*/));
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_prototype_has_own_property(duk_context *ctx) {
-	return duk_hobject_object_ownprop_helper(ctx, 0 /*required_desc_flags*/);
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_object_prototype_property_is_enumerable(duk_context *ctx) {
-	return duk_hobject_object_ownprop_helper(ctx, DUK_PROPDESC_FLAG_ENUMERABLE /*required_desc_flags*/);
-}

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/5977aa27/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_pointer.c
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_pointer.c b/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_pointer.c
deleted file mode 100644
index 340fbae..0000000
--- a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_pointer.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- *  Pointer built-ins
- */
-
-#include "duk_internal.h"
-
-/*
- *  Constructor
- */
-
-DUK_INTERNAL duk_ret_t duk_bi_pointer_constructor(duk_context *ctx) {
-	/* XXX: this behavior is quite useless now; it would be nice to be able
-	 * to create pointer values from e.g. numbers or strings.  Numbers are
-	 * problematic on 64-bit platforms though.  Hex encoded strings?
-	 */
-	if (duk_get_top(ctx) == 0) {
-		duk_push_pointer(ctx, NULL);
-	} else {
-		duk_to_pointer(ctx, 0);
-	}
-	DUK_ASSERT(duk_is_pointer(ctx, 0));
-	duk_set_top(ctx, 1);
-
-	if (duk_is_constructor_call(ctx)) {
-		duk_push_object_helper(ctx,
-		                       DUK_HOBJECT_FLAG_EXTENSIBLE |
-		                       DUK_HOBJECT_CLASS_AS_FLAGS(DUK_HOBJECT_CLASS_POINTER),
-		                       DUK_BIDX_POINTER_PROTOTYPE);
-
-		/* Pointer object internal value is immutable */
-		duk_dup(ctx, 0);
-		duk_xdef_prop_stridx(ctx, -2, DUK_STRIDX_INT_VALUE, DUK_PROPDESC_FLAGS_NONE);
-	}
-	/* Note: unbalanced stack on purpose */
-
-	return 1;
-}
-
-/*
- *  toString(), valueOf()
- */
-
-DUK_INTERNAL duk_ret_t duk_bi_pointer_prototype_tostring_shared(duk_context *ctx) {
-	duk_tval *tv;
-	duk_small_int_t to_string = duk_get_current_magic(ctx);
-
-	duk_push_this(ctx);
-	tv = duk_require_tval(ctx, -1);
-	DUK_ASSERT(tv != NULL);
-
-	if (DUK_TVAL_IS_POINTER(tv)) {
-		/* nop */
-	} else if (DUK_TVAL_IS_OBJECT(tv)) {
-		duk_hobject *h = DUK_TVAL_GET_OBJECT(tv);
-		DUK_ASSERT(h != NULL);
-
-		/* Must be a "pointer object", i.e. class "Pointer" */
-		if (DUK_HOBJECT_GET_CLASS_NUMBER(h) != DUK_HOBJECT_CLASS_POINTER) {
-			goto type_error;
-		}
-
-		duk_get_prop_stridx(ctx, -1, DUK_STRIDX_INT_VALUE);
-	} else {
-		goto type_error;
-	}
-
-	if (to_string) {
-		duk_to_string(ctx, -1);
-	}
-	return 1;
-
- type_error:
-	return DUK_RET_TYPE_ERROR;
-}

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/5977aa27/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_protos.h
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_protos.h b/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_protos.h
deleted file mode 100644
index f9b42bc..0000000
--- a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_protos.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- *  Prototypes for built-in functions not automatically covered by the
- *  header declarations emitted by genbuiltins.py.
- */
-
-#ifndef DUK_BUILTIN_PROTOS_H_INCLUDED
-#define DUK_BUILTIN_PROTOS_H_INCLUDED
-
-/* Buffer size needed for duk_bi_date_format_timeval().
- * Accurate value is 32 + 1 for NUL termination:
- *   >>> len('+123456-01-23T12:34:56.123+12:34')
- *   32
- * Include additional space to be safe.
- */
-#define  DUK_BI_DATE_ISO8601_BUFSIZE  48
-
-/* Maximum length of CommonJS module identifier to resolve.  Length includes
- * both current module ID, requested (possibly relative) module ID, and a
- * slash in between.
- */
-#define  DUK_BI_COMMONJS_MODULE_ID_LIMIT  256
-
-/* Helpers exposed for internal use */
-DUK_INTERNAL_DECL void duk_bi_date_timeval_to_parts(duk_double_t d, duk_int_t *parts, duk_double_t *dparts, duk_small_uint_t flags);
-DUK_INTERNAL_DECL duk_double_t duk_bi_date_get_timeval_from_dparts(duk_double_t *dparts, duk_small_uint_t flags);
-DUK_INTERNAL_DECL void duk_bi_date_format_timeval(duk_double_t timeval, duk_uint8_t *out_buf);
-DUK_INTERNAL_DECL duk_bool_t duk_bi_date_is_leap_year(duk_int_t year);
-DUK_INTERNAL_DECL duk_bool_t duk_bi_date_timeval_in_valid_range(duk_double_t x);
-DUK_INTERNAL_DECL duk_bool_t duk_bi_date_year_in_valid_range(duk_double_t year);
-DUK_INTERNAL_DECL duk_bool_t duk_bi_date_timeval_in_leeway_range(duk_double_t x);
-/* Built-in providers */
-#if defined(DUK_USE_DATE_NOW_GETTIMEOFDAY)
-DUK_INTERNAL_DECL duk_double_t duk_bi_date_get_now_gettimeofday(duk_context *ctx);
-#endif
-#if defined(DUK_USE_DATE_NOW_TIME)
-DUK_INTERNAL_DECL duk_double_t duk_bi_date_get_now_time(duk_context *ctx);
-#endif
-#if defined(DUK_USE_DATE_NOW_WINDOWS)
-DUK_INTERNAL_DECL duk_double_t duk_bi_date_get_now_windows(duk_context *ctx);
-#endif
-#if defined(DUK_USE_DATE_TZO_GMTIME_R) || defined(DUK_USE_DATE_TZO_GMTIME)
-DUK_INTERNAL_DECL duk_int_t duk_bi_date_get_local_tzoffset_gmtime(duk_double_t d);
-#endif
-#if defined(DUK_USE_DATE_TZO_WINDOWS)
-DUK_INTERNAL_DECL duk_int_t duk_bi_date_get_local_tzoffset_windows(duk_double_t d);
-#endif
-#if defined(DUK_USE_DATE_PRS_STRPTIME)
-DUK_INTERNAL_DECL duk_bool_t duk_bi_date_parse_string_strptime(duk_context *ctx, const char *str);
-#endif
-#if defined(DUK_USE_DATE_PRS_GETDATE)
-DUK_INTERNAL_DECL duk_bool_t duk_bi_date_parse_string_getdate(duk_context *ctx, const char *str);
-#endif
-#if defined(DUK_USE_DATE_FMT_STRFTIME)
-DUK_INTERNAL_DECL duk_bool_t duk_bi_date_format_parts_strftime(duk_context *ctx, duk_int_t *parts, duk_int_t tzoffset, duk_small_uint_t flags);
-#endif
-
-DUK_INTERNAL_DECL
-void duk_bi_json_parse_helper(duk_context *ctx,
-                              duk_idx_t idx_value,
-                              duk_idx_t idx_reviver,
-                              duk_small_uint_t flags);
-DUK_INTERNAL_DECL
-void duk_bi_json_stringify_helper(duk_context *ctx,
-                                  duk_idx_t idx_value,
-                                  duk_idx_t idx_replacer,
-                                  duk_idx_t idx_space,
-                                  duk_small_uint_t flags);
-
-#endif  /* DUK_BUILTIN_PROTOS_H_INCLUDED */

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/5977aa27/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_proxy.c
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_proxy.c b/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_proxy.c
deleted file mode 100644
index 9787ec4..0000000
--- a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_proxy.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- *  Proxy built-in (ES6)
- */
-
-#include "duk_internal.h"
-
-#if defined(DUK_USE_ES6_PROXY)
-DUK_INTERNAL duk_ret_t duk_bi_proxy_constructor(duk_context *ctx) {
-	duk_hobject *h_target;
-	duk_hobject *h_handler;
-
-	if (!duk_is_constructor_call(ctx)) {
-		return DUK_RET_TYPE_ERROR;
-	}
-
-	/* Reject a proxy object as the target because it would need
-	 * special handler in property lookups.  (ES6 has no such restriction)
-	 */
-	h_target = duk_require_hobject_or_lfunc_coerce(ctx, 0);
-	DUK_ASSERT(h_target != NULL);
-	if (DUK_HOBJECT_HAS_EXOTIC_PROXYOBJ(h_target)) {
-		return DUK_RET_TYPE_ERROR;
-	}
-
-	/* Reject a proxy object as the handler because it would cause
-	 * potentially unbounded recursion.  (ES6 has no such restriction)
-	 */
-	h_handler = duk_require_hobject_or_lfunc_coerce(ctx, 1);
-	DUK_ASSERT(h_handler != NULL);
-	if (DUK_HOBJECT_HAS_EXOTIC_PROXYOBJ(h_handler)) {
-		return DUK_RET_TYPE_ERROR;
-	}
-
-	/* XXX: the returned value is exotic in ES6, but we use a
-	 * simple object here with no prototype.  Without a prototype,
-	 * [[DefaultValue]] coercion fails which is abit confusing.
-	 * No callable check/handling in the current Proxy subset.
-	 */
-	(void) duk_push_object_helper_proto(ctx,
-	                                    DUK_HOBJECT_FLAG_EXTENSIBLE |
-	                                    DUK_HOBJECT_FLAG_EXOTIC_PROXYOBJ |
-	                                    DUK_HOBJECT_CLASS_AS_FLAGS(DUK_HOBJECT_CLASS_OBJECT),
-	                                    NULL);
-	DUK_ASSERT_TOP(ctx, 3);
-
-	/* Make _Target and _Handler non-configurable and non-writable.
-	 * They can still be forcibly changed by C code (both user and
-	 * Duktape internal), but not by Ecmascript code.
-	 */
-
-	/* Proxy target */
-	duk_dup(ctx, 0);
-	duk_xdef_prop_stridx(ctx, -2, DUK_STRIDX_INT_TARGET, DUK_PROPDESC_FLAGS_NONE);
-
-	/* Proxy handler */
-	duk_dup(ctx, 1);
-	duk_xdef_prop_stridx(ctx, -2, DUK_STRIDX_INT_HANDLER, DUK_PROPDESC_FLAGS_NONE);
-
-	return 1;  /* replacement handler */
-}
-#else  /* DUK_USE_ES6_PROXY */
-DUK_INTERNAL duk_ret_t duk_bi_proxy_constructor(duk_context *ctx) {
-	DUK_UNREF(ctx);
-	return DUK_RET_UNSUPPORTED_ERROR;
-}
-#endif  /* DUK_USE_ES6_PROXY */

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/5977aa27/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_regexp.c
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_regexp.c b/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_regexp.c
deleted file mode 100644
index 2259c77..0000000
--- a/thirdparty/civetweb-1.10/src/third_party/duktape-1.5.2/src-separate/duk_bi_regexp.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- *  RegExp built-ins
- */
-
-#include "duk_internal.h"
-
-#ifdef DUK_USE_REGEXP_SUPPORT
-
-DUK_LOCAL void duk__get_this_regexp(duk_context *ctx) {
-	duk_hobject *h;
-
-	duk_push_this(ctx);
-	h = duk_require_hobject_with_class(ctx, -1, DUK_HOBJECT_CLASS_REGEXP);
-	DUK_ASSERT(h != NULL);
-	DUK_UNREF(h);
-	duk_insert(ctx, 0);  /* prepend regexp to valstack 0 index */
-}
-
-/* XXX: much to improve (code size) */
-DUK_INTERNAL duk_ret_t duk_bi_regexp_constructor(duk_context *ctx) {
-	duk_hthread *thr = (duk_hthread *) ctx;
-	duk_hobject *h_pattern;
-
-	DUK_ASSERT_TOP(ctx, 2);
-	h_pattern = duk_get_hobject(ctx, 0);
-
-	if (!duk_is_constructor_call(ctx) &&
-	    h_pattern != NULL &&
-	    DUK_HOBJECT_GET_CLASS_NUMBER(h_pattern) == DUK_HOBJECT_CLASS_REGEXP &&
-	    duk_is_undefined(ctx, 1)) {
-		/* Called as a function, pattern has [[Class]] "RegExp" and
-		 * flags is undefined -> return object as is.
-		 */
-		duk_dup(ctx, 0);
-		return 1;
-	}
-
-	/* Else functionality is identical for function call and constructor
-	 * call.
-	 */
-
-	if (h_pattern != NULL &&
-	    DUK_HOBJECT_GET_CLASS_NUMBER(h_pattern) == DUK_HOBJECT_CLASS_REGEXP) {
-		if (duk_is_undefined(ctx, 1)) {
-			duk_bool_t flag_g, flag_i, flag_m;
-			duk_get_prop_stridx(ctx, 0, DUK_STRIDX_SOURCE);
-			flag_g = duk_get_prop_stridx_boolean(ctx, 0, DUK_STRIDX_GLOBAL, NULL);
-			flag_i = duk_get_prop_stridx_boolean(ctx, 0, DUK_STRIDX_IGNORE_CASE, NULL);
-			flag_m = duk_get_prop_stridx_boolean(ctx, 0, DUK_STRIDX_MULTILINE, NULL);
-
-			duk_push_sprintf(ctx, "%s%s%s",
-			                 (const char *) (flag_g ? "g" : ""),
-			                 (const char *) (flag_i ? "i" : ""),
-			                 (const char *) (flag_m ? "m" : ""));
-
-			/* [ ... pattern flags ] */
-		} else {
-			return DUK_RET_TYPE_ERROR;
-		}
-	} else {
-		if (duk_is_undefined(ctx, 0)) {
-			duk_push_string(ctx, "");
-		} else {
-			duk_dup(ctx, 0);
-			duk_to_string(ctx, -1);
-		}
-		if (duk_is_undefined(ctx, 1)) {
-			duk_push_string(ctx, "");
-		} else {
-			duk_dup(ctx, 1);
-			duk_to_string(ctx, -1);
-		}
-
-		/* [ ... pattern flags ] */
-	}
-
-	DUK_DDD(DUK_DDDPRINT("RegExp constructor/function call, pattern=%!T, flags=%!T",
-	                     (duk_tval *) duk_get_tval(ctx, -2), (duk_tval *) duk_get_tval(ctx, -1)));
-
-	/* [ ... pattern flags ] */
-
-	duk_regexp_compile(thr);
-
-	/* [ ... bytecode escaped_source ] */
-
-	duk_regexp_create_instance(thr);
-
-	/* [ ... RegExp ] */
-
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_regexp_prototype_exec(duk_context *ctx) {
-	duk__get_this_regexp(ctx);
-
-	/* [ regexp input ] */
-
-	duk_regexp_match((duk_hthread *) ctx);
-
-	/* [ result ] */
-
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_regexp_prototype_test(duk_context *ctx) {
-	duk__get_this_regexp(ctx);
-
-	/* [ regexp input ] */
-
-	/* result object is created and discarded; wasteful but saves code space */
-	duk_regexp_match((duk_hthread *) ctx);
-
-	/* [ result ] */
-
-	duk_push_boolean(ctx, (duk_is_null(ctx, -1) ? 0 : 1));
-
-	return 1;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_regexp_prototype_to_string(duk_context *ctx) {
-	duk_hstring *h_bc;
-	duk_small_int_t re_flags;
-
-#if 0
-	/* A little tricky string approach to provide the flags string.
-	 * This depends on the specific flag values in duk_regexp.h,
-	 * which needs to be asserted for.  In practice this doesn't
-	 * produce more compact code than the easier approach in use.
-	 */
-
-	const char *flag_strings = "gim\0gi\0gm\0g\0";
-	duk_uint8_t flag_offsets[8] = {
-		(duk_uint8_t) 3,   /* flags: ""    */
-		(duk_uint8_t) 10,  /* flags: "g"   */
-		(duk_uint8_t) 5,   /* flags: "i"   */
-		(duk_uint8_t) 4,   /* flags: "gi"  */
-		(duk_uint8_t) 2,   /* flags: "m"   */
-		(duk_uint8_t) 7,   /* flags: "gm"  */
-		(duk_uint8_t) 1,   /* flags: "im"  */
-		(duk_uint8_t) 0,   /* flags: "gim" */
-	};
-	DUK_ASSERT(DUK_RE_FLAG_GLOBAL == 1);
-	DUK_ASSERT(DUK_RE_FLAG_IGNORE_CASE == 2);
-	DUK_ASSERT(DUK_RE_FLAG_MULTILINE == 4);
-#endif
-
-	duk__get_this_regexp(ctx);
-
-	/* [ regexp ] */
-
-	duk_get_prop_stridx(ctx, 0, DUK_STRIDX_SOURCE);
-	duk_get_prop_stridx(ctx, 0, DUK_STRIDX_INT_BYTECODE);
-	h_bc = duk_get_hstring(ctx, -1);
-	DUK_ASSERT(h_bc != NULL);
-	DUK_ASSERT(DUK_HSTRING_GET_BYTELEN(h_bc) >= 1);
-	DUK_ASSERT(DUK_HSTRING_GET_CHARLEN(h_bc) >= 1);
-	DUK_ASSERT(DUK_HSTRING_GET_DATA(h_bc)[0] < 0x80);
-	re_flags = (duk_small_int_t) DUK_HSTRING_GET_DATA(h_bc)[0];
-
-	/* [ regexp source bytecode ] */
-
-#if 1
-	/* This is a cleaner approach and also produces smaller code than
-	 * the other alternative.  Use duk_require_string() for format
-	 * safety (although the source property should always exist).
-	 */
-	duk_push_sprintf(ctx, "/%s/%s%s%s",
-	                 (const char *) duk_require_string(ctx, -2),  /* require to be safe */
-	                 (re_flags & DUK_RE_FLAG_GLOBAL) ? "g" : "",
-	                 (re_flags & DUK_RE_FLAG_IGNORE_CASE) ? "i" : "",
-	                 (re_flags & DUK_RE_FLAG_MULTILINE) ? "m" : "");
-#else
-	/* This should not be necessary because no-one should tamper with the
-	 * regexp bytecode, but is prudent to avoid potential segfaults if that
-	 * were to happen for some reason.
-	 */
-	re_flags &= 0x07;
-	DUK_ASSERT(re_flags >= 0 && re_flags <= 7);  /* three flags */
-	duk_push_sprintf(ctx, "/%s/%s",
-	                 (const char *) duk_require_string(ctx, -2),
-	                 (const char *) (flag_strings + flag_offsets[re_flags]));
-#endif
-
-	return 1;
-}
-
-#else  /* DUK_USE_REGEXP_SUPPORT */
-
-DUK_INTERNAL duk_ret_t duk_bi_regexp_constructor(duk_context *ctx) {
-	DUK_UNREF(ctx);
-	return DUK_RET_UNSUPPORTED_ERROR;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_regexp_prototype_exec(duk_context *ctx) {
-	DUK_UNREF(ctx);
-	return DUK_RET_UNSUPPORTED_ERROR;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_regexp_prototype_test(duk_context *ctx) {
-	DUK_UNREF(ctx);
-	return DUK_RET_UNSUPPORTED_ERROR;
-}
-
-DUK_INTERNAL duk_ret_t duk_bi_regexp_prototype_to_string(duk_context *ctx) {
-	DUK_UNREF(ctx);
-	return DUK_RET_UNSUPPORTED_ERROR;
-}
-
-#endif  /* DUK_USE_REGEXP_SUPPORT */


Mime
View raw message