Jason Volk
96ad8aa4cf
ircd::js: Add object::clone(); minor object interface cleanup.
2016-11-27 21:46:08 -08:00
Jason Volk
ea4d74de2b
ircd::js: Import operator<< from ircd:: to optimize implicit conversions.
2016-11-27 19:05:40 -08:00
Jason Volk
6156d8eb92
ircd::js: Split version functions into file.
2016-11-27 19:02:23 -08:00
Jason Volk
7fd111487d
ircd::js: Add a branch in trap::function handler for constructors.
2016-11-25 22:53:31 -08:00
Jason Volk
a149d56afa
ircd::js: Swap the flags and arity argument order for trap::function.
2016-11-25 22:52:56 -08:00
Jason Volk
f2340367be
ircd::js: Add vector CallArgs related conversions.
2016-11-25 22:52:11 -08:00
Jason Volk
062e013617
ircd::js: GC Weak pointer callback logging stubs.
2016-11-25 19:23:49 -08:00
Jason Volk
a4f55b4627
ircd::mods: Reorganize and distill interface.
2016-11-25 19:23:49 -08:00
Jason Volk
abf1dda3a6
ircd::js: Customize GC; emancipation from template types.
2016-11-25 19:23:49 -08:00
Jason Volk
01d814ea1a
ircd::js: Add trap::property; Improve trap construction interface.
2016-11-25 19:23:49 -08:00
Jason Volk
8d92c8a9c4
ircd::js: Improve trap debug formatting.
2016-11-25 19:23:49 -08:00
Jason Volk
1e1b7c8ce9
ircd::js: Workaround SpiderMonkey linkage bug when DEBUG is defined.
2016-11-25 19:23:48 -08:00
Jason Volk
fbbe8e604a
ircd::js: Add reflection and decompilation at the task level.
2016-11-25 19:23:48 -08:00
Jason Volk
fb06cd3567
ircd::js: More effective empty string handling in constructions.
2016-11-25 19:23:48 -08:00
Jason Volk
66c28da325
ircd::js: Add bytecodes support to Object.
2016-11-25 19:23:48 -08:00
Jason Volk
4c6e182241
ircd::js: Add script bytecode and compile-test utils.
2016-11-25 19:23:48 -08:00
Jason Volk
6c54215336
ircd::js: Add handler for runtime Preserve Wrapper callback.
2016-11-25 19:23:48 -08:00
Jason Volk
36a7ffba37
ircd::js: Add an overload for hash(string) -> ircd::util::hash().
2016-11-25 19:23:48 -08:00
Jason Volk
3ec62bba09
ircd::js: Attempt at an ObjectExpression with an initializer list.
2016-11-25 19:23:48 -08:00
Jason Volk
3e8aaf0c13
ircd::js: #define DEBUG
internally for JS when RB_DEBUG is also set.
2016-11-25 19:23:48 -08:00
Jason Volk
f2a395b879
ircd::js: Improve for_each().
2016-11-25 19:23:48 -08:00
Jason Volk
4edfd51106
ircd::js: Various fixes for conversions and root-ordering through calls.
2016-11-25 19:23:48 -08:00
Jason Volk
044259f841
ircd::locale: Add an std::ostream convenience for std::u16string in our ns.
2016-11-25 19:23:48 -08:00
Jason Volk
0e47468e63
ircd::js: Add JSON support.
2016-11-25 19:23:47 -08:00
Jason Volk
3e4a9e58f7
ircd::js: Improve trap function interface.
2016-11-25 19:23:47 -08:00
Jason Volk
88fd6971ec
ircd::js: Improve private data slot interface related.
2016-11-25 19:23:47 -08:00
Jason Volk
6aae248357
ircd::js: Fix various debug log messages.
2016-11-25 19:23:47 -08:00
Jason Volk
254f5b921a
ircd::js: Fixes to async state related.
2016-11-25 19:23:47 -08:00
Jason Volk
411bed10b1
ircd::js: Fix trap object production / object construction.
2016-11-25 19:23:47 -08:00
Jason Volk
61017f4cdc
ircd::js: Add tracing support for GC.
...
ircd::js: Add template constexprs for jsapi handle types.
2016-11-25 19:23:47 -08:00
Jason Volk
20e62f04df
ircd::js: Minor context interface cleanup; prevent task struct address change.
2016-11-25 19:23:47 -08:00
Jason Volk
8554fc858b
ircd::log: Add function to logger with facility argument.
2016-11-25 19:23:47 -08:00
Jason Volk
e3f3543d65
ircd::ctx: Zero the interruption flag before the throw to user handler.
2016-11-25 19:23:47 -08:00
Jason Volk
90f81bb871
ircd::js: Return undefined for args::operator[]; bounds check on args::at().
2016-11-25 19:23:46 -08:00
Jason Volk
a44e6f701f
ircd::js: Fix pending exception propagation on interleaving stack.
2016-11-25 19:23:46 -08:00
Jason Volk
c558df48bc
ircd: Add convenience templates for shared_from()/weak_from().
2016-11-25 19:23:46 -08:00
Jason Volk
ae4057b1d5
ircd::js: Use std::string for trap mapping.
2016-11-25 19:23:33 -08:00
Jason Volk
a3c06466fb
ircd::js: Add an inefficient std::u16string conversion for string.
2016-11-13 16:34:27 -08:00
Jason Volk
559bc530c8
ircd::js: Improve off-thread compilation error handling.
2016-11-13 16:34:27 -08:00
Jason Volk
c8402577c3
ircd::js: GC related fixes.
2016-11-13 16:34:27 -08:00
Jason Volk
c3e6c52192
ircd::js: Improve private slot access.
2016-11-13 16:34:27 -08:00
Jason Volk
7a99d919d6
ircd::js: Improve reserved data access.
2016-11-13 16:34:27 -08:00
Jason Volk
25a2dd906c
ircd::util: Strengthen the strong typedef.
2016-11-13 16:34:27 -08:00
Jason Volk
84383d41d8
ircd::js: Fix unconditional cast of this
to object
type in trap::on_call handlers.
2016-11-13 16:34:24 -08:00
Jason Volk
fcc654699d
ircd::locale: Add char16_t conversion overloads for unterminated strings.
...
ircd::js: Use sized conversions when calling ircd::locale.
2016-11-13 16:34:06 -08:00
Jason Volk
e6ba493bd3
ircd::js: Improve script compilation exceptions.
2016-11-13 16:34:06 -08:00
Jason Volk
290fa43c43
ircd::util: Add bernstein hash overloads for 16bit chars.
2016-11-13 16:34:06 -08:00
Jason Volk
e3e0d81828
ircd::js: Add string internal-data observer via closure.
2016-11-13 16:34:06 -08:00
Jason Volk
12e11445c3
ircd::js: Add overload to construct prototyped trap object.
2016-11-13 16:34:06 -08:00
Jason Volk
b8f5366f52
ircd::js: Improve trap callback arguments; add this
value.
2016-11-13 16:34:00 -08:00
Jason Volk
292b3fc8e8
ircd::js: Get/Set object prototype.
2016-11-13 16:33:25 -08:00
Jason Volk
67d9f11fbc
ircd::js: Add constructible-id overload for get()/set()/has()/del().
2016-11-13 16:33:25 -08:00
Jason Volk
da78598d86
ircd::mapi: Rectify linkage of the header symbol name string.
2016-11-13 16:33:25 -08:00
Jason Volk
0d2d21b49f
ircd::js: Add asynchronous/concurrent compilation.
2016-11-13 16:33:24 -08:00
Jason Volk
ee5f48672f
ircd::js: Various type and conversion tweaks.
2016-11-13 16:33:24 -08:00
Jason Volk
6cc89f2613
ircd::js: Add uninitialized constructor for cheap object handle creation.
2016-11-13 16:33:24 -08:00
Jason Volk
edd77d2265
ircd::js: Add asynchronous state and completion target mechanism.
2016-11-13 16:33:22 -08:00
Jason Volk
bfb5948191
ircd::js: Allow value copy.
2016-11-13 16:32:42 -08:00
Jason Volk
333b0dca5a
ircd::js: Use a script object in the task (more flexible than function).
2016-11-13 16:32:42 -08:00
Jason Volk
f54c4215b4
ircd::ctx: Add queue: amalgam of a standard queue container with a dock.
2016-11-13 16:32:42 -08:00
Jason Volk
b0bc025ced
ircd::ctx: Add notify() to dock to rotate the waiters in contrast to notify_one().
2016-11-13 16:32:42 -08:00
Jason Volk
6f7dde8fdf
ircd::js: Quadword value construction.
2016-11-13 16:32:41 -08:00
Jason Volk
0e541cd3a9
ircd::js: get()/set()/has()/del() for array object indexes.
2016-11-13 16:32:41 -08:00
Jason Volk
d5fd794511
ircd::js: Add JSProp flags as arguments for constructing trap.
2016-11-13 16:32:41 -08:00
Jason Volk
f2b59a57dc
ircd::js: Variadic arguments for object construction via trap.
2016-11-13 16:32:41 -08:00
Jason Volk
0fbbed7daf
ircd::js: Vector construction from Object of array type.
2016-11-13 16:32:41 -08:00
Jason Volk
d2b3bedca6
ircd::js: Task identification (PID) and reference counted management.
2016-11-13 16:32:41 -08:00
Jason Volk
cca79d87fc
ircd::js: Assertions for pending exceptions.
2016-11-13 16:32:41 -08:00
Jason Volk
e214d6e40c
ircd::js: Remove boolean return type from trap hook for enumeration.
2016-11-13 16:32:41 -08:00
Jason Volk
bf540caead
ircd::js: Order arguments to call() more intuitively.
2016-11-13 16:32:41 -08:00
Jason Volk
42f0c6b06b
ircd::js: Additional object utils; array-object type support.
2016-11-13 16:32:41 -08:00
Jason Volk
8a3f592753
ircd::js: Add property flag reflection.
2016-11-13 16:32:41 -08:00
Jason Volk
3fcd3d2bb0
ircd::js: Trap find() overload with JSString type.
2016-11-13 16:32:40 -08:00
Jason Volk
5ebd15c983
ircd::js: Persistent string for trap map to be sure.
2016-11-13 16:32:40 -08:00
Jason Volk
64057fc101
ircd::js: Script decompilation; check if function is ctor; interning for string.
2016-11-13 16:32:40 -08:00
Jason Volk
12c1755899
ircd::js: Functions to get current zone; debug callbacks for zone; etc.
2016-11-13 16:32:40 -08:00
Jason Volk
c70ddd5a80
ircd::js: Allow setting the ECMA version for a compartment.
2016-11-13 16:32:40 -08:00
Jason Volk
771907127e
ircd::js: Add string tokenizer; fix split; minor cleanup.
2016-11-13 16:32:40 -08:00
Jason Volk
845e81e446
ircd::locale: Move char16_t conversions into namespace.
2016-11-13 16:32:40 -08:00
Jason Volk
cff506e0be
ircd::js: Add global/task struct.
2016-11-13 16:32:40 -08:00
Jason Volk
d0ec6497c7
ircd::js: Add object private/reserved getters and setters.
2016-11-13 16:32:40 -08:00
Jason Volk
d5abc39e49
ircd::js: Template the string type passed to overloaded JS::CompileFunction()
2016-11-13 16:32:40 -08:00
Jason Volk
2846f80a8d
ircd::js: Make trap tree root thread local near rt/cx.
2016-11-13 16:32:40 -08:00
Jason Volk
e2ae907dfa
ircd::util: Improve the timer to start/stop with accumulation.
2016-11-13 16:32:39 -08:00
Jason Volk
5e81c26fdf
ircd::js: Add and use calls for current_compartment().
2016-11-13 16:32:39 -08:00
Jason Volk
639dd7903b
ircd::js: Move TLS assignment out of runtime/context (though this doesn't matter).
2016-11-13 16:32:39 -08:00
Jason Volk
96d4bb4775
ircd::js: Add convenience functions to struct args.
2016-11-13 16:32:39 -08:00
Jason Volk
ac14c2a4db
ircd::js: Add generator state class.
2016-11-13 16:32:39 -08:00
Jason Volk
3bfb3d3319
ircd::js: Argument forwarding for function call operator.
2016-11-13 16:32:39 -08:00
Jason Volk
b9137fd475
ircd::js: Disambiguate vector<value> initializer list constructor.
2016-11-13 16:32:39 -08:00
Jason Volk
7e18e32ce4
ircd::js: Improve/cleanup exception string generaton related.
2016-11-13 16:32:39 -08:00
Jason Volk
72eb8ff8da
ircd::js: Add conversions for JS::Heap<> type to handle types.
2016-11-13 16:32:39 -08:00
Jason Volk
164f650a0f
ircd::js: Use JS::Heap<> container for exception value.
2016-11-13 16:32:39 -08:00
Jason Volk
6b5bab0871
ircd::js: Convert all JS type wrappers into templates and typedef on requsted GC.
...
Templates are now in the namespace basic:: i.e `basic::value<>`
Typedefs are in ircd::js:: matching the original non-template types.
Ex. stack-duration type in template form is: `basic::value<lifetime::stack>`
Ex. stack-duration type in typedef form is `value`
Ex. heap-duration type in template form is: `basic::value<lifetime::heap>`
Ex. heap-duration type in typedef form is: `heap_value`
2016-11-13 16:32:39 -08:00
Jason Volk
7e66df914a
ircd::js: Add debug dump() calls from JS_DEBUG ifdef'ed api.
2016-11-13 16:32:39 -08:00
Jason Volk
54c8044ca1
ircd::js: Add trap_function alternative to full object trap.
2016-11-13 16:32:38 -08:00
Jason Volk
56d8e429a2
ircd::js: Add pointer_value() to store external host pointers in JS::Value.
2016-11-13 16:32:38 -08:00
Jason Volk
21e96eaedf
ircd::js: id creation constructors and comparison.
2016-11-13 16:32:38 -08:00
Jason Volk
5de2622bd1
ircd::js: Add string literal constructor to prevent any alloc/copy/free.
2016-11-13 16:32:38 -08:00
Jason Volk
fcc9cdee74
ircd::js: Function to get JSFunction arity.
2016-11-13 16:32:38 -08:00