flok 0.0.12 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +17 -4
- data/Rakefile +76 -10
- data/app/drivers/chrome/README.md +37 -22
- data/app/drivers/chrome/Rakefile +77 -3
- data/app/drivers/chrome/build_context.rb +17 -0
- data/app/drivers/chrome/cakery/spec.js.erb +11 -0
- data/app/drivers/chrome/config.yml +18 -3
- data/app/drivers/chrome/pipe.rb +70 -0
- data/app/drivers/chrome/spec/config/config.js +39 -0
- data/app/drivers/chrome/spec/init/qunit.js +3828 -0
- data/app/drivers/chrome/spec/spec/controller_debug_spec.js +16 -0
- data/app/drivers/chrome/spec/spec/debug_spec.js +18 -0
- data/app/drivers/chrome/spec/spec/sel_scope_spec.js +160 -0
- data/app/drivers/chrome/spec/spec/vars_spec.js +28 -0
- data/app/drivers/chrome/src/bench.js +19 -0
- data/app/drivers/chrome/src/controller.js +164 -0
- data/app/drivers/chrome/src/debug.js +75 -0
- data/app/drivers/chrome/src/dispatch.js +52 -0
- data/app/drivers/chrome/src/event.js +10 -0
- data/app/drivers/chrome/src/helpers.js +4 -4
- data/app/drivers/chrome/src/net.js +8 -36
- data/app/drivers/chrome/src/segue.js +18 -0
- data/app/drivers/chrome/src/sockio.js +34 -0
- data/app/drivers/chrome/src/timer.js +9 -0
- data/app/drivers/chrome/src/ui.js +192 -87
- data/app/drivers/chrome/src/vendor/socket.io.js +3 -0
- data/app/kern/controller.js +116 -0
- data/app/kern/dispatch.js +171 -0
- data/app/kern/macro.rb +24 -0
- data/{output.js → app/kern/mod/controller.js} +0 -0
- data/app/kern/mod/debug.js +120 -0
- data/app/kern/mod/event.js +29 -0
- data/app/kern/mod/net.js +17 -0
- data/app/kern/mod/segue.js +36 -0
- data/app/kern/mod/sockio.js +1 -0
- data/app/kern/mod/ui.js +2 -0
- data/app/kern/net_cb.js +25 -0
- data/app/kern/services/rest.rb +310 -0
- data/app/kern/services/timer.rb +30 -0
- data/app/kern/tel.js +40 -0
- data/bin/flok +61 -17
- data/docs/architecture.md +3 -15
- data/docs/client_api.md +21 -0
- data/docs/compilation.md +31 -5
- data/docs/controllers.md +97 -0
- data/docs/datatypes.md +42 -0
- data/docs/debug_server.md +17 -0
- data/docs/drivers.md +52 -0
- data/docs/images/flok_arch.png +0 -0
- data/docs/images/ui_surface_and_views.png +0 -0
- data/docs/images/view_and_spot.png +0 -0
- data/docs/interactive.md +35 -0
- data/docs/kernel_api.md +37 -0
- data/docs/messaging.md +110 -0
- data/docs/mod/controller.md +35 -0
- data/docs/mod/debug.md +32 -0
- data/docs/mod/debug/dump_ui.md +64 -0
- data/docs/mod/event.md +16 -0
- data/docs/mod/net.md +21 -0
- data/docs/mod/persist.md +36 -0
- data/docs/mod/sockio.md +13 -0
- data/docs/mod/timer.md +8 -0
- data/docs/mod/ui.md +40 -0
- data/docs/modules.md +9 -0
- data/docs/project.md +40 -0
- data/docs/project_layout.md +8 -5
- data/docs/rakefile.md +13 -0
- data/docs/scheduling.md +45 -0
- data/docs/services.md +74 -0
- data/docs/services/rest.md +21 -0
- data/docs/services/timer.md +21 -0
- data/docs/testing.md +80 -1
- data/flok.gemspec +4 -0
- data/lib/flok.rb +6 -0
- data/lib/flok/build.rb +75 -26
- data/lib/flok/interactive.rb +58 -0
- data/lib/flok/platform.rb +32 -0
- data/lib/flok/project.rb +63 -0
- data/lib/flok/project_template/Gemfile.erb +2 -0
- data/lib/flok/project_template/app/controllers/controller.rb +1 -0
- data/lib/flok/service_compiler_templates/services.js.erb +13 -0
- data/lib/flok/services_compiler.rb +94 -0
- data/lib/flok/user_compiler.rb +295 -0
- data/lib/flok/user_compiler_templates/ctable.js.erb +33 -0
- data/lib/flok/utilities.rb +16 -0
- data/lib/flok/version.rb +1 -1
- data/logo.png +0 -0
- data/opt/clojure/compiler.jar +0 -0
- data/opt/clojure/flokjure +53 -0
- data/opt/clojure/main.js +13 -0
- data/spec/env/etc.rb +2 -0
- data/spec/env/iface.rb +64 -0
- data/spec/env/kern.rb +128 -0
- data/spec/etc/cli_spec.rb +117 -0
- data/spec/etc/lib/build_spec.rb +188 -0
- data/spec/etc/lib/platform_spec.rb +33 -0
- data/spec/etc/lib/project_spec.rb +25 -0
- data/spec/etc/macro_spec.rb +35 -0
- data/spec/etc/service_compiler/service0.rb +10 -0
- data/spec/etc/services_compiler_spec.rb +41 -0
- data/spec/etc/user_compiler/controller0.rb +14 -0
- data/spec/etc/user_compiler_spec.rb +68 -0
- data/spec/iface/driver/assets/debug_socket_server.js +42 -0
- data/spec/iface/driver/assets/node_modules/socket.io/.npmignore +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/.travis.yml +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/History.md +491 -0
- data/spec/iface/driver/assets/node_modules/socket.io/LICENSE +22 -0
- data/spec/iface/driver/assets/node_modules/socket.io/Makefile +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/Readme.md +374 -0
- data/spec/iface/driver/assets/node_modules/socket.io/index.js +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/lib/client.js +247 -0
- data/spec/iface/driver/assets/node_modules/socket.io/lib/index.js +379 -0
- data/spec/iface/driver/assets/node_modules/socket.io/lib/namespace.js +242 -0
- data/spec/iface/driver/assets/node_modules/socket.io/lib/socket.js +449 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/.jshintrc +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/.npmignore +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/History.md +157 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/Makefile +33 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/Readme.md +156 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/browser.js +147 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/component.json +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/debug.js +197 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/node.js +209 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/node_modules/ms/.npmignore +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/node_modules/ms/README.md +33 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/node_modules/ms/index.js +111 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/node_modules/ms/package.json +46 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/debug/package.json +73 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/.npmignore +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/.travis.yml +7 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/History.md +408 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/Makefile +23 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/README.md +517 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/index.js +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/lib/engine.io.js +126 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/lib/server.js +391 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/lib/socket.js +393 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/lib/transport.js +114 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/lib/transports/index.js +36 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/lib/transports/polling-jsonp.js +108 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/lib/transports/polling-xhr.js +101 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/lib/transports/polling.js +279 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/lib/transports/websocket.js +110 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/base64id/.npmignore +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/base64id/README.md +18 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/base64id/lib/base64id.js +103 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/base64id/package.json +48 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/.jshintrc +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/.npmignore +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/History.md +132 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/Makefile +33 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/Readme.md +153 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/browser.js +144 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/component.json +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/debug.js +197 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/node.js +129 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/node_modules/ms/.npmignore +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/node_modules/ms/README.md +33 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/node_modules/ms/index.js +111 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/node_modules/ms/package.json +46 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/debug/package.json +71 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/.npmignore +17 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/.travis.yml +45 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/.zuul.yml +18 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/History.md +100 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/LICENSE +22 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/Makefile +26 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/Readme.md +202 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/index.js +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/browser.js +594 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/index.js +467 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/lib/keys.js +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/.npmignore +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/.travis.yml +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/LICENCE +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/README.md +75 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/index.js +28 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/package.json +62 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/after/test/after-test.js +120 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/.npmignore +17 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/Makefile +8 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/README.md +17 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/index.js +29 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json +40 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/arraybuffer.slice/test/slice-buffer.js +227 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.npmignore +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.travis.yml +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/LICENSE-MIT +22 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/README.md +23 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/grunt.js +39 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js +59 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json +56 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/base64-arraybuffer/test/base64-arraybuffer_test.js +72 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/.npmignore +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/.zuul.yml +8 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/Makefile +14 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/README.md +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/index.js +49 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/package.json +44 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/blob/test/index.js +52 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/.npmignore +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/History.md +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/LICENSE +20 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/Makefile +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/README.md +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/fixtures/big.json +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/index.js +58 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/README.md +54 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/build/build.js +209 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/component.json +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/index.js +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json +53 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/package.json +39 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/has-binary/test.js +108 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.gitattributes +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.npmignore +20 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/.travis.yml +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/Gruntfile.js +72 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/LICENSE-GPL.txt +278 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/LICENSE-MIT.txt +20 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/README.md +119 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/bower.json +14 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/component.json +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/package.json +73 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/generate-test-data.py +47 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/index.html +35 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/tests/tests.js +242 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/utf8.js +239 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/x.js +46 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/package.json +58 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/.npmignore +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/.travis.yml +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/History.md +322 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/Makefile +40 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/README.md +183 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/binding.gyp +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/Makefile +355 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/Release/.deps/Release/bufferutil.node.d +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/Release/.deps/Release/obj.target/bufferutil/src/bufferutil.o.d +25 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/Release/.deps/Release/obj.target/validation/src/validation.o.d +25 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/Release/.deps/Release/validation.node.d +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/Release/bufferutil.node +0 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/Release/linker.lock +0 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/Release/validation.node +0 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/binding.Makefile +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/bufferutil.target.mk +156 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/config.gypi +117 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/gyp-mac-tool +512 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/validation.target.mk +156 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/builderror.log +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/index.js +49 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferPool.js +59 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferUtil.fallback.js +47 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/BufferUtil.js +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/ErrorCodes.js +24 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Receiver.hixie.js +180 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Receiver.js +585 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Sender.hixie.js +120 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Sender.js +229 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Validation.fallback.js +12 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/Validation.js +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/WebSocket.js +879 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/WebSocketServer.js +467 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/browser.js +43 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/nan/.dntrc +37 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/nan/CHANGELOG.md +216 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/nan/LICENSE.md +13 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/nan/README.md +1208 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/nan/appveyor.yml +32 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/nan/include_dirs.js +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/nan/nan.h +2428 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/nan/package.json +84 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/.npmignore +7 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/Makefile +12 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/README.md +69 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/lib/options.js +86 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/options/package.json +51 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/.npmignore +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/.travis.yml +17 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/README.md +97 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/index.js +125 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/package.json +68 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/ultron/test.js +327 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/package.json +78 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/src/bufferutil.cc +117 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/src/validation.cc +145 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/wscat/README.md +26 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/wscat/bin/wscat +222 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/node_modules/ws/wscat/package.json +28 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/engine.io/package.json +74 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/.npmignore +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/LICENSE +20 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/Makefile +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/README.md +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/fixtures/big.json +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/gen.js +17 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/index.js +57 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/node_modules/isarray/README.md +54 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/node_modules/isarray/build/build.js +209 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/node_modules/isarray/component.json +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/node_modules/isarray/index.js +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/node_modules/isarray/package.json +53 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/package.json +37 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/has-binary-data/test.js +108 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/.npmignore +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/History.md +25 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/Readme.md +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/index.js +144 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/.jshintrc +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/.npmignore +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/History.md +126 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/Makefile +33 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/Readme.md +153 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/browser.js +144 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/component.json +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/debug.js +197 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/node.js +129 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/node_modules/ms/.npmignore +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/node_modules/ms/README.md +33 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/node_modules/ms/index.js +111 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/node_modules/ms/package.json +46 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/debug/package.json +69 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/object-keys/.jscs.json +55 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/object-keys/.npmignore +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/object-keys/.travis.yml +18 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/object-keys/CHANGELOG.md +151 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/object-keys/LICENSE +21 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/object-keys/README.md +76 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/object-keys/index.js +70 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/object-keys/isArguments.js +18 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/object-keys/package.json +82 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.npmignore +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.travis.yml +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/.zuul.yml +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/History.md +87 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/Makefile +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/Readme.md +73 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/bench/bench.js +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/bench/index.js +81 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/binary.js +141 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/index.js +396 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/is-buffer.js +13 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/LICENSE.txt +22 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/README.md +131 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/benchmark.js +3918 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/package.json +62 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/test/run-test.sh +9 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/benchmark/test/test.js +2074 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/.npmignore +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/.travis.yml +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/History.md +52 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/Makefile +7 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/Readme.md +74 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/bower.json +21 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/component.json +14 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/index.js +164 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/component-emitter/package.json +47 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/Readme.md +115 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/debug.js +137 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/index.js +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/lib/debug.js +147 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/debug/package.json +64 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/README.md +54 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/build/build.js +209 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/component.json +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/index.js +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/isarray/package.json +53 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.gitmodules +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.jamignore +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.npmignore +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/.travis.yml +33 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/LICENSE +20 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/README.md +126 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/lib/json3.js +861 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/lib/json3.min.js +18 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/node_modules/json3/package.json +102 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/node_modules/socket.io-parser/package.json +51 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-adapter/package.json +41 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/History.md +386 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/LICENSE +22 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/README.md +173 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/index.js +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/lib/index.js +87 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/lib/manager.js +503 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/lib/on.js +24 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/lib/socket.js +385 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/lib/url.js +73 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/.npmignore +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/History.md +12 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/Makefile +8 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/Readme.md +34 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/component.json +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/index.js +85 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/package.json +45 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/backo2/test/index.js +18 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/.npmignore +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/History.md +13 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/Makefile +7 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/Readme.md +64 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/component.json +13 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/index.js +23 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-bind/package.json +47 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/.npmignore +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/.travis.yml +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/History.md +52 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/Makefile +7 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/Readme.md +74 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/bower.json +21 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/component.json +14 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/index.js +164 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/component-emitter/package.json +47 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/debug/Readme.md +115 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/debug/debug.js +137 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/debug/index.js +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/debug/lib/debug.js +147 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/debug/package.json +64 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.npmignore +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.travis.yml +41 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/.zuul.yml +20 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/History.md +468 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/Makefile +37 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/README.md +265 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/engine.io.js +4040 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/index.js +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/index.js +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js +705 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js +159 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/index.js +53 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/polling-jsonp.js +233 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/polling-xhr.js +384 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/polling.js +245 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/websocket.js +238 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/lib/xmlhttprequest.js +36 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/.bin/wscat +190 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/.npmignore +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/History.md +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/Makefile +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/Readme.md +24 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/component.json +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/index.js +7 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/package.json +44 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-inherit/test/inherit.js +21 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/.jshintrc +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/.npmignore +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/History.md +144 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/Makefile +33 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/Readme.md +156 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/browser.js +147 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/component.json +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/debug.js +197 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/node.js +129 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/node_modules/ms/.npmignore +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/node_modules/ms/README.md +33 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/node_modules/ms/index.js +111 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/node_modules/ms/package.json +46 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/debug/package.json +71 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/.npmignore +17 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/.travis.yml +45 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/.zuul.yml +18 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/History.md +100 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/LICENSE +22 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/Makefile +26 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/Readme.md +202 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/index.js +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/lib/browser.js +594 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/lib/index.js +467 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/lib/keys.js +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/.npmignore +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/.travis.yml +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/LICENCE +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/README.md +75 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/index.js +28 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/package.json +62 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/after/test/after-test.js +120 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/.npmignore +17 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/Makefile +8 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/README.md +17 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/index.js +29 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/package.json +40 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/arraybuffer.slice/test/slice-buffer.js +227 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.npmignore +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/.travis.yml +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/LICENSE-MIT +22 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/README.md +23 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/grunt.js +39 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js +59 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/package.json +56 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/base64-arraybuffer/test/base64-arraybuffer_test.js +72 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/.npmignore +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/.zuul.yml +8 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/Makefile +14 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/README.md +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/index.js +49 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/package.json +44 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/blob/test/index.js +52 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/.npmignore +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/History.md +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/LICENSE +20 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/Makefile +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/README.md +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/fixtures/big.json +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/index.js +58 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/README.md +54 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/build/build.js +209 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/component.json +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/index.js +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/node_modules/isarray/package.json +53 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/package.json +39 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/has-binary/test.js +108 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/.gitattributes +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/.npmignore +20 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/.travis.yml +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/Gruntfile.js +72 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/LICENSE-GPL.txt +278 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/LICENSE-MIT.txt +20 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/README.md +119 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/bower.json +14 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/component.json +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/package.json +73 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/tests/generate-test-data.py +47 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/tests/index.html +35 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/tests/tests.js +242 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/utf8.js +239 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/node_modules/utf8/x.js +46 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/engine.io-parser/package.json +58 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/.npmignore +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/History.md +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/Makefile +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/Readme.md +24 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/component.json +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/index.js +23 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/node_modules/global/.gitignore +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/node_modules/global/History.md +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/node_modules/global/Makefile +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/node_modules/global/Readme.md +20 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/node_modules/global/component.json +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/node_modules/global/index.js +8 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/node_modules/global/package.json +40 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/node_modules/global/test/index.html +17 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/node_modules/global/test/mocha.css +199 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/node_modules/global/test/mocha.js +4699 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/node_modules/global/test/test.js +22 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/has-cors/package.json +57 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/Makefile +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/index.js +32 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/.npmignore +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/History.md +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/Makefile +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/Readme.md +61 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/example.js +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/index.js +38 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/.npmignore +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/History.md +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/Makefile +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/Readme.md +44 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/index.js +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/node_modules/callsite/package.json +45 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/node_modules/better-assert/package.json +65 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/package.json +37 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parsejson/test.js +21 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/Makefile +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/index.js +37 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/.npmignore +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/History.md +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/Makefile +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/Readme.md +61 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/example.js +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/index.js +38 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/.npmignore +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/History.md +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/Makefile +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/Readme.md +44 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/index.js +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/node_modules/callsite/package.json +45 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/node_modules/better-assert/package.json +65 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/package.json +37 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseqs/test.js +27 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/History.md +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/Makefile +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/index.js +39 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/.npmignore +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/History.md +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/Makefile +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/Readme.md +61 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/example.js +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/index.js +38 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/.npmignore +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/History.md +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/Makefile +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/Readme.md +44 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/index.js +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/package.json +45 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/node_modules/better-assert/package.json +65 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/package.json +45 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/parseuri/test.js +51 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/.npmignore +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/.travis.yml +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/History.md +312 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/Makefile +40 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/README.md +171 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/bench/parser.benchmark.js +115 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/bench/sender.benchmark.js +66 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/bench/speed.js +105 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/bench/util.js +105 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/bin/wscat +190 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/binding.gyp +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/Makefile +355 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/Release/.deps/Release/bufferutil.node.d +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/Release/.deps/Release/obj.target/bufferutil/src/bufferutil.o.d +23 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/Release/.deps/Release/obj.target/validation/src/validation.o.d +23 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/Release/.deps/Release/validation.node.d +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/Release/bufferutil.node +0 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/Release/linker.lock +0 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/Release/validation.node +0 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/binding.Makefile +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/bufferutil.target.mk +156 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/config.gypi +117 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/gyp-mac-tool +512 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build/validation.target.mk +156 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/builderror.log +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/fileapi/.npmignore +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/fileapi/package.json +18 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/fileapi/public/app.js +39 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/fileapi/public/index.html +22 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/fileapi/public/uploader.js +55 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/fileapi/server.js +103 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/serverstats-express_3/package.json +17 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/serverstats-express_3/public/index.html +33 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/serverstats-express_3/server.js +21 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/serverstats/package.json +17 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/serverstats/public/index.html +33 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/serverstats/server.js +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/examples/ssl.js +59 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/index.js +26 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/BufferPool.js +59 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/BufferUtil.fallback.js +47 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/BufferUtil.js +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/ErrorCodes.js +24 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.hixie.js +180 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js +591 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Sender.hixie.js +123 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Sender.js +227 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Validation.fallback.js +12 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Validation.js +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js +818 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocketServer.js +460 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/browser.js +43 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/commander/.npmignore +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/commander/.travis.yml +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/commander/History.md +107 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/commander/Makefile +7 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/commander/Readme.md +262 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/commander/index.js +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/commander/lib/commander.js +1026 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/commander/package.json +60 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/nan/.index.js +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/nan/LICENSE +43 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/nan/README.md +705 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/nan/nan.h +884 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/nan/package.json +53 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/.npmignore +7 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/Makefile +12 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/README.md +69 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/lib/options.js +86 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/package.json +51 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/tinycolor/.gitignore +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/tinycolor/README.md +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/tinycolor/example.js +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/tinycolor/package.json +48 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/tinycolor/tinycolor.js +31 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/package.json +82 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/src/bufferutil.cc +117 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/src/validation.cc +145 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/BufferPool.test.js +63 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/Receiver.hixie.test.js +158 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/Receiver.test.js +255 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/Sender.hixie.test.js +134 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/Sender.test.js +24 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/Validation.test.js +23 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/WebSocket.integration.js +44 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/WebSocket.test.js +1724 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/WebSocketServer.test.js +1103 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/autobahn-server.js +29 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/autobahn.js +52 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/fixtures/agent1-cert.pem +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/fixtures/agent1-key.pem +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/fixtures/ca1-cert.pem +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/fixtures/ca1-key.pem +17 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/fixtures/certificate.pem +13 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/fixtures/key.pem +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/fixtures/request.pem +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/fixtures/textfile +9 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/hybi-common.js +99 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/test/testserver.js +180 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/LICENSE +22 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/README.md +57 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/autotest.watchr +8 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/example/demo.js +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/lib/XMLHttpRequest.js +642 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/package.json +42 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/tests/test-constants.js +13 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/tests/test-events.js +50 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/tests/test-exceptions.js +62 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/tests/test-headers.js +76 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/tests/test-redirect-302.js +41 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/tests/test-redirect-303.js +41 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/tests/test-redirect-307.js +43 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/tests/test-request-methods.js +62 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/tests/test-request-protocols.js +34 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest/tests/testdata.txt +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/package.json +84 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/.npmignore +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/History.md +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/LICENSE +20 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/Makefile +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/README.md +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/fixtures/big.json +1 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/index.js +58 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/node_modules/isarray/README.md +54 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/node_modules/isarray/build/build.js +209 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/node_modules/isarray/component.json +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/node_modules/isarray/index.js +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/node_modules/isarray/package.json +53 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/package.json +39 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/has-binary/test.js +108 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof/.npmignore +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof/Makefile +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof/Readme.md +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof/component.json +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof/index.js +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/indexof/package.json +32 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/.npmignore +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/History.md +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/Makefile +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/Readme.md +31 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/component.json +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/index.js +84 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/package.json +35 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/object-component/test/object.js +48 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/History.md +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/Makefile +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/index.js +25 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/.npmignore +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/History.md +15 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/Makefile +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/Readme.md +61 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/example.js +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/index.js +38 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/.npmignore +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/History.md +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/Makefile +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/Readme.md +44 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/index.js +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/node_modules/callsite/package.json +45 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/node_modules/better-assert/package.json +65 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/package.json +37 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/parseuri/test.js +42 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/to-array/.npmignore +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/to-array/LICENCE +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/to-array/README.md +22 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/to-array/index.js +13 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/node_modules/to-array/package.json +59 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/package.json +90 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-client/socket.io.js +7000 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/.npmignore +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/.travis.yml +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/.zuul.yml +16 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/History.md +97 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/Makefile +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/Readme.md +73 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/bench/bench.js +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/bench/index.js +81 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/bg.gif +0 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/binary.js +141 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/index.js +400 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/is-buffer.js +13 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/LICENSE.txt +22 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/README.md +131 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/benchmark.js +3918 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/package.json +62 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/test/run-test.sh +9 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/benchmark/test/test.js +2074 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/.npmignore +2 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/.travis.yml +4 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/History.md +52 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/Makefile +7 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/Readme.md +74 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/bower.json +21 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/component.json +14 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/index.js +164 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/package.json +47 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/debug/Readme.md +115 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/debug/debug.js +137 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/debug/index.js +5 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/debug/lib/debug.js +147 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/debug/package.json +64 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/isarray/README.md +54 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/isarray/build/build.js +209 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/isarray/component.json +19 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/isarray/index.js +3 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/isarray/package.json +53 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/.gitmodules +6 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/.jamignore +10 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/.npmignore +11 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/.travis.yml +33 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/LICENSE +20 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/README.md +126 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/lib/json3.js +861 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/lib/json3.min.js +18 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/node_modules/json3/package.json +102 -0
- data/spec/iface/driver/assets/node_modules/socket.io/node_modules/socket.io-parser/package.json +51 -0
- data/spec/iface/driver/assets/node_modules/socket.io/package.json +80 -0
- data/spec/iface/driver/assets/sockio_server.js +38 -0
- data/spec/iface/driver/controller_spec.rb +107 -0
- data/spec/iface/driver/debug_socketio_spec.rb +76 -0
- data/spec/iface/driver/debug_spec.rb +27 -0
- data/spec/iface/driver/net_spec.rb +80 -0
- data/spec/iface/driver/ping_spec.rb +53 -0
- data/spec/iface/driver/pipe_spec.rb +31 -0
- data/spec/iface/driver/sockio_spec.rb +52 -0
- data/spec/iface/driver/timer_spec.rb +39 -0
- data/spec/iface/driver/ui_spec.rb +157 -0
- data/spec/iface/kern/debug_spec.rb +40 -0
- data/spec/iface/kern/event_spec.rb +46 -0
- data/spec/iface/kern/net_spec.rb +27 -0
- data/spec/iface/kern/ping_spec.rb +123 -0
- data/spec/iface/kern/pipe_spec.rb +30 -0
- data/spec/kern/assets/controller0.rb +14 -0
- data/spec/kern/assets/controller1.rb +29 -0
- data/spec/kern/assets/controller_bare.rb +8 -0
- data/spec/kern/assets/controller_context.rb +9 -0
- data/spec/kern/assets/controller_def.rb +22 -0
- data/spec/kern/assets/controller_spots.rb +9 -0
- data/spec/kern/assets/controller_spots_embed.rb +19 -0
- data/spec/kern/assets/controller_spots_embed_removed.rb +28 -0
- data/spec/kern/assets/embed_info.rb +29 -0
- data/spec/kern/assets/event_gw.rb +21 -0
- data/spec/kern/assets/goto.rb +29 -0
- data/spec/kern/assets/goto2.rb +19 -0
- data/spec/kern/assets/lower_event.rb +30 -0
- data/spec/kern/assets/raise_event.rb +30 -0
- data/spec/kern/assets/rest_service.rb +21 -0
- data/spec/kern/assets/send_event.rb +14 -0
- data/spec/kern/assets/test_event.rb +14 -0
- data/spec/kern/assets/test_event2.rb +26 -0
- data/spec/kern/assets/test_event3.rb +21 -0
- data/spec/kern/assets/timer_service.rb +20 -0
- data/spec/kern/controller_spec.rb +500 -0
- data/spec/kern/debug_spec.rb +38 -0
- data/spec/kern/debug_ui_spec.rb +243 -0
- data/spec/kern/net_spec.rb +14 -0
- data/spec/kern/rest_service_spec.rb +45 -0
- data/spec/kern/timer_service_spec.rb +40 -0
- data/spec/lib/helpers.rb +318 -0
- data/spec/lib/io_extensions.rb +13 -0
- data/spec/lib/rspec_extensions.rb +219 -0
- data/spec/lib/temp_dir.rb +57 -0
- metadata +1664 -14
- data/app/drivers/iface/ui.js +0 -31
- data/app/kern/hello.js +0 -1
- data/docs/driver_interface.md +0 -61
- data/docs/interface.md +0 -5
- data/docs/platform_drivers.md +0 -36
- data/spec/build_valid_spec.rb +0 -61
- data/spec/drivers/net_spec.rb +0 -159
- data/spec/helpers.rb +0 -140
@@ -0,0 +1,32 @@
|
|
1
|
+
# http://www.appveyor.com/docs/appveyor-yml
|
2
|
+
|
3
|
+
# Test against these versions of Node.js.
|
4
|
+
environment:
|
5
|
+
matrix:
|
6
|
+
- nodejs_version: "0.8"
|
7
|
+
- nodejs_version: "0.10"
|
8
|
+
- nodejs_version: "0.11"
|
9
|
+
|
10
|
+
# Install scripts. (runs after repo cloning)
|
11
|
+
install:
|
12
|
+
# Get the latest stable version of Node 0.STABLE.latest
|
13
|
+
- npm install npm
|
14
|
+
- move node_modules npm
|
15
|
+
- ps: Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version)
|
16
|
+
# Typical npm stuff.
|
17
|
+
- npm/.bin/npm install
|
18
|
+
- npm/.bin/npm run rebuild-tests
|
19
|
+
|
20
|
+
# Post-install test scripts.
|
21
|
+
test_script:
|
22
|
+
# Output useful info for debugging.
|
23
|
+
- node --version
|
24
|
+
- npm --version
|
25
|
+
- cmd: npm test
|
26
|
+
|
27
|
+
# Don't actually build.
|
28
|
+
build: off
|
29
|
+
|
30
|
+
# Set build version format here instead of in the admin panel.
|
31
|
+
version: "{build}"
|
32
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
console.log(require('path').relative('.', __dirname));
|
@@ -0,0 +1,2428 @@
|
|
1
|
+
/*********************************************************************
|
2
|
+
* NAN - Native Abstractions for Node.js
|
3
|
+
*
|
4
|
+
* Copyright (c) 2014 NAN contributors:
|
5
|
+
* - Rod Vagg <https://github.com/rvagg>
|
6
|
+
* - Benjamin Byholm <https://github.com/kkoopa>
|
7
|
+
* - Trevor Norris <https://github.com/trevnorris>
|
8
|
+
* - Nathan Rajlich <https://github.com/TooTallNate>
|
9
|
+
* - Brett Lawson <https://github.com/brett19>
|
10
|
+
* - Ben Noordhuis <https://github.com/bnoordhuis>
|
11
|
+
*
|
12
|
+
* MIT License <https://github.com/rvagg/nan/blob/master/LICENSE.md>
|
13
|
+
*
|
14
|
+
* Version 1.4.1: current Node unstable: 0.11.14, Node stable: 0.10.33
|
15
|
+
*
|
16
|
+
* See https://github.com/rvagg/nan for the latest update to this file
|
17
|
+
**********************************************************************************/
|
18
|
+
|
19
|
+
#ifndef NAN_H_
|
20
|
+
#define NAN_H_
|
21
|
+
|
22
|
+
#include <uv.h>
|
23
|
+
#include <node.h>
|
24
|
+
#include <node_buffer.h>
|
25
|
+
#include <node_version.h>
|
26
|
+
#include <node_object_wrap.h>
|
27
|
+
#include <string.h>
|
28
|
+
#include <limits.h>
|
29
|
+
#if defined(_MSC_VER)
|
30
|
+
# pragma warning( disable : 4530 )
|
31
|
+
#endif
|
32
|
+
#include <string>
|
33
|
+
|
34
|
+
#if defined(__GNUC__) && !(defined(DEBUG) && DEBUG)
|
35
|
+
# define NAN_INLINE inline __attribute__((always_inline))
|
36
|
+
#elif defined(_MSC_VER) && !(defined(DEBUG) && DEBUG)
|
37
|
+
# define NAN_INLINE __forceinline
|
38
|
+
#else
|
39
|
+
# define NAN_INLINE inline
|
40
|
+
#endif
|
41
|
+
|
42
|
+
#if defined(__GNUC__) && \
|
43
|
+
!(defined(V8_DISABLE_DEPRECATIONS) && V8_DISABLE_DEPRECATIONS)
|
44
|
+
# define NAN_DEPRECATED __attribute__((deprecated))
|
45
|
+
#elif defined(_MSC_VER) && \
|
46
|
+
!(defined(V8_DISABLE_DEPRECATIONS) && V8_DISABLE_DEPRECATIONS)
|
47
|
+
# define NAN_DEPRECATED __declspec(deprecated)
|
48
|
+
#else
|
49
|
+
# define NAN_DEPRECATED
|
50
|
+
#endif
|
51
|
+
|
52
|
+
// some generic helpers
|
53
|
+
|
54
|
+
template<typename T> NAN_INLINE bool NanSetPointerSafe(
|
55
|
+
T *var
|
56
|
+
, T val
|
57
|
+
) {
|
58
|
+
if (var) {
|
59
|
+
*var = val;
|
60
|
+
return true;
|
61
|
+
} else {
|
62
|
+
return false;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
template<typename T> NAN_INLINE T NanGetPointerSafe(
|
67
|
+
T *var
|
68
|
+
, T fallback = reinterpret_cast<T>(0)
|
69
|
+
) {
|
70
|
+
if (var) {
|
71
|
+
return *var;
|
72
|
+
} else {
|
73
|
+
return fallback;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
NAN_INLINE bool NanBooleanOptionValue(
|
78
|
+
v8::Local<v8::Object> optionsObj
|
79
|
+
, v8::Handle<v8::String> opt, bool def
|
80
|
+
) {
|
81
|
+
if (def) {
|
82
|
+
return optionsObj.IsEmpty()
|
83
|
+
|| !optionsObj->Has(opt)
|
84
|
+
|| optionsObj->Get(opt)->BooleanValue();
|
85
|
+
} else {
|
86
|
+
return !optionsObj.IsEmpty()
|
87
|
+
&& optionsObj->Has(opt)
|
88
|
+
&& optionsObj->Get(opt)->BooleanValue();
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
NAN_INLINE bool NanBooleanOptionValue(
|
93
|
+
v8::Local<v8::Object> optionsObj
|
94
|
+
, v8::Handle<v8::String> opt
|
95
|
+
) {
|
96
|
+
return NanBooleanOptionValue(optionsObj, opt, false);
|
97
|
+
}
|
98
|
+
|
99
|
+
NAN_INLINE uint32_t NanUInt32OptionValue(
|
100
|
+
v8::Local<v8::Object> optionsObj
|
101
|
+
, v8::Handle<v8::String> opt
|
102
|
+
, uint32_t def
|
103
|
+
) {
|
104
|
+
return !optionsObj.IsEmpty()
|
105
|
+
&& optionsObj->Has(opt)
|
106
|
+
&& optionsObj->Get(opt)->IsNumber()
|
107
|
+
? optionsObj->Get(opt)->Uint32Value()
|
108
|
+
: def;
|
109
|
+
}
|
110
|
+
|
111
|
+
template<typename T>
|
112
|
+
v8::Local<T> NanNew(v8::Handle<T>);
|
113
|
+
|
114
|
+
template<typename T>
|
115
|
+
NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {
|
116
|
+
return NanNew(val);
|
117
|
+
}
|
118
|
+
|
119
|
+
template<typename T>
|
120
|
+
NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {
|
121
|
+
return val;
|
122
|
+
}
|
123
|
+
|
124
|
+
#if (NODE_MODULE_VERSION > 0x000B)
|
125
|
+
// Node 0.11+ (0.11.3 and below won't compile with these)
|
126
|
+
|
127
|
+
# define _NAN_METHOD_ARGS_TYPE const v8::FunctionCallbackInfo<v8::Value>&
|
128
|
+
# define _NAN_METHOD_ARGS _NAN_METHOD_ARGS_TYPE args
|
129
|
+
# define _NAN_METHOD_RETURN_TYPE void
|
130
|
+
|
131
|
+
# define _NAN_GETTER_ARGS_TYPE const v8::PropertyCallbackInfo<v8::Value>&
|
132
|
+
# define _NAN_GETTER_ARGS _NAN_GETTER_ARGS_TYPE args
|
133
|
+
# define _NAN_GETTER_RETURN_TYPE void
|
134
|
+
|
135
|
+
# define _NAN_SETTER_ARGS_TYPE const v8::PropertyCallbackInfo<void>&
|
136
|
+
# define _NAN_SETTER_ARGS _NAN_SETTER_ARGS_TYPE args
|
137
|
+
# define _NAN_SETTER_RETURN_TYPE void
|
138
|
+
|
139
|
+
# define _NAN_PROPERTY_GETTER_ARGS_TYPE \
|
140
|
+
const v8::PropertyCallbackInfo<v8::Value>&
|
141
|
+
# define _NAN_PROPERTY_GETTER_ARGS _NAN_PROPERTY_GETTER_ARGS_TYPE args
|
142
|
+
# define _NAN_PROPERTY_GETTER_RETURN_TYPE void
|
143
|
+
|
144
|
+
# define _NAN_PROPERTY_SETTER_ARGS_TYPE \
|
145
|
+
const v8::PropertyCallbackInfo<v8::Value>&
|
146
|
+
# define _NAN_PROPERTY_SETTER_ARGS _NAN_PROPERTY_SETTER_ARGS_TYPE args
|
147
|
+
# define _NAN_PROPERTY_SETTER_RETURN_TYPE void
|
148
|
+
|
149
|
+
# define _NAN_PROPERTY_ENUMERATOR_ARGS_TYPE \
|
150
|
+
const v8::PropertyCallbackInfo<v8::Array>&
|
151
|
+
# define _NAN_PROPERTY_ENUMERATOR_ARGS _NAN_PROPERTY_ENUMERATOR_ARGS_TYPE args
|
152
|
+
# define _NAN_PROPERTY_ENUMERATOR_RETURN_TYPE void
|
153
|
+
|
154
|
+
# define _NAN_PROPERTY_DELETER_ARGS_TYPE \
|
155
|
+
const v8::PropertyCallbackInfo<v8::Boolean>&
|
156
|
+
# define _NAN_PROPERTY_DELETER_ARGS \
|
157
|
+
_NAN_PROPERTY_DELETER_ARGS_TYPE args
|
158
|
+
# define _NAN_PROPERTY_DELETER_RETURN_TYPE void
|
159
|
+
|
160
|
+
# define _NAN_PROPERTY_QUERY_ARGS_TYPE \
|
161
|
+
const v8::PropertyCallbackInfo<v8::Integer>&
|
162
|
+
# define _NAN_PROPERTY_QUERY_ARGS _NAN_PROPERTY_QUERY_ARGS_TYPE args
|
163
|
+
# define _NAN_PROPERTY_QUERY_RETURN_TYPE void
|
164
|
+
|
165
|
+
# define _NAN_INDEX_GETTER_ARGS_TYPE \
|
166
|
+
const v8::PropertyCallbackInfo<v8::Value>&
|
167
|
+
# define _NAN_INDEX_GETTER_ARGS _NAN_INDEX_GETTER_ARGS_TYPE args
|
168
|
+
# define _NAN_INDEX_GETTER_RETURN_TYPE void
|
169
|
+
|
170
|
+
# define _NAN_INDEX_SETTER_ARGS_TYPE \
|
171
|
+
const v8::PropertyCallbackInfo<v8::Value>&
|
172
|
+
# define _NAN_INDEX_SETTER_ARGS _NAN_INDEX_SETTER_ARGS_TYPE args
|
173
|
+
# define _NAN_INDEX_SETTER_RETURN_TYPE void
|
174
|
+
|
175
|
+
# define _NAN_INDEX_ENUMERATOR_ARGS_TYPE \
|
176
|
+
const v8::PropertyCallbackInfo<v8::Array>&
|
177
|
+
# define _NAN_INDEX_ENUMERATOR_ARGS _NAN_INDEX_ENUMERATOR_ARGS_TYPE args
|
178
|
+
# define _NAN_INDEX_ENUMERATOR_RETURN_TYPE void
|
179
|
+
|
180
|
+
# define _NAN_INDEX_DELETER_ARGS_TYPE \
|
181
|
+
const v8::PropertyCallbackInfo<v8::Boolean>&
|
182
|
+
# define _NAN_INDEX_DELETER_ARGS _NAN_INDEX_DELETER_ARGS_TYPE args
|
183
|
+
# define _NAN_INDEX_DELETER_RETURN_TYPE void
|
184
|
+
|
185
|
+
# define _NAN_INDEX_QUERY_ARGS_TYPE \
|
186
|
+
const v8::PropertyCallbackInfo<v8::Integer>&
|
187
|
+
# define _NAN_INDEX_QUERY_ARGS _NAN_INDEX_QUERY_ARGS_TYPE args
|
188
|
+
# define _NAN_INDEX_QUERY_RETURN_TYPE void
|
189
|
+
|
190
|
+
typedef v8::FunctionCallback NanFunctionCallback;
|
191
|
+
|
192
|
+
template<typename T>
|
193
|
+
NAN_INLINE v8::Local<T> NanNew() {
|
194
|
+
return T::New(v8::Isolate::GetCurrent());
|
195
|
+
}
|
196
|
+
|
197
|
+
template<typename T, typename P>
|
198
|
+
NAN_INLINE v8::Local<T> NanNew(P arg1) {
|
199
|
+
return T::New(v8::Isolate::GetCurrent(), arg1);
|
200
|
+
}
|
201
|
+
|
202
|
+
template<typename T>
|
203
|
+
NAN_INLINE v8::Local<v8::Signature> NanNew(
|
204
|
+
v8::Handle<v8::FunctionTemplate> receiver
|
205
|
+
, int argc
|
206
|
+
, v8::Handle<v8::FunctionTemplate> argv[] = 0) {
|
207
|
+
return v8::Signature::New(v8::Isolate::GetCurrent(), receiver, argc, argv);
|
208
|
+
}
|
209
|
+
|
210
|
+
template<typename T>
|
211
|
+
NAN_INLINE v8::Local<v8::FunctionTemplate> NanNew(
|
212
|
+
NanFunctionCallback callback
|
213
|
+
, v8::Handle<v8::Value> data = v8::Handle<v8::Value>()
|
214
|
+
, v8::Handle<v8::Signature> signature = v8::Handle<v8::Signature>()) {
|
215
|
+
return T::New(v8::Isolate::GetCurrent(), callback, data, signature);
|
216
|
+
}
|
217
|
+
|
218
|
+
template<typename T>
|
219
|
+
NAN_INLINE v8::Local<T> NanNew(v8::Handle<T> arg1) {
|
220
|
+
return v8::Local<T>::New(v8::Isolate::GetCurrent(), arg1);
|
221
|
+
}
|
222
|
+
|
223
|
+
template<typename T>
|
224
|
+
NAN_INLINE v8::Local<T> NanNew(const v8::Persistent<T> &arg1) {
|
225
|
+
return v8::Local<T>::New(v8::Isolate::GetCurrent(), arg1);
|
226
|
+
}
|
227
|
+
|
228
|
+
template<typename T, typename P>
|
229
|
+
NAN_INLINE v8::Local<T> NanNew(P arg1, int arg2) {
|
230
|
+
return T::New(v8::Isolate::GetCurrent(), arg1, arg2);
|
231
|
+
}
|
232
|
+
|
233
|
+
template<>
|
234
|
+
NAN_INLINE v8::Local<v8::Array> NanNew<v8::Array>() {
|
235
|
+
return v8::Array::New(v8::Isolate::GetCurrent());
|
236
|
+
}
|
237
|
+
|
238
|
+
template<>
|
239
|
+
NAN_INLINE v8::Local<v8::Array> NanNew<v8::Array>(int length) {
|
240
|
+
return v8::Array::New(v8::Isolate::GetCurrent(), length);
|
241
|
+
}
|
242
|
+
|
243
|
+
template<>
|
244
|
+
NAN_INLINE v8::Local<v8::Date> NanNew<v8::Date>(double time) {
|
245
|
+
return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
|
246
|
+
}
|
247
|
+
|
248
|
+
template<>
|
249
|
+
NAN_INLINE v8::Local<v8::Date> NanNew<v8::Date>(int time) {
|
250
|
+
return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
|
251
|
+
}
|
252
|
+
|
253
|
+
typedef v8::UnboundScript NanUnboundScript;
|
254
|
+
typedef v8::Script NanBoundScript;
|
255
|
+
|
256
|
+
template<typename T, typename P>
|
257
|
+
NAN_INLINE v8::Local<T> NanNew(
|
258
|
+
P s
|
259
|
+
, const v8::ScriptOrigin& origin
|
260
|
+
) {
|
261
|
+
v8::ScriptCompiler::Source source(s, origin);
|
262
|
+
return v8::ScriptCompiler::CompileUnbound(
|
263
|
+
v8::Isolate::GetCurrent(), &source);
|
264
|
+
}
|
265
|
+
|
266
|
+
template<>
|
267
|
+
NAN_INLINE v8::Local<NanUnboundScript> NanNew<NanUnboundScript>(
|
268
|
+
v8::Local<v8::String> s
|
269
|
+
) {
|
270
|
+
v8::ScriptCompiler::Source source(s);
|
271
|
+
return v8::ScriptCompiler::CompileUnbound(
|
272
|
+
v8::Isolate::GetCurrent(), &source);
|
273
|
+
}
|
274
|
+
|
275
|
+
template<>
|
276
|
+
NAN_INLINE v8::Local<v8::BooleanObject> NanNew(bool value) {
|
277
|
+
return v8::BooleanObject::New(value).As<v8::BooleanObject>();
|
278
|
+
}
|
279
|
+
|
280
|
+
template<>
|
281
|
+
NAN_INLINE v8::Local<v8::StringObject>
|
282
|
+
NanNew<v8::StringObject, v8::Local<v8::String> >(
|
283
|
+
v8::Local<v8::String> value) {
|
284
|
+
return v8::StringObject::New(value).As<v8::StringObject>();
|
285
|
+
}
|
286
|
+
|
287
|
+
template<>
|
288
|
+
NAN_INLINE v8::Local<v8::StringObject>
|
289
|
+
NanNew<v8::StringObject, v8::Handle<v8::String> >(
|
290
|
+
v8::Handle<v8::String> value) {
|
291
|
+
return v8::StringObject::New(value).As<v8::StringObject>();
|
292
|
+
}
|
293
|
+
|
294
|
+
template<>
|
295
|
+
NAN_INLINE v8::Local<v8::NumberObject> NanNew<v8::NumberObject>(double val) {
|
296
|
+
return v8::NumberObject::New(
|
297
|
+
v8::Isolate::GetCurrent(), val).As<v8::NumberObject>();
|
298
|
+
}
|
299
|
+
|
300
|
+
template<typename T>
|
301
|
+
NAN_INLINE v8::Local<v8::RegExp> NanNew(
|
302
|
+
v8::Handle<v8::String> pattern, v8::RegExp::Flags flags) {
|
303
|
+
return v8::RegExp::New(pattern, flags);
|
304
|
+
}
|
305
|
+
|
306
|
+
template<typename T>
|
307
|
+
NAN_INLINE v8::Local<v8::RegExp> NanNew(
|
308
|
+
v8::Local<v8::String> pattern, v8::RegExp::Flags flags) {
|
309
|
+
return v8::RegExp::New(pattern, flags);
|
310
|
+
}
|
311
|
+
|
312
|
+
template<typename T, typename P>
|
313
|
+
NAN_INLINE v8::Local<v8::RegExp> NanNew(
|
314
|
+
v8::Handle<v8::String> pattern, v8::RegExp::Flags flags) {
|
315
|
+
return v8::RegExp::New(pattern, flags);
|
316
|
+
}
|
317
|
+
|
318
|
+
template<typename T, typename P>
|
319
|
+
NAN_INLINE v8::Local<v8::RegExp> NanNew(
|
320
|
+
v8::Local<v8::String> pattern, v8::RegExp::Flags flags) {
|
321
|
+
return v8::RegExp::New(pattern, flags);
|
322
|
+
}
|
323
|
+
|
324
|
+
template<>
|
325
|
+
NAN_INLINE v8::Local<v8::Uint32> NanNew<v8::Uint32, int32_t>(int32_t val) {
|
326
|
+
return v8::Uint32::NewFromUnsigned(
|
327
|
+
v8::Isolate::GetCurrent(), val)->ToUint32();
|
328
|
+
}
|
329
|
+
|
330
|
+
template<>
|
331
|
+
NAN_INLINE v8::Local<v8::Uint32> NanNew<v8::Uint32, uint32_t>(uint32_t val) {
|
332
|
+
return v8::Uint32::NewFromUnsigned(
|
333
|
+
v8::Isolate::GetCurrent(), val)->ToUint32();
|
334
|
+
}
|
335
|
+
|
336
|
+
template<>
|
337
|
+
NAN_INLINE v8::Local<v8::Int32> NanNew<v8::Int32, int32_t>(int32_t val) {
|
338
|
+
return v8::Int32::New(v8::Isolate::GetCurrent(), val)->ToInt32();
|
339
|
+
}
|
340
|
+
|
341
|
+
template<>
|
342
|
+
NAN_INLINE v8::Local<v8::Int32> NanNew<v8::Int32, uint32_t>(uint32_t val) {
|
343
|
+
return v8::Int32::New(v8::Isolate::GetCurrent(), val)->ToInt32();
|
344
|
+
}
|
345
|
+
|
346
|
+
template<>
|
347
|
+
NAN_INLINE v8::Local<v8::Integer> NanNew<v8::Integer, uint32_t>(uint32_t val) {
|
348
|
+
return v8::Integer::NewFromUnsigned(v8::Isolate::GetCurrent(), val);
|
349
|
+
}
|
350
|
+
|
351
|
+
template<>
|
352
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, char *>(
|
353
|
+
char *arg
|
354
|
+
, int length) {
|
355
|
+
return v8::String::NewFromUtf8(
|
356
|
+
v8::Isolate::GetCurrent()
|
357
|
+
, arg
|
358
|
+
, v8::String::kNormalString
|
359
|
+
, length);
|
360
|
+
}
|
361
|
+
|
362
|
+
template<>
|
363
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const char *>(
|
364
|
+
const char *arg
|
365
|
+
, int length) {
|
366
|
+
return v8::String::NewFromUtf8(
|
367
|
+
v8::Isolate::GetCurrent()
|
368
|
+
, arg
|
369
|
+
, v8::String::kNormalString
|
370
|
+
, length);
|
371
|
+
}
|
372
|
+
|
373
|
+
template<>
|
374
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, char *>(char *arg) {
|
375
|
+
return v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), arg);
|
376
|
+
}
|
377
|
+
|
378
|
+
template<>
|
379
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const char *>(
|
380
|
+
const char *arg) {
|
381
|
+
return v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), arg);
|
382
|
+
}
|
383
|
+
|
384
|
+
template<>
|
385
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, uint8_t *>(
|
386
|
+
uint8_t *arg
|
387
|
+
, int length) {
|
388
|
+
return v8::String::NewFromOneByte(
|
389
|
+
v8::Isolate::GetCurrent()
|
390
|
+
, arg
|
391
|
+
, v8::String::kNormalString
|
392
|
+
, length);
|
393
|
+
}
|
394
|
+
|
395
|
+
template<>
|
396
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const uint8_t *>(
|
397
|
+
const uint8_t *arg
|
398
|
+
, int length) {
|
399
|
+
return v8::String::NewFromOneByte(
|
400
|
+
v8::Isolate::GetCurrent()
|
401
|
+
, arg
|
402
|
+
, v8::String::kNormalString
|
403
|
+
, length);
|
404
|
+
}
|
405
|
+
|
406
|
+
template<>
|
407
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, uint8_t *>(uint8_t *arg) {
|
408
|
+
return v8::String::NewFromOneByte(v8::Isolate::GetCurrent(), arg);
|
409
|
+
}
|
410
|
+
|
411
|
+
template<>
|
412
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const uint8_t *>(
|
413
|
+
const uint8_t *arg) {
|
414
|
+
return v8::String::NewFromOneByte(v8::Isolate::GetCurrent(), arg);
|
415
|
+
}
|
416
|
+
|
417
|
+
template<>
|
418
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, uint16_t *>(
|
419
|
+
uint16_t *arg
|
420
|
+
, int length) {
|
421
|
+
return v8::String::NewFromTwoByte(
|
422
|
+
v8::Isolate::GetCurrent()
|
423
|
+
, arg
|
424
|
+
, v8::String::kNormalString
|
425
|
+
, length);
|
426
|
+
}
|
427
|
+
|
428
|
+
template<>
|
429
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const uint16_t *>(
|
430
|
+
const uint16_t *arg
|
431
|
+
, int length) {
|
432
|
+
return v8::String::NewFromTwoByte(
|
433
|
+
v8::Isolate::GetCurrent()
|
434
|
+
, arg
|
435
|
+
, v8::String::kNormalString
|
436
|
+
, length);
|
437
|
+
}
|
438
|
+
template<>
|
439
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, uint16_t *>(
|
440
|
+
uint16_t *arg) {
|
441
|
+
return v8::String::NewFromTwoByte(v8::Isolate::GetCurrent(), arg);
|
442
|
+
}
|
443
|
+
|
444
|
+
template<>
|
445
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const uint16_t *>(
|
446
|
+
const uint16_t *arg) {
|
447
|
+
return v8::String::NewFromTwoByte(v8::Isolate::GetCurrent(), arg);
|
448
|
+
}
|
449
|
+
|
450
|
+
template<>
|
451
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, std::string>(
|
452
|
+
std::string arg) {
|
453
|
+
return NanNew<v8::String>(arg.c_str(), static_cast<int>(arg.size()));
|
454
|
+
}
|
455
|
+
|
456
|
+
template<>
|
457
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String>() {
|
458
|
+
return v8::String::Empty(v8::Isolate::GetCurrent());
|
459
|
+
}
|
460
|
+
|
461
|
+
NAN_INLINE v8::Local<v8::String> NanNew(const char* arg, int length = -1) {
|
462
|
+
return NanNew<v8::String>(arg, length);
|
463
|
+
}
|
464
|
+
|
465
|
+
NAN_INLINE v8::Local<v8::String> NanNew(
|
466
|
+
const uint8_t* arg
|
467
|
+
, int length = -1) {
|
468
|
+
return NanNew<v8::String>(arg, length);
|
469
|
+
}
|
470
|
+
|
471
|
+
NAN_INLINE v8::Local<v8::String> NanNew(
|
472
|
+
const uint16_t* arg
|
473
|
+
, int length = -1) {
|
474
|
+
return NanNew<v8::String>(arg, length);
|
475
|
+
}
|
476
|
+
|
477
|
+
NAN_INLINE v8::Local<v8::String> NanNew(
|
478
|
+
const std::string& arg) {
|
479
|
+
return NanNew<v8::String>(arg.c_str(), static_cast<int>(arg.size()));
|
480
|
+
}
|
481
|
+
|
482
|
+
NAN_INLINE v8::Local<v8::Number> NanNew(double val) {
|
483
|
+
return NanNew<v8::Number>(val);
|
484
|
+
}
|
485
|
+
|
486
|
+
NAN_INLINE v8::Local<v8::Integer> NanNew(int val) {
|
487
|
+
return NanNew<v8::Integer>(val);
|
488
|
+
}
|
489
|
+
|
490
|
+
NAN_INLINE v8::Local<v8::Uint32> NanNew(unsigned int val) {
|
491
|
+
return NanNew<v8::Uint32>(val);
|
492
|
+
}
|
493
|
+
|
494
|
+
NAN_INLINE v8::Local<v8::Boolean> NanNew(bool val) {
|
495
|
+
return NanNew<v8::Boolean>(val);
|
496
|
+
}
|
497
|
+
|
498
|
+
NAN_INLINE v8::Local<v8::String> NanNew(
|
499
|
+
v8::String::ExternalStringResource *resource) {
|
500
|
+
return v8::String::NewExternal(v8::Isolate::GetCurrent(), resource);
|
501
|
+
}
|
502
|
+
|
503
|
+
#if NODE_MODULE_VERSION >= 42 // io.js v1.0.0
|
504
|
+
NAN_INLINE v8::Local<v8::String> NanNew(
|
505
|
+
v8::String::ExternalOneByteStringResource *resource) {
|
506
|
+
#else
|
507
|
+
NAN_INLINE v8::Local<v8::String> NanNew(
|
508
|
+
v8::String::ExternalAsciiStringResource *resource) {
|
509
|
+
#endif
|
510
|
+
return v8::String::NewExternal(v8::Isolate::GetCurrent(), resource);
|
511
|
+
}
|
512
|
+
|
513
|
+
# define NanScope() v8::HandleScope scope(v8::Isolate::GetCurrent())
|
514
|
+
# define NanEscapableScope() \
|
515
|
+
v8::EscapableHandleScope scope(v8::Isolate::GetCurrent())
|
516
|
+
|
517
|
+
# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))
|
518
|
+
# define NanLocker() v8::Locker locker(v8::Isolate::GetCurrent())
|
519
|
+
# define NanUnlocker() v8::Unlocker unlocker(v8::Isolate::GetCurrent())
|
520
|
+
# define NanReturnValue(value) return args.GetReturnValue().Set(value)
|
521
|
+
# define NanReturnUndefined() return
|
522
|
+
# define NanReturnHolder() NanReturnValue(args.Holder())
|
523
|
+
# define NanReturnThis() NanReturnValue(args.This())
|
524
|
+
# define NanReturnNull() return args.GetReturnValue().SetNull()
|
525
|
+
# define NanReturnEmptyString() return args.GetReturnValue().SetEmptyString()
|
526
|
+
|
527
|
+
# define NanObjectWrapHandle(obj) obj->handle()
|
528
|
+
|
529
|
+
NAN_INLINE v8::Local<v8::Primitive> NanUndefined() {
|
530
|
+
NanEscapableScope();
|
531
|
+
return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));
|
532
|
+
}
|
533
|
+
|
534
|
+
NAN_INLINE v8::Local<v8::Primitive> NanNull() {
|
535
|
+
NanEscapableScope();
|
536
|
+
return NanEscapeScope(NanNew(v8::Null(v8::Isolate::GetCurrent())));
|
537
|
+
}
|
538
|
+
|
539
|
+
NAN_INLINE v8::Local<v8::Boolean> NanTrue() {
|
540
|
+
NanEscapableScope();
|
541
|
+
return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));
|
542
|
+
}
|
543
|
+
|
544
|
+
NAN_INLINE v8::Local<v8::Boolean> NanFalse() {
|
545
|
+
NanEscapableScope();
|
546
|
+
return NanEscapeScope(NanNew(v8::False(v8::Isolate::GetCurrent())));
|
547
|
+
}
|
548
|
+
|
549
|
+
NAN_INLINE int NanAdjustExternalMemory(int bc) {
|
550
|
+
return static_cast<int>(
|
551
|
+
v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(bc));
|
552
|
+
}
|
553
|
+
|
554
|
+
NAN_INLINE void NanSetTemplate(
|
555
|
+
v8::Handle<v8::Template> templ
|
556
|
+
, const char *name
|
557
|
+
, v8::Handle<v8::Data> value) {
|
558
|
+
templ->Set(v8::Isolate::GetCurrent(), name, value);
|
559
|
+
}
|
560
|
+
|
561
|
+
NAN_INLINE void NanSetTemplate(
|
562
|
+
v8::Handle<v8::Template> templ
|
563
|
+
, v8::Handle<v8::String> name
|
564
|
+
, v8::Handle<v8::Data> value
|
565
|
+
, v8::PropertyAttribute attributes) {
|
566
|
+
templ->Set(name, value, attributes);
|
567
|
+
}
|
568
|
+
|
569
|
+
NAN_INLINE v8::Local<v8::Context> NanGetCurrentContext() {
|
570
|
+
return v8::Isolate::GetCurrent()->GetCurrentContext();
|
571
|
+
}
|
572
|
+
|
573
|
+
NAN_INLINE void* NanGetInternalFieldPointer(
|
574
|
+
v8::Handle<v8::Object> object
|
575
|
+
, int index) {
|
576
|
+
return object->GetAlignedPointerFromInternalField(index);
|
577
|
+
}
|
578
|
+
|
579
|
+
NAN_INLINE void NanSetInternalFieldPointer(
|
580
|
+
v8::Handle<v8::Object> object
|
581
|
+
, int index
|
582
|
+
, void* value) {
|
583
|
+
object->SetAlignedPointerInInternalField(index, value);
|
584
|
+
}
|
585
|
+
|
586
|
+
# define NAN_GC_CALLBACK(name) \
|
587
|
+
void name(v8::Isolate *isolate, v8::GCType type, v8::GCCallbackFlags flags)
|
588
|
+
|
589
|
+
NAN_INLINE void NanAddGCEpilogueCallback(
|
590
|
+
v8::Isolate::GCEpilogueCallback callback
|
591
|
+
, v8::GCType gc_type_filter = v8::kGCTypeAll) {
|
592
|
+
v8::Isolate::GetCurrent()->AddGCEpilogueCallback(callback, gc_type_filter);
|
593
|
+
}
|
594
|
+
|
595
|
+
NAN_INLINE void NanRemoveGCEpilogueCallback(
|
596
|
+
v8::Isolate::GCEpilogueCallback callback) {
|
597
|
+
v8::Isolate::GetCurrent()->RemoveGCEpilogueCallback(callback);
|
598
|
+
}
|
599
|
+
|
600
|
+
NAN_INLINE void NanAddGCPrologueCallback(
|
601
|
+
v8::Isolate::GCPrologueCallback callback
|
602
|
+
, v8::GCType gc_type_filter = v8::kGCTypeAll) {
|
603
|
+
v8::Isolate::GetCurrent()->AddGCPrologueCallback(callback, gc_type_filter);
|
604
|
+
}
|
605
|
+
|
606
|
+
NAN_INLINE void NanRemoveGCPrologueCallback(
|
607
|
+
v8::Isolate::GCPrologueCallback callback) {
|
608
|
+
v8::Isolate::GetCurrent()->RemoveGCPrologueCallback(callback);
|
609
|
+
}
|
610
|
+
|
611
|
+
NAN_INLINE void NanGetHeapStatistics(
|
612
|
+
v8::HeapStatistics *heap_statistics) {
|
613
|
+
v8::Isolate::GetCurrent()->GetHeapStatistics(heap_statistics);
|
614
|
+
}
|
615
|
+
|
616
|
+
NAN_DEPRECATED NAN_INLINE v8::Local<v8::String> NanSymbol(
|
617
|
+
const char* data, int length = -1) {
|
618
|
+
return NanNew<v8::String>(data, length);
|
619
|
+
}
|
620
|
+
|
621
|
+
template<typename T>
|
622
|
+
NAN_INLINE void NanAssignPersistent(
|
623
|
+
v8::Persistent<T>& handle
|
624
|
+
, v8::Handle<T> obj) {
|
625
|
+
handle.Reset(v8::Isolate::GetCurrent(), obj);
|
626
|
+
}
|
627
|
+
|
628
|
+
template<typename T>
|
629
|
+
NAN_INLINE void NanAssignPersistent(
|
630
|
+
v8::Persistent<T>& handle
|
631
|
+
, const v8::Persistent<T>& obj) {
|
632
|
+
handle.Reset(v8::Isolate::GetCurrent(), obj);
|
633
|
+
}
|
634
|
+
|
635
|
+
template<typename T, typename P>
|
636
|
+
class _NanWeakCallbackData;
|
637
|
+
|
638
|
+
template<typename T, typename P>
|
639
|
+
struct _NanWeakCallbackInfo {
|
640
|
+
typedef void (*Callback)(const _NanWeakCallbackData<T, P>& data);
|
641
|
+
NAN_INLINE _NanWeakCallbackInfo(v8::Handle<T> handle, P* param, Callback cb)
|
642
|
+
: parameter(param), callback(cb) {
|
643
|
+
NanAssignPersistent(persistent, handle);
|
644
|
+
}
|
645
|
+
|
646
|
+
NAN_INLINE ~_NanWeakCallbackInfo() {
|
647
|
+
persistent.Reset();
|
648
|
+
}
|
649
|
+
|
650
|
+
P* const parameter;
|
651
|
+
Callback const callback;
|
652
|
+
v8::Persistent<T> persistent;
|
653
|
+
};
|
654
|
+
|
655
|
+
template<typename T, typename P>
|
656
|
+
class _NanWeakCallbackData {
|
657
|
+
public:
|
658
|
+
NAN_INLINE _NanWeakCallbackData(_NanWeakCallbackInfo<T, P> *info)
|
659
|
+
: info_(info) { }
|
660
|
+
|
661
|
+
NAN_INLINE v8::Local<T> GetValue() const {
|
662
|
+
return NanNew(info_->persistent);
|
663
|
+
}
|
664
|
+
|
665
|
+
NAN_INLINE P* GetParameter() const { return info_->parameter; }
|
666
|
+
|
667
|
+
NAN_INLINE bool IsNearDeath() const {
|
668
|
+
return info_->persistent.IsNearDeath();
|
669
|
+
}
|
670
|
+
|
671
|
+
NAN_INLINE void Revive() const;
|
672
|
+
|
673
|
+
NAN_INLINE _NanWeakCallbackInfo<T, P>* GetCallbackInfo() const {
|
674
|
+
return info_;
|
675
|
+
}
|
676
|
+
|
677
|
+
NAN_DEPRECATED NAN_INLINE void Dispose() const {
|
678
|
+
}
|
679
|
+
|
680
|
+
private:
|
681
|
+
_NanWeakCallbackInfo<T, P>* info_;
|
682
|
+
};
|
683
|
+
|
684
|
+
template<typename T, typename P>
|
685
|
+
static void _NanWeakCallbackDispatcher(
|
686
|
+
const v8::WeakCallbackData<T, _NanWeakCallbackInfo<T, P> > &data) {
|
687
|
+
_NanWeakCallbackInfo<T, P> *info = data.GetParameter();
|
688
|
+
_NanWeakCallbackData<T, P> wcbd(info);
|
689
|
+
info->callback(wcbd);
|
690
|
+
if (wcbd.IsNearDeath()) {
|
691
|
+
delete wcbd.GetCallbackInfo();
|
692
|
+
}
|
693
|
+
}
|
694
|
+
|
695
|
+
template<typename T, typename P>
|
696
|
+
NAN_INLINE void _NanWeakCallbackData<T, P>::Revive() const {
|
697
|
+
info_->persistent.SetWeak(info_, &_NanWeakCallbackDispatcher<T, P>);
|
698
|
+
}
|
699
|
+
|
700
|
+
template<typename T, typename P>
|
701
|
+
NAN_INLINE _NanWeakCallbackInfo<T, P>* NanMakeWeakPersistent(
|
702
|
+
v8::Handle<T> handle
|
703
|
+
, P* parameter
|
704
|
+
, typename _NanWeakCallbackInfo<T, P>::Callback callback) {
|
705
|
+
_NanWeakCallbackInfo<T, P> *cbinfo =
|
706
|
+
new _NanWeakCallbackInfo<T, P>(handle, parameter, callback);
|
707
|
+
cbinfo->persistent.SetWeak(cbinfo, &_NanWeakCallbackDispatcher<T, P>);
|
708
|
+
return cbinfo;
|
709
|
+
}
|
710
|
+
|
711
|
+
# define NAN_WEAK_CALLBACK(name) \
|
712
|
+
template<typename T, typename P> \
|
713
|
+
static void name(const _NanWeakCallbackData<T, P> &data)
|
714
|
+
|
715
|
+
# define _NAN_ERROR(fun, errmsg) fun(NanNew<v8::String>(errmsg))
|
716
|
+
|
717
|
+
# define _NAN_THROW_ERROR(fun, errmsg) \
|
718
|
+
do { \
|
719
|
+
NanScope(); \
|
720
|
+
v8::Isolate::GetCurrent()->ThrowException(_NAN_ERROR(fun, errmsg)); \
|
721
|
+
} while (0);
|
722
|
+
|
723
|
+
NAN_INLINE v8::Local<v8::Value> NanError(const char* errmsg) {
|
724
|
+
return _NAN_ERROR(v8::Exception::Error, errmsg);
|
725
|
+
}
|
726
|
+
|
727
|
+
NAN_INLINE void NanThrowError(const char* errmsg) {
|
728
|
+
_NAN_THROW_ERROR(v8::Exception::Error, errmsg);
|
729
|
+
}
|
730
|
+
|
731
|
+
NAN_INLINE void NanThrowError(v8::Handle<v8::Value> error) {
|
732
|
+
NanScope();
|
733
|
+
v8::Isolate::GetCurrent()->ThrowException(error);
|
734
|
+
}
|
735
|
+
|
736
|
+
NAN_INLINE v8::Local<v8::Value> NanError(
|
737
|
+
const char *msg
|
738
|
+
, const int errorNumber
|
739
|
+
) {
|
740
|
+
v8::Local<v8::Value> err = v8::Exception::Error(NanNew<v8::String>(msg));
|
741
|
+
v8::Local<v8::Object> obj = err.As<v8::Object>();
|
742
|
+
obj->Set(NanNew<v8::String>("code"), NanNew<v8::Integer>(errorNumber));
|
743
|
+
return err;
|
744
|
+
}
|
745
|
+
|
746
|
+
NAN_INLINE void NanThrowError(
|
747
|
+
const char *msg
|
748
|
+
, const int errorNumber
|
749
|
+
) {
|
750
|
+
NanThrowError(NanError(msg, errorNumber));
|
751
|
+
}
|
752
|
+
|
753
|
+
NAN_INLINE v8::Local<v8::Value> NanTypeError(const char* errmsg) {
|
754
|
+
return _NAN_ERROR(v8::Exception::TypeError, errmsg);
|
755
|
+
}
|
756
|
+
|
757
|
+
NAN_INLINE void NanThrowTypeError(const char* errmsg) {
|
758
|
+
_NAN_THROW_ERROR(v8::Exception::TypeError, errmsg);
|
759
|
+
}
|
760
|
+
|
761
|
+
NAN_INLINE v8::Local<v8::Value> NanRangeError(const char* errmsg) {
|
762
|
+
return _NAN_ERROR(v8::Exception::RangeError, errmsg);
|
763
|
+
}
|
764
|
+
|
765
|
+
NAN_INLINE void NanThrowRangeError(const char* errmsg) {
|
766
|
+
_NAN_THROW_ERROR(v8::Exception::RangeError, errmsg);
|
767
|
+
}
|
768
|
+
|
769
|
+
template<typename T> NAN_INLINE void NanDisposePersistent(
|
770
|
+
v8::Persistent<T> &handle
|
771
|
+
) {
|
772
|
+
handle.Reset();
|
773
|
+
}
|
774
|
+
|
775
|
+
NAN_INLINE v8::Local<v8::Object> NanNewBufferHandle (
|
776
|
+
char *data
|
777
|
+
, size_t length
|
778
|
+
, node::smalloc::FreeCallback callback
|
779
|
+
, void *hint
|
780
|
+
) {
|
781
|
+
return node::Buffer::New(
|
782
|
+
v8::Isolate::GetCurrent(), data, length, callback, hint);
|
783
|
+
}
|
784
|
+
|
785
|
+
NAN_INLINE v8::Local<v8::Object> NanNewBufferHandle (
|
786
|
+
const char *data
|
787
|
+
, uint32_t size
|
788
|
+
) {
|
789
|
+
return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
|
790
|
+
}
|
791
|
+
|
792
|
+
NAN_INLINE v8::Local<v8::Object> NanNewBufferHandle (uint32_t size) {
|
793
|
+
return node::Buffer::New(v8::Isolate::GetCurrent(), size);
|
794
|
+
}
|
795
|
+
|
796
|
+
NAN_INLINE v8::Local<v8::Object> NanBufferUse(
|
797
|
+
char* data
|
798
|
+
, uint32_t size
|
799
|
+
) {
|
800
|
+
return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
|
801
|
+
}
|
802
|
+
|
803
|
+
NAN_INLINE bool NanHasInstance(
|
804
|
+
const v8::Persistent<v8::FunctionTemplate>& function_template
|
805
|
+
, v8::Handle<v8::Value> value
|
806
|
+
) {
|
807
|
+
return NanNew(function_template)->HasInstance(value);
|
808
|
+
}
|
809
|
+
|
810
|
+
NAN_INLINE v8::Local<v8::Context> NanNewContextHandle(
|
811
|
+
v8::ExtensionConfiguration* extensions = NULL
|
812
|
+
, v8::Handle<v8::ObjectTemplate> tmpl = v8::Handle<v8::ObjectTemplate>()
|
813
|
+
, v8::Handle<v8::Value> obj = v8::Handle<v8::Value>()
|
814
|
+
) {
|
815
|
+
v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
816
|
+
return v8::Local<v8::Context>::New(
|
817
|
+
isolate
|
818
|
+
, v8::Context::New(isolate, extensions, tmpl, obj)
|
819
|
+
);
|
820
|
+
}
|
821
|
+
|
822
|
+
NAN_INLINE v8::Local<NanBoundScript> NanCompileScript(
|
823
|
+
v8::Local<v8::String> s
|
824
|
+
, const v8::ScriptOrigin& origin
|
825
|
+
) {
|
826
|
+
v8::ScriptCompiler::Source source(s, origin);
|
827
|
+
return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &source);
|
828
|
+
}
|
829
|
+
|
830
|
+
NAN_INLINE v8::Local<NanBoundScript> NanCompileScript(
|
831
|
+
v8::Local<v8::String> s
|
832
|
+
) {
|
833
|
+
v8::ScriptCompiler::Source source(s);
|
834
|
+
return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &source);
|
835
|
+
}
|
836
|
+
|
837
|
+
NAN_INLINE v8::Local<v8::Value> NanRunScript(
|
838
|
+
v8::Handle<NanUnboundScript> script
|
839
|
+
) {
|
840
|
+
return script->BindToCurrentContext()->Run();
|
841
|
+
}
|
842
|
+
|
843
|
+
NAN_INLINE v8::Local<v8::Value> NanRunScript(
|
844
|
+
v8::Handle<NanBoundScript> script
|
845
|
+
) {
|
846
|
+
return script->Run();
|
847
|
+
}
|
848
|
+
|
849
|
+
NAN_INLINE v8::Local<v8::Value> NanMakeCallback(
|
850
|
+
v8::Handle<v8::Object> target
|
851
|
+
, v8::Handle<v8::Function> func
|
852
|
+
, int argc
|
853
|
+
, v8::Handle<v8::Value>* argv) {
|
854
|
+
return NanNew(node::MakeCallback(
|
855
|
+
v8::Isolate::GetCurrent(), target, func, argc, argv));
|
856
|
+
}
|
857
|
+
|
858
|
+
NAN_INLINE v8::Local<v8::Value> NanMakeCallback(
|
859
|
+
v8::Handle<v8::Object> target
|
860
|
+
, v8::Handle<v8::String> symbol
|
861
|
+
, int argc
|
862
|
+
, v8::Handle<v8::Value>* argv) {
|
863
|
+
return NanNew(node::MakeCallback(
|
864
|
+
v8::Isolate::GetCurrent(), target, symbol, argc, argv));
|
865
|
+
}
|
866
|
+
|
867
|
+
NAN_INLINE v8::Local<v8::Value> NanMakeCallback(
|
868
|
+
v8::Handle<v8::Object> target
|
869
|
+
, const char* method
|
870
|
+
, int argc
|
871
|
+
, v8::Handle<v8::Value>* argv) {
|
872
|
+
return NanNew(node::MakeCallback(
|
873
|
+
v8::Isolate::GetCurrent(), target, method, argc, argv));
|
874
|
+
}
|
875
|
+
|
876
|
+
template<typename T>
|
877
|
+
NAN_INLINE void NanSetIsolateData(
|
878
|
+
v8::Isolate *isolate
|
879
|
+
, T *data
|
880
|
+
) {
|
881
|
+
isolate->SetData(0, data);
|
882
|
+
}
|
883
|
+
|
884
|
+
template<typename T>
|
885
|
+
NAN_INLINE T *NanGetIsolateData(
|
886
|
+
v8::Isolate *isolate
|
887
|
+
) {
|
888
|
+
return static_cast<T*>(isolate->GetData(0));
|
889
|
+
}
|
890
|
+
|
891
|
+
class NanAsciiString {
|
892
|
+
public:
|
893
|
+
NAN_INLINE explicit NanAsciiString(v8::Handle<v8::Value> from) {
|
894
|
+
v8::Local<v8::String> toStr = from->ToString();
|
895
|
+
size = toStr->Length();
|
896
|
+
buf = new char[size + 1];
|
897
|
+
size = toStr->WriteOneByte(reinterpret_cast<unsigned char*>(buf));
|
898
|
+
}
|
899
|
+
|
900
|
+
NAN_DEPRECATED NAN_INLINE int Size() const {
|
901
|
+
return size;
|
902
|
+
}
|
903
|
+
|
904
|
+
NAN_INLINE int length() const {
|
905
|
+
return size;
|
906
|
+
}
|
907
|
+
|
908
|
+
|
909
|
+
NAN_INLINE char* operator*() { return buf; }
|
910
|
+
NAN_INLINE const char* operator*() const { return buf; }
|
911
|
+
|
912
|
+
NAN_INLINE ~NanAsciiString() {
|
913
|
+
delete[] buf;
|
914
|
+
}
|
915
|
+
|
916
|
+
private:
|
917
|
+
// disallow copying and assigning
|
918
|
+
NanAsciiString(const NanAsciiString&);
|
919
|
+
void operator=(const NanAsciiString&);
|
920
|
+
|
921
|
+
char *buf;
|
922
|
+
int size;
|
923
|
+
};
|
924
|
+
|
925
|
+
class NanUtf8String {
|
926
|
+
public:
|
927
|
+
NAN_INLINE explicit NanUtf8String(v8::Handle<v8::Value> from) {
|
928
|
+
v8::Local<v8::String> toStr = from->ToString();
|
929
|
+
size = toStr->Utf8Length();
|
930
|
+
buf = new char[size + 1];
|
931
|
+
toStr->WriteUtf8(buf);
|
932
|
+
}
|
933
|
+
|
934
|
+
NAN_DEPRECATED NAN_INLINE int Size() const {
|
935
|
+
return size;
|
936
|
+
}
|
937
|
+
|
938
|
+
NAN_INLINE int length() const {
|
939
|
+
return size;
|
940
|
+
}
|
941
|
+
|
942
|
+
NAN_INLINE char* operator*() { return buf; }
|
943
|
+
NAN_INLINE const char* operator*() const { return buf; }
|
944
|
+
|
945
|
+
NAN_INLINE ~NanUtf8String() {
|
946
|
+
delete[] buf;
|
947
|
+
}
|
948
|
+
|
949
|
+
private:
|
950
|
+
// disallow copying and assigning
|
951
|
+
NanUtf8String(const NanUtf8String&);
|
952
|
+
void operator=(const NanUtf8String&);
|
953
|
+
|
954
|
+
char *buf;
|
955
|
+
int size;
|
956
|
+
};
|
957
|
+
|
958
|
+
class NanUcs2String {
|
959
|
+
public:
|
960
|
+
NAN_INLINE explicit NanUcs2String(v8::Handle<v8::Value> from) {
|
961
|
+
v8::Local<v8::String> toStr = from->ToString();
|
962
|
+
size = toStr->Length();
|
963
|
+
buf = new uint16_t[size + 1];
|
964
|
+
toStr->Write(buf);
|
965
|
+
}
|
966
|
+
|
967
|
+
NAN_DEPRECATED NAN_INLINE int Size() const {
|
968
|
+
return size;
|
969
|
+
}
|
970
|
+
|
971
|
+
NAN_INLINE int length() const {
|
972
|
+
return size;
|
973
|
+
}
|
974
|
+
|
975
|
+
NAN_INLINE uint16_t* operator*() { return buf; }
|
976
|
+
NAN_INLINE const uint16_t* operator*() const { return buf; }
|
977
|
+
|
978
|
+
NAN_INLINE ~NanUcs2String() {
|
979
|
+
delete[] buf;
|
980
|
+
}
|
981
|
+
|
982
|
+
private:
|
983
|
+
// disallow copying and assigning
|
984
|
+
NanUcs2String(const NanUcs2String&);
|
985
|
+
void operator=(const NanUcs2String&);
|
986
|
+
|
987
|
+
uint16_t *buf;
|
988
|
+
int size;
|
989
|
+
};
|
990
|
+
|
991
|
+
#else
|
992
|
+
// Node 0.8 and 0.10
|
993
|
+
|
994
|
+
# define _NAN_METHOD_ARGS_TYPE const v8::Arguments&
|
995
|
+
# define _NAN_METHOD_ARGS _NAN_METHOD_ARGS_TYPE args
|
996
|
+
# define _NAN_METHOD_RETURN_TYPE v8::Handle<v8::Value>
|
997
|
+
|
998
|
+
# define _NAN_GETTER_ARGS_TYPE const v8::AccessorInfo &
|
999
|
+
# define _NAN_GETTER_ARGS _NAN_GETTER_ARGS_TYPE args
|
1000
|
+
# define _NAN_GETTER_RETURN_TYPE v8::Handle<v8::Value>
|
1001
|
+
|
1002
|
+
# define _NAN_SETTER_ARGS_TYPE const v8::AccessorInfo &
|
1003
|
+
# define _NAN_SETTER_ARGS _NAN_SETTER_ARGS_TYPE args
|
1004
|
+
# define _NAN_SETTER_RETURN_TYPE void
|
1005
|
+
|
1006
|
+
# define _NAN_PROPERTY_GETTER_ARGS_TYPE const v8::AccessorInfo&
|
1007
|
+
# define _NAN_PROPERTY_GETTER_ARGS _NAN_PROPERTY_GETTER_ARGS_TYPE args
|
1008
|
+
# define _NAN_PROPERTY_GETTER_RETURN_TYPE v8::Handle<v8::Value>
|
1009
|
+
|
1010
|
+
# define _NAN_PROPERTY_SETTER_ARGS_TYPE const v8::AccessorInfo&
|
1011
|
+
# define _NAN_PROPERTY_SETTER_ARGS _NAN_PROPERTY_SETTER_ARGS_TYPE args
|
1012
|
+
# define _NAN_PROPERTY_SETTER_RETURN_TYPE v8::Handle<v8::Value>
|
1013
|
+
|
1014
|
+
# define _NAN_PROPERTY_ENUMERATOR_ARGS_TYPE const v8::AccessorInfo&
|
1015
|
+
# define _NAN_PROPERTY_ENUMERATOR_ARGS _NAN_PROPERTY_ENUMERATOR_ARGS_TYPE args
|
1016
|
+
# define _NAN_PROPERTY_ENUMERATOR_RETURN_TYPE v8::Handle<v8::Array>
|
1017
|
+
|
1018
|
+
# define _NAN_PROPERTY_DELETER_ARGS_TYPE const v8::AccessorInfo&
|
1019
|
+
# define _NAN_PROPERTY_DELETER_ARGS _NAN_PROPERTY_DELETER_ARGS_TYPE args
|
1020
|
+
# define _NAN_PROPERTY_DELETER_RETURN_TYPE v8::Handle<v8::Boolean>
|
1021
|
+
|
1022
|
+
# define _NAN_PROPERTY_QUERY_ARGS_TYPE const v8::AccessorInfo&
|
1023
|
+
# define _NAN_PROPERTY_QUERY_ARGS _NAN_PROPERTY_QUERY_ARGS_TYPE args
|
1024
|
+
# define _NAN_PROPERTY_QUERY_RETURN_TYPE v8::Handle<v8::Integer>
|
1025
|
+
|
1026
|
+
# define _NAN_INDEX_GETTER_ARGS_TYPE const v8::AccessorInfo&
|
1027
|
+
# define _NAN_INDEX_GETTER_ARGS _NAN_INDEX_GETTER_ARGS_TYPE args
|
1028
|
+
# define _NAN_INDEX_GETTER_RETURN_TYPE v8::Handle<v8::Value>
|
1029
|
+
|
1030
|
+
# define _NAN_INDEX_SETTER_ARGS_TYPE const v8::AccessorInfo&
|
1031
|
+
# define _NAN_INDEX_SETTER_ARGS _NAN_INDEX_SETTER_ARGS_TYPE args
|
1032
|
+
# define _NAN_INDEX_SETTER_RETURN_TYPE v8::Handle<v8::Value>
|
1033
|
+
|
1034
|
+
# define _NAN_INDEX_ENUMERATOR_ARGS_TYPE const v8::AccessorInfo&
|
1035
|
+
# define _NAN_INDEX_ENUMERATOR_ARGS _NAN_INDEX_ENUMERATOR_ARGS_TYPE args
|
1036
|
+
# define _NAN_INDEX_ENUMERATOR_RETURN_TYPE v8::Handle<v8::Array>
|
1037
|
+
|
1038
|
+
# define _NAN_INDEX_DELETER_ARGS_TYPE const v8::AccessorInfo&
|
1039
|
+
# define _NAN_INDEX_DELETER_ARGS _NAN_INDEX_DELETER_ARGS_TYPE args
|
1040
|
+
# define _NAN_INDEX_DELETER_RETURN_TYPE v8::Handle<v8::Boolean>
|
1041
|
+
|
1042
|
+
# define _NAN_INDEX_QUERY_ARGS_TYPE const v8::AccessorInfo&
|
1043
|
+
# define _NAN_INDEX_QUERY_ARGS _NAN_INDEX_QUERY_ARGS_TYPE args
|
1044
|
+
# define _NAN_INDEX_QUERY_RETURN_TYPE v8::Handle<v8::Integer>
|
1045
|
+
|
1046
|
+
typedef v8::InvocationCallback NanFunctionCallback;
|
1047
|
+
|
1048
|
+
NAN_DEPRECATED NAN_INLINE v8::Local<v8::String> NanSymbol(
|
1049
|
+
const char* data, int length = -1) {
|
1050
|
+
return v8::String::NewSymbol(data, length);
|
1051
|
+
}
|
1052
|
+
|
1053
|
+
template<typename T>
|
1054
|
+
NAN_INLINE v8::Local<T> NanNew() {
|
1055
|
+
return T::New();
|
1056
|
+
}
|
1057
|
+
|
1058
|
+
template<typename T>
|
1059
|
+
NAN_INLINE v8::Local<T> NanNew(v8::Handle<T> arg) {
|
1060
|
+
return v8::Local<T>::New(arg);
|
1061
|
+
}
|
1062
|
+
|
1063
|
+
template<typename T>
|
1064
|
+
NAN_INLINE v8::Local<v8::Signature> NanNew(
|
1065
|
+
v8::Handle<v8::FunctionTemplate> receiver
|
1066
|
+
, int argc
|
1067
|
+
, v8::Handle<v8::FunctionTemplate> argv[] = 0) {
|
1068
|
+
return v8::Signature::New(receiver, argc, argv);
|
1069
|
+
}
|
1070
|
+
|
1071
|
+
template<typename T>
|
1072
|
+
NAN_INLINE v8::Local<v8::FunctionTemplate> NanNew(
|
1073
|
+
NanFunctionCallback callback
|
1074
|
+
, v8::Handle<v8::Value> data = v8::Handle<v8::Value>()
|
1075
|
+
, v8::Handle<v8::Signature> signature = v8::Handle<v8::Signature>()) {
|
1076
|
+
return T::New(callback, data, signature);
|
1077
|
+
}
|
1078
|
+
|
1079
|
+
template<typename T>
|
1080
|
+
NAN_INLINE v8::Local<T> NanNew(const v8::Persistent<T> &arg) {
|
1081
|
+
return v8::Local<T>::New(arg);
|
1082
|
+
}
|
1083
|
+
|
1084
|
+
template<typename T, typename P>
|
1085
|
+
NAN_INLINE v8::Local<T> NanNew(P arg) {
|
1086
|
+
return _NanEnsureLocal(T::New(arg));
|
1087
|
+
}
|
1088
|
+
|
1089
|
+
template<typename T, typename P>
|
1090
|
+
NAN_INLINE v8::Local<T> NanNew(P arg, int length) {
|
1091
|
+
return _NanEnsureLocal(T::New(arg, length));
|
1092
|
+
}
|
1093
|
+
|
1094
|
+
template<typename T>
|
1095
|
+
NAN_INLINE v8::Local<v8::RegExp> NanNew(
|
1096
|
+
v8::Handle<v8::String> pattern, v8::RegExp::Flags flags) {
|
1097
|
+
return v8::RegExp::New(pattern, flags);
|
1098
|
+
}
|
1099
|
+
|
1100
|
+
template<typename T>
|
1101
|
+
NAN_INLINE v8::Local<v8::RegExp> NanNew(
|
1102
|
+
v8::Local<v8::String> pattern, v8::RegExp::Flags flags) {
|
1103
|
+
return v8::RegExp::New(pattern, flags);
|
1104
|
+
}
|
1105
|
+
|
1106
|
+
template<typename T, typename P>
|
1107
|
+
NAN_INLINE v8::Local<v8::RegExp> NanNew(
|
1108
|
+
v8::Handle<v8::String> pattern, v8::RegExp::Flags flags) {
|
1109
|
+
return v8::RegExp::New(pattern, flags);
|
1110
|
+
}
|
1111
|
+
|
1112
|
+
template<typename T, typename P>
|
1113
|
+
NAN_INLINE v8::Local<v8::RegExp> NanNew(
|
1114
|
+
v8::Local<v8::String> pattern, v8::RegExp::Flags flags) {
|
1115
|
+
return v8::RegExp::New(pattern, flags);
|
1116
|
+
}
|
1117
|
+
|
1118
|
+
template<>
|
1119
|
+
NAN_INLINE v8::Local<v8::Array> NanNew<v8::Array>() {
|
1120
|
+
return v8::Array::New();
|
1121
|
+
}
|
1122
|
+
|
1123
|
+
template<>
|
1124
|
+
NAN_INLINE v8::Local<v8::Array> NanNew<v8::Array>(int length) {
|
1125
|
+
return v8::Array::New(length);
|
1126
|
+
}
|
1127
|
+
|
1128
|
+
template<>
|
1129
|
+
NAN_INLINE v8::Local<v8::Date> NanNew<v8::Date>(double time) {
|
1130
|
+
return v8::Date::New(time).As<v8::Date>();
|
1131
|
+
}
|
1132
|
+
|
1133
|
+
template<>
|
1134
|
+
NAN_INLINE v8::Local<v8::Date> NanNew<v8::Date>(int time) {
|
1135
|
+
return v8::Date::New(time).As<v8::Date>();
|
1136
|
+
}
|
1137
|
+
|
1138
|
+
typedef v8::Script NanUnboundScript;
|
1139
|
+
typedef v8::Script NanBoundScript;
|
1140
|
+
|
1141
|
+
template<typename T, typename P>
|
1142
|
+
NAN_INLINE v8::Local<T> NanNew(
|
1143
|
+
P s
|
1144
|
+
, const v8::ScriptOrigin& origin
|
1145
|
+
) {
|
1146
|
+
return v8::Script::New(s, const_cast<v8::ScriptOrigin *>(&origin));
|
1147
|
+
}
|
1148
|
+
|
1149
|
+
template<>
|
1150
|
+
NAN_INLINE v8::Local<NanUnboundScript> NanNew<NanUnboundScript>(
|
1151
|
+
v8::Local<v8::String> s
|
1152
|
+
) {
|
1153
|
+
return v8::Script::New(s);
|
1154
|
+
}
|
1155
|
+
|
1156
|
+
template<>
|
1157
|
+
NAN_INLINE v8::Local<v8::BooleanObject> NanNew(bool value) {
|
1158
|
+
return v8::BooleanObject::New(value).As<v8::BooleanObject>();
|
1159
|
+
}
|
1160
|
+
|
1161
|
+
template<>
|
1162
|
+
NAN_INLINE v8::Local<v8::StringObject>
|
1163
|
+
NanNew<v8::StringObject, v8::Local<v8::String> >(
|
1164
|
+
v8::Local<v8::String> value) {
|
1165
|
+
return v8::StringObject::New(value).As<v8::StringObject>();
|
1166
|
+
}
|
1167
|
+
|
1168
|
+
template<>
|
1169
|
+
NAN_INLINE v8::Local<v8::StringObject>
|
1170
|
+
NanNew<v8::StringObject, v8::Handle<v8::String> >(
|
1171
|
+
v8::Handle<v8::String> value) {
|
1172
|
+
return v8::StringObject::New(value).As<v8::StringObject>();
|
1173
|
+
}
|
1174
|
+
|
1175
|
+
template<>
|
1176
|
+
NAN_INLINE v8::Local<v8::NumberObject> NanNew<v8::NumberObject>(double val) {
|
1177
|
+
return v8::NumberObject::New(val).As<v8::NumberObject>();
|
1178
|
+
}
|
1179
|
+
|
1180
|
+
template<>
|
1181
|
+
NAN_INLINE v8::Local<v8::Uint32> NanNew<v8::Uint32, int32_t>(int32_t val) {
|
1182
|
+
return v8::Uint32::NewFromUnsigned(val)->ToUint32();
|
1183
|
+
}
|
1184
|
+
|
1185
|
+
template<>
|
1186
|
+
NAN_INLINE v8::Local<v8::Uint32> NanNew<v8::Uint32, uint32_t>(uint32_t val) {
|
1187
|
+
return v8::Uint32::NewFromUnsigned(val)->ToUint32();
|
1188
|
+
}
|
1189
|
+
|
1190
|
+
template<>
|
1191
|
+
NAN_INLINE v8::Local<v8::Int32> NanNew<v8::Int32, int32_t>(int32_t val) {
|
1192
|
+
return v8::Int32::New(val)->ToInt32();
|
1193
|
+
}
|
1194
|
+
|
1195
|
+
template<>
|
1196
|
+
NAN_INLINE v8::Local<v8::Int32> NanNew<v8::Int32, uint32_t>(uint32_t val) {
|
1197
|
+
return v8::Int32::New(val)->ToInt32();
|
1198
|
+
}
|
1199
|
+
|
1200
|
+
template<>
|
1201
|
+
NAN_INLINE v8::Local<v8::Integer> NanNew<v8::Integer, uint32_t>(uint32_t val) {
|
1202
|
+
return v8::Integer::NewFromUnsigned(val);
|
1203
|
+
}
|
1204
|
+
|
1205
|
+
template<>
|
1206
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, uint8_t *>(
|
1207
|
+
uint8_t *arg
|
1208
|
+
, int length) {
|
1209
|
+
int len = length;
|
1210
|
+
if (len < 0) {
|
1211
|
+
size_t temp = strlen(reinterpret_cast<const char *>(arg));
|
1212
|
+
assert(temp <= INT_MAX && "too long string");
|
1213
|
+
len = static_cast<int>(temp);
|
1214
|
+
}
|
1215
|
+
uint16_t *warg = new uint16_t[len];
|
1216
|
+
for (int i = 0; i < len; i++) {
|
1217
|
+
warg[i] = arg[i];
|
1218
|
+
}
|
1219
|
+
v8::Local<v8::String> retval = v8::String::New(warg, len);
|
1220
|
+
delete[] warg;
|
1221
|
+
return retval;
|
1222
|
+
}
|
1223
|
+
|
1224
|
+
template<>
|
1225
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const uint8_t *>(
|
1226
|
+
const uint8_t *arg
|
1227
|
+
, int length) {
|
1228
|
+
int len = length;
|
1229
|
+
if (len < 0) {
|
1230
|
+
size_t temp = strlen(reinterpret_cast<const char *>(arg));
|
1231
|
+
assert(temp <= INT_MAX && "too long string");
|
1232
|
+
len = static_cast<int>(temp);
|
1233
|
+
}
|
1234
|
+
uint16_t *warg = new uint16_t[len];
|
1235
|
+
for (int i = 0; i < len; i++) {
|
1236
|
+
warg[i] = arg[i];
|
1237
|
+
}
|
1238
|
+
v8::Local<v8::String> retval = v8::String::New(warg, len);
|
1239
|
+
delete[] warg;
|
1240
|
+
return retval;
|
1241
|
+
}
|
1242
|
+
|
1243
|
+
template<>
|
1244
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, uint8_t *>(uint8_t *arg) {
|
1245
|
+
size_t temp = strlen(reinterpret_cast<char *>(arg));
|
1246
|
+
assert(temp <= INT_MAX && "too long string");
|
1247
|
+
int length = static_cast<int>(temp);
|
1248
|
+
uint16_t *warg = new uint16_t[length];
|
1249
|
+
for (int i = 0; i < length; i++) {
|
1250
|
+
warg[i] = arg[i];
|
1251
|
+
}
|
1252
|
+
|
1253
|
+
v8::Local<v8::String> retval = v8::String::New(warg, length);
|
1254
|
+
delete[] warg;
|
1255
|
+
return retval;
|
1256
|
+
}
|
1257
|
+
|
1258
|
+
template<>
|
1259
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const uint8_t *>(
|
1260
|
+
const uint8_t *arg) {
|
1261
|
+
size_t temp = strlen(reinterpret_cast<const char *>(arg));
|
1262
|
+
assert(temp <= INT_MAX && "too long string");
|
1263
|
+
int length = static_cast<int>(temp);
|
1264
|
+
uint16_t *warg = new uint16_t[length];
|
1265
|
+
for (int i = 0; i < length; i++) {
|
1266
|
+
warg[i] = arg[i];
|
1267
|
+
}
|
1268
|
+
v8::Local<v8::String> retval = v8::String::New(warg, length);
|
1269
|
+
delete[] warg;
|
1270
|
+
return retval;
|
1271
|
+
}
|
1272
|
+
|
1273
|
+
template<>
|
1274
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String, std::string>(
|
1275
|
+
std::string arg) {
|
1276
|
+
return NanNew<v8::String>(arg.c_str(), static_cast<int>(arg.size()));
|
1277
|
+
}
|
1278
|
+
|
1279
|
+
template<>
|
1280
|
+
NAN_INLINE v8::Local<v8::String> NanNew<v8::String>() {
|
1281
|
+
return v8::String::Empty();
|
1282
|
+
}
|
1283
|
+
|
1284
|
+
NAN_INLINE v8::Local<v8::String> NanNew(const char* arg, int length = -1) {
|
1285
|
+
return NanNew<v8::String>(arg, length);
|
1286
|
+
}
|
1287
|
+
|
1288
|
+
NAN_INLINE v8::Local<v8::String> NanNew(
|
1289
|
+
const uint8_t* arg
|
1290
|
+
, int length = -1) {
|
1291
|
+
return NanNew<v8::String>(arg, length);
|
1292
|
+
}
|
1293
|
+
|
1294
|
+
NAN_INLINE v8::Local<v8::String> NanNew(
|
1295
|
+
const uint16_t* arg
|
1296
|
+
, int length = -1) {
|
1297
|
+
return NanNew<v8::String>(arg, length);
|
1298
|
+
}
|
1299
|
+
|
1300
|
+
NAN_INLINE v8::Local<v8::String> NanNew(
|
1301
|
+
const std::string& arg) {
|
1302
|
+
return NanNew<v8::String>(arg.c_str(), static_cast<int>(arg.size()));
|
1303
|
+
}
|
1304
|
+
|
1305
|
+
NAN_INLINE v8::Local<v8::Number> NanNew(double val) {
|
1306
|
+
return NanNew<v8::Number>(val);
|
1307
|
+
}
|
1308
|
+
|
1309
|
+
NAN_INLINE v8::Local<v8::Integer> NanNew(int val) {
|
1310
|
+
return NanNew<v8::Integer>(val);
|
1311
|
+
}
|
1312
|
+
|
1313
|
+
NAN_INLINE v8::Local<v8::Uint32> NanNew(unsigned int val) {
|
1314
|
+
return NanNew<v8::Uint32>(val);
|
1315
|
+
}
|
1316
|
+
|
1317
|
+
NAN_INLINE v8::Local<v8::Boolean> NanNew(bool val) {
|
1318
|
+
return NanNew<v8::Boolean>(val);
|
1319
|
+
}
|
1320
|
+
|
1321
|
+
NAN_INLINE v8::Local<v8::String> NanNew(
|
1322
|
+
v8::String::ExternalStringResource *resource) {
|
1323
|
+
return v8::String::NewExternal(resource);
|
1324
|
+
}
|
1325
|
+
|
1326
|
+
NAN_INLINE v8::Local<v8::String> NanNew(
|
1327
|
+
v8::String::ExternalAsciiStringResource *resource) {
|
1328
|
+
return v8::String::NewExternal(resource);
|
1329
|
+
}
|
1330
|
+
|
1331
|
+
# define NanScope() v8::HandleScope scope
|
1332
|
+
# define NanEscapableScope() v8::HandleScope scope
|
1333
|
+
# define NanEscapeScope(val) scope.Close(val)
|
1334
|
+
# define NanLocker() v8::Locker locker
|
1335
|
+
# define NanUnlocker() v8::Unlocker unlocker
|
1336
|
+
# define NanReturnValue(value) return scope.Close(value)
|
1337
|
+
# define NanReturnHolder() NanReturnValue(args.Holder())
|
1338
|
+
# define NanReturnThis() NanReturnValue(args.This())
|
1339
|
+
# define NanReturnUndefined() return v8::Undefined()
|
1340
|
+
# define NanReturnNull() return v8::Null()
|
1341
|
+
# define NanReturnEmptyString() return v8::String::Empty()
|
1342
|
+
# define NanObjectWrapHandle(obj) v8::Local<v8::Object>::New(obj->handle_)
|
1343
|
+
|
1344
|
+
NAN_INLINE v8::Local<v8::Primitive> NanUndefined() {
|
1345
|
+
NanEscapableScope();
|
1346
|
+
return NanEscapeScope(NanNew(v8::Undefined()));
|
1347
|
+
}
|
1348
|
+
|
1349
|
+
NAN_INLINE v8::Local<v8::Primitive> NanNull() {
|
1350
|
+
NanEscapableScope();
|
1351
|
+
return NanEscapeScope(NanNew(v8::Null()));
|
1352
|
+
}
|
1353
|
+
|
1354
|
+
NAN_INLINE v8::Local<v8::Boolean> NanTrue() {
|
1355
|
+
NanEscapableScope();
|
1356
|
+
return NanEscapeScope(NanNew(v8::True()));
|
1357
|
+
}
|
1358
|
+
|
1359
|
+
NAN_INLINE v8::Local<v8::Boolean> NanFalse() {
|
1360
|
+
NanEscapableScope();
|
1361
|
+
return NanEscapeScope(NanNew(v8::False()));
|
1362
|
+
}
|
1363
|
+
|
1364
|
+
NAN_INLINE int NanAdjustExternalMemory(int bc) {
|
1365
|
+
return static_cast<int>(v8::V8::AdjustAmountOfExternalAllocatedMemory(bc));
|
1366
|
+
}
|
1367
|
+
|
1368
|
+
NAN_INLINE void NanSetTemplate(
|
1369
|
+
v8::Handle<v8::Template> templ
|
1370
|
+
, const char *name
|
1371
|
+
, v8::Handle<v8::Data> value) {
|
1372
|
+
templ->Set(name, value);
|
1373
|
+
}
|
1374
|
+
|
1375
|
+
NAN_INLINE void NanSetTemplate(
|
1376
|
+
v8::Handle<v8::Template> templ
|
1377
|
+
, v8::Handle<v8::String> name
|
1378
|
+
, v8::Handle<v8::Data> value
|
1379
|
+
, v8::PropertyAttribute attributes) {
|
1380
|
+
templ->Set(name, value, attributes);
|
1381
|
+
}
|
1382
|
+
|
1383
|
+
NAN_INLINE v8::Local<v8::Context> NanGetCurrentContext() {
|
1384
|
+
return v8::Context::GetCurrent();
|
1385
|
+
}
|
1386
|
+
|
1387
|
+
NAN_INLINE void* NanGetInternalFieldPointer(
|
1388
|
+
v8::Handle<v8::Object> object
|
1389
|
+
, int index) {
|
1390
|
+
return object->GetPointerFromInternalField(index);
|
1391
|
+
}
|
1392
|
+
|
1393
|
+
NAN_INLINE void NanSetInternalFieldPointer(
|
1394
|
+
v8::Handle<v8::Object> object
|
1395
|
+
, int index
|
1396
|
+
, void* value) {
|
1397
|
+
object->SetPointerInInternalField(index, value);
|
1398
|
+
}
|
1399
|
+
|
1400
|
+
# define NAN_GC_CALLBACK(name) \
|
1401
|
+
void name(v8::GCType type, v8::GCCallbackFlags flags)
|
1402
|
+
|
1403
|
+
NAN_INLINE void NanAddGCEpilogueCallback(
|
1404
|
+
v8::GCEpilogueCallback callback
|
1405
|
+
, v8::GCType gc_type_filter = v8::kGCTypeAll) {
|
1406
|
+
v8::V8::AddGCEpilogueCallback(callback, gc_type_filter);
|
1407
|
+
}
|
1408
|
+
NAN_INLINE void NanRemoveGCEpilogueCallback(
|
1409
|
+
v8::GCEpilogueCallback callback) {
|
1410
|
+
v8::V8::RemoveGCEpilogueCallback(callback);
|
1411
|
+
}
|
1412
|
+
NAN_INLINE void NanAddGCPrologueCallback(
|
1413
|
+
v8::GCPrologueCallback callback
|
1414
|
+
, v8::GCType gc_type_filter = v8::kGCTypeAll) {
|
1415
|
+
v8::V8::AddGCPrologueCallback(callback, gc_type_filter);
|
1416
|
+
}
|
1417
|
+
NAN_INLINE void NanRemoveGCPrologueCallback(
|
1418
|
+
v8::GCPrologueCallback callback) {
|
1419
|
+
v8::V8::RemoveGCPrologueCallback(callback);
|
1420
|
+
}
|
1421
|
+
NAN_INLINE void NanGetHeapStatistics(
|
1422
|
+
v8::HeapStatistics *heap_statistics) {
|
1423
|
+
v8::V8::GetHeapStatistics(heap_statistics);
|
1424
|
+
}
|
1425
|
+
|
1426
|
+
template<typename T>
|
1427
|
+
NAN_INLINE void NanAssignPersistent(
|
1428
|
+
v8::Persistent<T>& handle
|
1429
|
+
, v8::Handle<T> obj) {
|
1430
|
+
handle.Dispose();
|
1431
|
+
handle = v8::Persistent<T>::New(obj);
|
1432
|
+
}
|
1433
|
+
|
1434
|
+
template<typename T, typename P>
|
1435
|
+
class _NanWeakCallbackData;
|
1436
|
+
|
1437
|
+
template<typename T, typename P>
|
1438
|
+
struct _NanWeakCallbackInfo {
|
1439
|
+
typedef void (*Callback)(const _NanWeakCallbackData<T, P> &data);
|
1440
|
+
NAN_INLINE _NanWeakCallbackInfo(v8::Handle<T> handle, P* param, Callback cb)
|
1441
|
+
: parameter(param)
|
1442
|
+
, callback(cb)
|
1443
|
+
, persistent(v8::Persistent<T>::New(handle)) { }
|
1444
|
+
|
1445
|
+
NAN_INLINE ~_NanWeakCallbackInfo() {
|
1446
|
+
persistent.Dispose();
|
1447
|
+
persistent.Clear();
|
1448
|
+
}
|
1449
|
+
|
1450
|
+
P* const parameter;
|
1451
|
+
Callback const callback;
|
1452
|
+
v8::Persistent<T> persistent;
|
1453
|
+
};
|
1454
|
+
|
1455
|
+
template<typename T, typename P>
|
1456
|
+
class _NanWeakCallbackData {
|
1457
|
+
public:
|
1458
|
+
NAN_INLINE _NanWeakCallbackData(_NanWeakCallbackInfo<T, P> *info)
|
1459
|
+
: info_(info) { }
|
1460
|
+
|
1461
|
+
NAN_INLINE v8::Local<T> GetValue() const {
|
1462
|
+
return NanNew(info_->persistent);
|
1463
|
+
}
|
1464
|
+
|
1465
|
+
NAN_INLINE P* GetParameter() const { return info_->parameter; }
|
1466
|
+
|
1467
|
+
NAN_INLINE bool IsNearDeath() const {
|
1468
|
+
return info_->persistent.IsNearDeath();
|
1469
|
+
}
|
1470
|
+
|
1471
|
+
NAN_INLINE void Revive() const;
|
1472
|
+
|
1473
|
+
NAN_INLINE _NanWeakCallbackInfo<T, P>* GetCallbackInfo() const {
|
1474
|
+
return info_;
|
1475
|
+
}
|
1476
|
+
|
1477
|
+
NAN_DEPRECATED NAN_INLINE void Dispose() const {
|
1478
|
+
}
|
1479
|
+
|
1480
|
+
private:
|
1481
|
+
_NanWeakCallbackInfo<T, P>* info_;
|
1482
|
+
};
|
1483
|
+
|
1484
|
+
template<typename T, typename P>
|
1485
|
+
static void _NanWeakPersistentDispatcher(
|
1486
|
+
v8::Persistent<v8::Value> object, void *data) {
|
1487
|
+
_NanWeakCallbackInfo<T, P>* info =
|
1488
|
+
static_cast<_NanWeakCallbackInfo<T, P>*>(data);
|
1489
|
+
_NanWeakCallbackData<T, P> wcbd(info);
|
1490
|
+
info->callback(wcbd);
|
1491
|
+
if (wcbd.IsNearDeath()) {
|
1492
|
+
delete wcbd.GetCallbackInfo();
|
1493
|
+
}
|
1494
|
+
}
|
1495
|
+
|
1496
|
+
template<typename T, typename P>
|
1497
|
+
NAN_INLINE void _NanWeakCallbackData<T, P>::Revive() const {
|
1498
|
+
info_->persistent.MakeWeak(
|
1499
|
+
info_
|
1500
|
+
, &_NanWeakPersistentDispatcher<T, P>);
|
1501
|
+
}
|
1502
|
+
|
1503
|
+
template<typename T, typename P>
|
1504
|
+
NAN_INLINE _NanWeakCallbackInfo<T, P>* NanMakeWeakPersistent(
|
1505
|
+
v8::Handle<T> handle
|
1506
|
+
, P* parameter
|
1507
|
+
, typename _NanWeakCallbackInfo<T, P>::Callback callback) {
|
1508
|
+
_NanWeakCallbackInfo<T, P> *cbinfo =
|
1509
|
+
new _NanWeakCallbackInfo<T, P>(handle, parameter, callback);
|
1510
|
+
cbinfo->persistent.MakeWeak(
|
1511
|
+
cbinfo
|
1512
|
+
, &_NanWeakPersistentDispatcher<T, P>);
|
1513
|
+
return cbinfo;
|
1514
|
+
}
|
1515
|
+
|
1516
|
+
# define NAN_WEAK_CALLBACK(name) \
|
1517
|
+
template<typename T, typename P> \
|
1518
|
+
static void name(const _NanWeakCallbackData<T, P> &data)
|
1519
|
+
|
1520
|
+
# define _NAN_ERROR(fun, errmsg) \
|
1521
|
+
fun(v8::String::New(errmsg))
|
1522
|
+
|
1523
|
+
# define _NAN_THROW_ERROR(fun, errmsg) \
|
1524
|
+
do { \
|
1525
|
+
NanScope(); \
|
1526
|
+
return v8::Local<v8::Value>::New( \
|
1527
|
+
v8::ThrowException(_NAN_ERROR(fun, errmsg))); \
|
1528
|
+
} while (0);
|
1529
|
+
|
1530
|
+
NAN_INLINE v8::Local<v8::Value> NanError(const char* errmsg) {
|
1531
|
+
return _NAN_ERROR(v8::Exception::Error, errmsg);
|
1532
|
+
}
|
1533
|
+
|
1534
|
+
NAN_INLINE v8::Local<v8::Value> NanThrowError(const char* errmsg) {
|
1535
|
+
_NAN_THROW_ERROR(v8::Exception::Error, errmsg);
|
1536
|
+
}
|
1537
|
+
|
1538
|
+
NAN_INLINE v8::Local<v8::Value> NanThrowError(
|
1539
|
+
v8::Handle<v8::Value> error
|
1540
|
+
) {
|
1541
|
+
NanScope();
|
1542
|
+
return v8::Local<v8::Value>::New(v8::ThrowException(error));
|
1543
|
+
}
|
1544
|
+
|
1545
|
+
NAN_INLINE v8::Local<v8::Value> NanError(
|
1546
|
+
const char *msg
|
1547
|
+
, const int errorNumber
|
1548
|
+
) {
|
1549
|
+
v8::Local<v8::Value> err = v8::Exception::Error(v8::String::New(msg));
|
1550
|
+
v8::Local<v8::Object> obj = err.As<v8::Object>();
|
1551
|
+
obj->Set(v8::String::New("code"), v8::Int32::New(errorNumber));
|
1552
|
+
return err;
|
1553
|
+
}
|
1554
|
+
|
1555
|
+
NAN_INLINE v8::Local<v8::Value> NanThrowError(
|
1556
|
+
const char *msg
|
1557
|
+
, const int errorNumber
|
1558
|
+
) {
|
1559
|
+
return NanThrowError(NanError(msg, errorNumber));
|
1560
|
+
}
|
1561
|
+
|
1562
|
+
NAN_INLINE v8::Local<v8::Value> NanTypeError(const char* errmsg) {
|
1563
|
+
return _NAN_ERROR(v8::Exception::TypeError, errmsg);
|
1564
|
+
}
|
1565
|
+
|
1566
|
+
NAN_INLINE v8::Local<v8::Value> NanThrowTypeError(
|
1567
|
+
const char* errmsg
|
1568
|
+
) {
|
1569
|
+
_NAN_THROW_ERROR(v8::Exception::TypeError, errmsg);
|
1570
|
+
}
|
1571
|
+
|
1572
|
+
NAN_INLINE v8::Local<v8::Value> NanRangeError(
|
1573
|
+
const char* errmsg
|
1574
|
+
) {
|
1575
|
+
return _NAN_ERROR(v8::Exception::RangeError, errmsg);
|
1576
|
+
}
|
1577
|
+
|
1578
|
+
NAN_INLINE v8::Local<v8::Value> NanThrowRangeError(
|
1579
|
+
const char* errmsg
|
1580
|
+
) {
|
1581
|
+
_NAN_THROW_ERROR(v8::Exception::RangeError, errmsg);
|
1582
|
+
}
|
1583
|
+
|
1584
|
+
template<typename T>
|
1585
|
+
NAN_INLINE void NanDisposePersistent(
|
1586
|
+
v8::Persistent<T> &handle) { // NOLINT(runtime/references)
|
1587
|
+
handle.Dispose();
|
1588
|
+
handle.Clear();
|
1589
|
+
}
|
1590
|
+
|
1591
|
+
NAN_INLINE v8::Local<v8::Object> NanNewBufferHandle (
|
1592
|
+
char *data
|
1593
|
+
, size_t length
|
1594
|
+
, node::Buffer::free_callback callback
|
1595
|
+
, void *hint
|
1596
|
+
) {
|
1597
|
+
return NanNew(
|
1598
|
+
node::Buffer::New(data, length, callback, hint)->handle_);
|
1599
|
+
}
|
1600
|
+
|
1601
|
+
NAN_INLINE v8::Local<v8::Object> NanNewBufferHandle (
|
1602
|
+
const char *data
|
1603
|
+
, uint32_t size
|
1604
|
+
) {
|
1605
|
+
#if NODE_MODULE_VERSION >= 0x000B
|
1606
|
+
return NanNew(node::Buffer::New(data, size)->handle_);
|
1607
|
+
#else
|
1608
|
+
return NanNew(
|
1609
|
+
node::Buffer::New(const_cast<char*>(data), size)->handle_);
|
1610
|
+
#endif
|
1611
|
+
}
|
1612
|
+
|
1613
|
+
NAN_INLINE v8::Local<v8::Object> NanNewBufferHandle (uint32_t size) {
|
1614
|
+
return NanNew(node::Buffer::New(size)->handle_);
|
1615
|
+
}
|
1616
|
+
|
1617
|
+
NAN_INLINE void FreeData(char *data, void *hint) {
|
1618
|
+
delete[] data;
|
1619
|
+
}
|
1620
|
+
|
1621
|
+
NAN_INLINE v8::Local<v8::Object> NanBufferUse(
|
1622
|
+
char* data
|
1623
|
+
, uint32_t size
|
1624
|
+
) {
|
1625
|
+
return NanNew(
|
1626
|
+
node::Buffer::New(data, size, FreeData, NULL)->handle_);
|
1627
|
+
}
|
1628
|
+
|
1629
|
+
NAN_INLINE bool NanHasInstance(
|
1630
|
+
const v8::Persistent<v8::FunctionTemplate>& function_template
|
1631
|
+
, v8::Handle<v8::Value> value
|
1632
|
+
) {
|
1633
|
+
return function_template->HasInstance(value);
|
1634
|
+
}
|
1635
|
+
|
1636
|
+
NAN_INLINE v8::Local<v8::Context> NanNewContextHandle(
|
1637
|
+
v8::ExtensionConfiguration* extensions = NULL
|
1638
|
+
, v8::Handle<v8::ObjectTemplate> tmpl = v8::Handle<v8::ObjectTemplate>()
|
1639
|
+
, v8::Handle<v8::Value> obj = v8::Handle<v8::Value>()
|
1640
|
+
) {
|
1641
|
+
v8::Persistent<v8::Context> ctx = v8::Context::New(extensions, tmpl, obj);
|
1642
|
+
v8::Local<v8::Context> lctx = NanNew(ctx);
|
1643
|
+
ctx.Dispose();
|
1644
|
+
return lctx;
|
1645
|
+
}
|
1646
|
+
|
1647
|
+
NAN_INLINE v8::Local<NanBoundScript> NanCompileScript(
|
1648
|
+
v8::Local<v8::String> s
|
1649
|
+
, const v8::ScriptOrigin& origin
|
1650
|
+
) {
|
1651
|
+
return v8::Script::Compile(s, const_cast<v8::ScriptOrigin *>(&origin));
|
1652
|
+
}
|
1653
|
+
|
1654
|
+
NAN_INLINE v8::Local<NanBoundScript> NanCompileScript(
|
1655
|
+
v8::Local<v8::String> s
|
1656
|
+
) {
|
1657
|
+
return v8::Script::Compile(s);
|
1658
|
+
}
|
1659
|
+
|
1660
|
+
NAN_INLINE v8::Local<v8::Value> NanRunScript(v8::Handle<v8::Script> script) {
|
1661
|
+
return script->Run();
|
1662
|
+
}
|
1663
|
+
|
1664
|
+
NAN_INLINE v8::Local<v8::Value> NanMakeCallback(
|
1665
|
+
v8::Handle<v8::Object> target
|
1666
|
+
, v8::Handle<v8::Function> func
|
1667
|
+
, int argc
|
1668
|
+
, v8::Handle<v8::Value>* argv) {
|
1669
|
+
# if NODE_VERSION_AT_LEAST(0, 8, 0)
|
1670
|
+
return NanNew(node::MakeCallback(target, func, argc, argv));
|
1671
|
+
# else
|
1672
|
+
v8::TryCatch try_catch;
|
1673
|
+
v8::Local<v8::Value> result = func->Call(target, argc, argv);
|
1674
|
+
if (try_catch.HasCaught()) {
|
1675
|
+
node::FatalException(try_catch);
|
1676
|
+
}
|
1677
|
+
return result;
|
1678
|
+
# endif
|
1679
|
+
}
|
1680
|
+
|
1681
|
+
NAN_INLINE v8::Local<v8::Value> NanMakeCallback(
|
1682
|
+
v8::Handle<v8::Object> target
|
1683
|
+
, v8::Handle<v8::String> symbol
|
1684
|
+
, int argc
|
1685
|
+
, v8::Handle<v8::Value>* argv) {
|
1686
|
+
# if NODE_VERSION_AT_LEAST(0, 8, 0)
|
1687
|
+
return NanNew(node::MakeCallback(target, symbol, argc, argv));
|
1688
|
+
# else
|
1689
|
+
v8::Local<v8::Function> callback = target->Get(symbol).As<v8::Function>();
|
1690
|
+
return NanMakeCallback(target, callback, argc, argv);
|
1691
|
+
# endif
|
1692
|
+
}
|
1693
|
+
|
1694
|
+
NAN_INLINE v8::Local<v8::Value> NanMakeCallback(
|
1695
|
+
v8::Handle<v8::Object> target
|
1696
|
+
, const char* method
|
1697
|
+
, int argc
|
1698
|
+
, v8::Handle<v8::Value>* argv) {
|
1699
|
+
# if NODE_VERSION_AT_LEAST(0, 8, 0)
|
1700
|
+
return NanNew(node::MakeCallback(target, method, argc, argv));
|
1701
|
+
# else
|
1702
|
+
return NanMakeCallback(target, NanNew(method), argc, argv);
|
1703
|
+
# endif
|
1704
|
+
}
|
1705
|
+
|
1706
|
+
template<typename T>
|
1707
|
+
NAN_INLINE void NanSetIsolateData(
|
1708
|
+
v8::Isolate *isolate
|
1709
|
+
, T *data
|
1710
|
+
) {
|
1711
|
+
isolate->SetData(data);
|
1712
|
+
}
|
1713
|
+
|
1714
|
+
template<typename T>
|
1715
|
+
NAN_INLINE T *NanGetIsolateData(
|
1716
|
+
v8::Isolate *isolate
|
1717
|
+
) {
|
1718
|
+
return static_cast<T*>(isolate->GetData());
|
1719
|
+
}
|
1720
|
+
|
1721
|
+
class NanAsciiString {
|
1722
|
+
public:
|
1723
|
+
NAN_INLINE explicit NanAsciiString(v8::Handle<v8::Value> from) {
|
1724
|
+
v8::Local<v8::String> toStr = from->ToString();
|
1725
|
+
size = toStr->Length();
|
1726
|
+
buf = new char[size + 1];
|
1727
|
+
size = toStr->WriteAscii(buf);
|
1728
|
+
}
|
1729
|
+
|
1730
|
+
NAN_DEPRECATED NAN_INLINE int Size() const {
|
1731
|
+
return size;
|
1732
|
+
}
|
1733
|
+
|
1734
|
+
NAN_INLINE int length() const {
|
1735
|
+
return size;
|
1736
|
+
}
|
1737
|
+
|
1738
|
+
|
1739
|
+
NAN_INLINE char* operator*() { return buf; }
|
1740
|
+
NAN_INLINE const char* operator*() const { return buf; }
|
1741
|
+
|
1742
|
+
NAN_INLINE ~NanAsciiString() {
|
1743
|
+
delete[] buf;
|
1744
|
+
}
|
1745
|
+
|
1746
|
+
private:
|
1747
|
+
// disallow copying and assigning
|
1748
|
+
NanAsciiString(const NanAsciiString&);
|
1749
|
+
void operator=(const NanAsciiString&);
|
1750
|
+
|
1751
|
+
char *buf;
|
1752
|
+
int size;
|
1753
|
+
};
|
1754
|
+
|
1755
|
+
class NanUtf8String {
|
1756
|
+
public:
|
1757
|
+
NAN_INLINE explicit NanUtf8String(v8::Handle<v8::Value> from) {
|
1758
|
+
v8::Local<v8::String> toStr = from->ToString();
|
1759
|
+
size = toStr->Utf8Length();
|
1760
|
+
buf = new char[size + 1];
|
1761
|
+
toStr->WriteUtf8(buf);
|
1762
|
+
}
|
1763
|
+
|
1764
|
+
NAN_DEPRECATED NAN_INLINE int Size() const {
|
1765
|
+
return size;
|
1766
|
+
}
|
1767
|
+
|
1768
|
+
NAN_INLINE int length() const {
|
1769
|
+
return size;
|
1770
|
+
}
|
1771
|
+
|
1772
|
+
NAN_INLINE char* operator*() { return buf; }
|
1773
|
+
NAN_INLINE const char* operator*() const { return buf; }
|
1774
|
+
|
1775
|
+
NAN_INLINE ~NanUtf8String() {
|
1776
|
+
delete[] buf;
|
1777
|
+
}
|
1778
|
+
|
1779
|
+
private:
|
1780
|
+
// disallow copying and assigning
|
1781
|
+
NanUtf8String(const NanUtf8String&);
|
1782
|
+
void operator=(const NanUtf8String&);
|
1783
|
+
|
1784
|
+
char *buf;
|
1785
|
+
int size;
|
1786
|
+
};
|
1787
|
+
|
1788
|
+
class NanUcs2String {
|
1789
|
+
public:
|
1790
|
+
NAN_INLINE explicit NanUcs2String(v8::Handle<v8::Value> from) {
|
1791
|
+
v8::Local<v8::String> toStr = from->ToString();
|
1792
|
+
size = toStr->Length();
|
1793
|
+
buf = new uint16_t[size + 1];
|
1794
|
+
toStr->Write(buf);
|
1795
|
+
}
|
1796
|
+
|
1797
|
+
NAN_DEPRECATED NAN_INLINE int Size() const {
|
1798
|
+
return size;
|
1799
|
+
}
|
1800
|
+
|
1801
|
+
NAN_INLINE int length() const {
|
1802
|
+
return size;
|
1803
|
+
}
|
1804
|
+
|
1805
|
+
NAN_INLINE uint16_t* operator*() { return buf; }
|
1806
|
+
NAN_INLINE const uint16_t* operator*() const { return buf; }
|
1807
|
+
|
1808
|
+
NAN_INLINE ~NanUcs2String() {
|
1809
|
+
delete[] buf;
|
1810
|
+
}
|
1811
|
+
|
1812
|
+
private:
|
1813
|
+
// disallow copying and assigning
|
1814
|
+
NanUcs2String(const NanUcs2String&);
|
1815
|
+
void operator=(const NanUcs2String&);
|
1816
|
+
|
1817
|
+
uint16_t *buf;
|
1818
|
+
int size;
|
1819
|
+
};
|
1820
|
+
|
1821
|
+
#endif // NODE_MODULE_VERSION
|
1822
|
+
|
1823
|
+
typedef void (*NanFreeCallback)(char *data, void *hint);
|
1824
|
+
|
1825
|
+
#define NAN_METHOD(name) _NAN_METHOD_RETURN_TYPE name(_NAN_METHOD_ARGS)
|
1826
|
+
#define NAN_GETTER(name) \
|
1827
|
+
_NAN_GETTER_RETURN_TYPE name( \
|
1828
|
+
v8::Local<v8::String> property \
|
1829
|
+
, _NAN_GETTER_ARGS)
|
1830
|
+
#define NAN_SETTER(name) \
|
1831
|
+
_NAN_SETTER_RETURN_TYPE name( \
|
1832
|
+
v8::Local<v8::String> property \
|
1833
|
+
, v8::Local<v8::Value> value \
|
1834
|
+
, _NAN_SETTER_ARGS)
|
1835
|
+
#define NAN_PROPERTY_GETTER(name) \
|
1836
|
+
_NAN_PROPERTY_GETTER_RETURN_TYPE name( \
|
1837
|
+
v8::Local<v8::String> property \
|
1838
|
+
, _NAN_PROPERTY_GETTER_ARGS)
|
1839
|
+
#define NAN_PROPERTY_SETTER(name) \
|
1840
|
+
_NAN_PROPERTY_SETTER_RETURN_TYPE name( \
|
1841
|
+
v8::Local<v8::String> property \
|
1842
|
+
, v8::Local<v8::Value> value \
|
1843
|
+
, _NAN_PROPERTY_SETTER_ARGS)
|
1844
|
+
#define NAN_PROPERTY_ENUMERATOR(name) \
|
1845
|
+
_NAN_PROPERTY_ENUMERATOR_RETURN_TYPE name(_NAN_PROPERTY_ENUMERATOR_ARGS)
|
1846
|
+
#define NAN_PROPERTY_DELETER(name) \
|
1847
|
+
_NAN_PROPERTY_DELETER_RETURN_TYPE name( \
|
1848
|
+
v8::Local<v8::String> property \
|
1849
|
+
, _NAN_PROPERTY_DELETER_ARGS)
|
1850
|
+
#define NAN_PROPERTY_QUERY(name) \
|
1851
|
+
_NAN_PROPERTY_QUERY_RETURN_TYPE name( \
|
1852
|
+
v8::Local<v8::String> property \
|
1853
|
+
, _NAN_PROPERTY_QUERY_ARGS)
|
1854
|
+
# define NAN_INDEX_GETTER(name) \
|
1855
|
+
_NAN_INDEX_GETTER_RETURN_TYPE name(uint32_t index, _NAN_INDEX_GETTER_ARGS)
|
1856
|
+
#define NAN_INDEX_SETTER(name) \
|
1857
|
+
_NAN_INDEX_SETTER_RETURN_TYPE name( \
|
1858
|
+
uint32_t index \
|
1859
|
+
, v8::Local<v8::Value> value \
|
1860
|
+
, _NAN_INDEX_SETTER_ARGS)
|
1861
|
+
#define NAN_INDEX_ENUMERATOR(name) \
|
1862
|
+
_NAN_INDEX_ENUMERATOR_RETURN_TYPE name(_NAN_INDEX_ENUMERATOR_ARGS)
|
1863
|
+
#define NAN_INDEX_DELETER(name) \
|
1864
|
+
_NAN_INDEX_DELETER_RETURN_TYPE name( \
|
1865
|
+
uint32_t index \
|
1866
|
+
, _NAN_INDEX_DELETER_ARGS)
|
1867
|
+
#define NAN_INDEX_QUERY(name) \
|
1868
|
+
_NAN_INDEX_QUERY_RETURN_TYPE name(uint32_t index, _NAN_INDEX_QUERY_ARGS)
|
1869
|
+
|
1870
|
+
class NanCallback {
|
1871
|
+
public:
|
1872
|
+
NanCallback() {
|
1873
|
+
NanScope();
|
1874
|
+
v8::Local<v8::Object> obj = NanNew<v8::Object>();
|
1875
|
+
NanAssignPersistent(handle, obj);
|
1876
|
+
}
|
1877
|
+
|
1878
|
+
explicit NanCallback(const v8::Handle<v8::Function> &fn) {
|
1879
|
+
NanScope();
|
1880
|
+
v8::Local<v8::Object> obj = NanNew<v8::Object>();
|
1881
|
+
NanAssignPersistent(handle, obj);
|
1882
|
+
SetFunction(fn);
|
1883
|
+
}
|
1884
|
+
|
1885
|
+
~NanCallback() {
|
1886
|
+
if (handle.IsEmpty()) return;
|
1887
|
+
NanDisposePersistent(handle);
|
1888
|
+
}
|
1889
|
+
|
1890
|
+
NAN_INLINE void SetFunction(const v8::Handle<v8::Function> &fn) {
|
1891
|
+
NanScope();
|
1892
|
+
NanNew(handle)->Set(kCallbackIndex, fn);
|
1893
|
+
}
|
1894
|
+
|
1895
|
+
NAN_INLINE v8::Local<v8::Function> GetFunction() const {
|
1896
|
+
NanEscapableScope();
|
1897
|
+
return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)
|
1898
|
+
.As<v8::Function>());
|
1899
|
+
}
|
1900
|
+
|
1901
|
+
NAN_INLINE bool IsEmpty() const {
|
1902
|
+
NanScope();
|
1903
|
+
return NanNew(handle)->Get(kCallbackIndex)->IsUndefined();
|
1904
|
+
}
|
1905
|
+
|
1906
|
+
v8::Handle<v8::Value> Call(int argc, v8::Handle<v8::Value> argv[]) const {
|
1907
|
+
NanEscapableScope();
|
1908
|
+
#if (NODE_MODULE_VERSION > 0x000B) // 0.11.12+
|
1909
|
+
v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
1910
|
+
v8::Local<v8::Function> callback = NanNew(handle)->
|
1911
|
+
Get(kCallbackIndex).As<v8::Function>();
|
1912
|
+
return NanEscapeScope(node::MakeCallback(
|
1913
|
+
isolate
|
1914
|
+
, isolate->GetCurrentContext()->Global()
|
1915
|
+
, callback
|
1916
|
+
, argc
|
1917
|
+
, argv
|
1918
|
+
));
|
1919
|
+
#else
|
1920
|
+
#if NODE_VERSION_AT_LEAST(0, 8, 0)
|
1921
|
+
v8::Local<v8::Function> callback = handle->
|
1922
|
+
Get(kCallbackIndex).As<v8::Function>();
|
1923
|
+
return NanEscapeScope(node::MakeCallback(
|
1924
|
+
v8::Context::GetCurrent()->Global()
|
1925
|
+
, callback
|
1926
|
+
, argc
|
1927
|
+
, argv
|
1928
|
+
));
|
1929
|
+
#else
|
1930
|
+
v8::Local<v8::Function> callback = handle->
|
1931
|
+
Get(kCallbackIndex).As<v8::Function>();
|
1932
|
+
return NanEscapeScope(NanMakeCallback(
|
1933
|
+
v8::Context::GetCurrent()->Global(), callback, argc, argv));
|
1934
|
+
#endif
|
1935
|
+
#endif
|
1936
|
+
}
|
1937
|
+
|
1938
|
+
private:
|
1939
|
+
v8::Persistent<v8::Object> handle;
|
1940
|
+
static const uint32_t kCallbackIndex = 0;
|
1941
|
+
};
|
1942
|
+
|
1943
|
+
/* abstract */ class NanAsyncWorker {
|
1944
|
+
public:
|
1945
|
+
explicit NanAsyncWorker(NanCallback *callback_)
|
1946
|
+
: callback(callback_), errmsg_(NULL) {
|
1947
|
+
request.data = this;
|
1948
|
+
|
1949
|
+
NanScope();
|
1950
|
+
v8::Local<v8::Object> obj = NanNew<v8::Object>();
|
1951
|
+
NanAssignPersistent(persistentHandle, obj);
|
1952
|
+
}
|
1953
|
+
|
1954
|
+
virtual ~NanAsyncWorker() {
|
1955
|
+
NanScope();
|
1956
|
+
|
1957
|
+
if (!persistentHandle.IsEmpty())
|
1958
|
+
NanDisposePersistent(persistentHandle);
|
1959
|
+
if (callback)
|
1960
|
+
delete callback;
|
1961
|
+
if (errmsg_)
|
1962
|
+
delete[] errmsg_;
|
1963
|
+
}
|
1964
|
+
|
1965
|
+
virtual void WorkComplete() {
|
1966
|
+
NanScope();
|
1967
|
+
|
1968
|
+
if (errmsg_ == NULL)
|
1969
|
+
HandleOKCallback();
|
1970
|
+
else
|
1971
|
+
HandleErrorCallback();
|
1972
|
+
delete callback;
|
1973
|
+
callback = NULL;
|
1974
|
+
}
|
1975
|
+
|
1976
|
+
NAN_INLINE void SaveToPersistent(
|
1977
|
+
const char *key, const v8::Local<v8::Object> &obj) {
|
1978
|
+
v8::Local<v8::Object> handle = NanNew(persistentHandle);
|
1979
|
+
handle->Set(NanNew<v8::String>(key), obj);
|
1980
|
+
}
|
1981
|
+
|
1982
|
+
v8::Local<v8::Object> GetFromPersistent(const char *key) const {
|
1983
|
+
NanEscapableScope();
|
1984
|
+
v8::Local<v8::Object> handle = NanNew(persistentHandle);
|
1985
|
+
return NanEscapeScope(handle->Get(NanNew(key)).As<v8::Object>());
|
1986
|
+
}
|
1987
|
+
|
1988
|
+
virtual void Execute() = 0;
|
1989
|
+
|
1990
|
+
uv_work_t request;
|
1991
|
+
|
1992
|
+
protected:
|
1993
|
+
v8::Persistent<v8::Object> persistentHandle;
|
1994
|
+
NanCallback *callback;
|
1995
|
+
|
1996
|
+
virtual void HandleOKCallback() {
|
1997
|
+
callback->Call(0, NULL);
|
1998
|
+
}
|
1999
|
+
|
2000
|
+
virtual void HandleErrorCallback() {
|
2001
|
+
NanScope();
|
2002
|
+
|
2003
|
+
v8::Local<v8::Value> argv[] = {
|
2004
|
+
v8::Exception::Error(NanNew<v8::String>(ErrorMessage()))
|
2005
|
+
};
|
2006
|
+
callback->Call(1, argv);
|
2007
|
+
}
|
2008
|
+
|
2009
|
+
void SetErrorMessage(const char *msg) {
|
2010
|
+
if (errmsg_) {
|
2011
|
+
delete[] errmsg_;
|
2012
|
+
}
|
2013
|
+
|
2014
|
+
size_t size = strlen(msg) + 1;
|
2015
|
+
errmsg_ = new char[size];
|
2016
|
+
memcpy(errmsg_, msg, size);
|
2017
|
+
}
|
2018
|
+
|
2019
|
+
const char* ErrorMessage() const {
|
2020
|
+
return errmsg_;
|
2021
|
+
}
|
2022
|
+
|
2023
|
+
private:
|
2024
|
+
char *errmsg_;
|
2025
|
+
};
|
2026
|
+
|
2027
|
+
NAN_INLINE void NanAsyncExecute (uv_work_t* req) {
|
2028
|
+
NanAsyncWorker *worker = static_cast<NanAsyncWorker*>(req->data);
|
2029
|
+
worker->Execute();
|
2030
|
+
}
|
2031
|
+
|
2032
|
+
NAN_INLINE void NanAsyncExecuteComplete (uv_work_t* req) {
|
2033
|
+
NanAsyncWorker* worker = static_cast<NanAsyncWorker*>(req->data);
|
2034
|
+
worker->WorkComplete();
|
2035
|
+
delete worker;
|
2036
|
+
}
|
2037
|
+
|
2038
|
+
NAN_INLINE void NanAsyncQueueWorker (NanAsyncWorker* worker) {
|
2039
|
+
uv_queue_work(
|
2040
|
+
uv_default_loop()
|
2041
|
+
, &worker->request
|
2042
|
+
, NanAsyncExecute
|
2043
|
+
, (uv_after_work_cb)NanAsyncExecuteComplete
|
2044
|
+
);
|
2045
|
+
}
|
2046
|
+
|
2047
|
+
//// Base 64 ////
|
2048
|
+
|
2049
|
+
#define _nan_base64_encoded_size(size) ((size + 2 - ((size + 2) % 3)) / 3 * 4)
|
2050
|
+
|
2051
|
+
// Doesn't check for padding at the end. Can be 1-2 bytes over.
|
2052
|
+
NAN_INLINE size_t _nan_base64_decoded_size_fast(size_t size) {
|
2053
|
+
size_t remainder = size % 4;
|
2054
|
+
|
2055
|
+
size = (size / 4) * 3;
|
2056
|
+
if (remainder) {
|
2057
|
+
if (size == 0 && remainder == 1) {
|
2058
|
+
// special case: 1-byte input cannot be decoded
|
2059
|
+
size = 0;
|
2060
|
+
} else {
|
2061
|
+
// non-padded input, add 1 or 2 extra bytes
|
2062
|
+
size += 1 + (remainder == 3);
|
2063
|
+
}
|
2064
|
+
}
|
2065
|
+
|
2066
|
+
return size;
|
2067
|
+
}
|
2068
|
+
|
2069
|
+
template<typename T>
|
2070
|
+
NAN_INLINE size_t _nan_base64_decoded_size(
|
2071
|
+
const T* src
|
2072
|
+
, size_t size
|
2073
|
+
) {
|
2074
|
+
if (size == 0)
|
2075
|
+
return 0;
|
2076
|
+
|
2077
|
+
if (src[size - 1] == '=')
|
2078
|
+
size--;
|
2079
|
+
if (size > 0 && src[size - 1] == '=')
|
2080
|
+
size--;
|
2081
|
+
|
2082
|
+
return _nan_base64_decoded_size_fast(size);
|
2083
|
+
}
|
2084
|
+
|
2085
|
+
// supports regular and URL-safe base64
|
2086
|
+
static const int _nan_unbase64_table[] = {
|
2087
|
+
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1, -2, -1, -1
|
2088
|
+
, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
|
2089
|
+
, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, 62, -1, 63
|
2090
|
+
, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1
|
2091
|
+
, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
|
2092
|
+
, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, 63
|
2093
|
+
, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
|
2094
|
+
, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1
|
2095
|
+
, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
|
2096
|
+
, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
|
2097
|
+
, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
|
2098
|
+
, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
|
2099
|
+
, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
|
2100
|
+
, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
|
2101
|
+
, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
|
2102
|
+
, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
|
2103
|
+
};
|
2104
|
+
|
2105
|
+
#define _nan_unbase64(x) _nan_unbase64_table[(uint8_t)(x)]
|
2106
|
+
|
2107
|
+
template<typename T> static size_t _nan_base64_decode(
|
2108
|
+
char* buf
|
2109
|
+
, size_t len
|
2110
|
+
, const T* src
|
2111
|
+
, const size_t srcLen
|
2112
|
+
) {
|
2113
|
+
char* dst = buf;
|
2114
|
+
char* dstEnd = buf + len;
|
2115
|
+
const T* srcEnd = src + srcLen;
|
2116
|
+
|
2117
|
+
while (src < srcEnd && dst < dstEnd) {
|
2118
|
+
ptrdiff_t remaining = srcEnd - src;
|
2119
|
+
char a, b, c, d;
|
2120
|
+
|
2121
|
+
while (_nan_unbase64(*src) < 0 && src < srcEnd) src++, remaining--;
|
2122
|
+
if (remaining == 0 || *src == '=') break;
|
2123
|
+
a = _nan_unbase64(*src++);
|
2124
|
+
|
2125
|
+
while (_nan_unbase64(*src) < 0 && src < srcEnd) src++, remaining--;
|
2126
|
+
if (remaining <= 1 || *src == '=') break;
|
2127
|
+
b = _nan_unbase64(*src++);
|
2128
|
+
|
2129
|
+
*dst++ = (a << 2) | ((b & 0x30) >> 4);
|
2130
|
+
if (dst == dstEnd) break;
|
2131
|
+
|
2132
|
+
while (_nan_unbase64(*src) < 0 && src < srcEnd) src++, remaining--;
|
2133
|
+
if (remaining <= 2 || *src == '=') break;
|
2134
|
+
c = _nan_unbase64(*src++);
|
2135
|
+
|
2136
|
+
*dst++ = ((b & 0x0F) << 4) | ((c & 0x3C) >> 2);
|
2137
|
+
if (dst == dstEnd) break;
|
2138
|
+
|
2139
|
+
while (_nan_unbase64(*src) < 0 && src < srcEnd) src++, remaining--;
|
2140
|
+
if (remaining <= 3 || *src == '=') break;
|
2141
|
+
d = _nan_unbase64(*src++);
|
2142
|
+
|
2143
|
+
*dst++ = ((c & 0x03) << 6) | (d & 0x3F);
|
2144
|
+
}
|
2145
|
+
|
2146
|
+
return dst - buf;
|
2147
|
+
}
|
2148
|
+
|
2149
|
+
//// HEX ////
|
2150
|
+
|
2151
|
+
template<typename T> unsigned _nan_hex2bin(T c) {
|
2152
|
+
if (c >= '0' && c <= '9') return c - '0';
|
2153
|
+
if (c >= 'A' && c <= 'F') return 10 + (c - 'A');
|
2154
|
+
if (c >= 'a' && c <= 'f') return 10 + (c - 'a');
|
2155
|
+
return static_cast<unsigned>(-1);
|
2156
|
+
}
|
2157
|
+
|
2158
|
+
template<typename T> static size_t _nan_hex_decode(
|
2159
|
+
char* buf
|
2160
|
+
, size_t len
|
2161
|
+
, const T* src
|
2162
|
+
, const size_t srcLen
|
2163
|
+
) {
|
2164
|
+
size_t i;
|
2165
|
+
for (i = 0; i < len && i * 2 + 1 < srcLen; ++i) {
|
2166
|
+
unsigned a = _nan_hex2bin(src[i * 2 + 0]);
|
2167
|
+
unsigned b = _nan_hex2bin(src[i * 2 + 1]);
|
2168
|
+
if (!~a || !~b) return i;
|
2169
|
+
buf[i] = a * 16 + b;
|
2170
|
+
}
|
2171
|
+
|
2172
|
+
return i;
|
2173
|
+
}
|
2174
|
+
|
2175
|
+
static bool _NanGetExternalParts(
|
2176
|
+
v8::Handle<v8::Value> val
|
2177
|
+
, const char** data
|
2178
|
+
, size_t* len
|
2179
|
+
) {
|
2180
|
+
if (node::Buffer::HasInstance(val)) {
|
2181
|
+
*data = node::Buffer::Data(val.As<v8::Object>());
|
2182
|
+
*len = node::Buffer::Length(val.As<v8::Object>());
|
2183
|
+
return true;
|
2184
|
+
}
|
2185
|
+
|
2186
|
+
assert(val->IsString());
|
2187
|
+
v8::Local<v8::String> str = NanNew(val.As<v8::String>());
|
2188
|
+
|
2189
|
+
#if NODE_MODULE_VERSION >= 42 // io.js v1.0.0
|
2190
|
+
if (str->IsExternalOneByte()) {
|
2191
|
+
const v8::String::ExternalOneByteStringResource* ext;
|
2192
|
+
ext = str->GetExternalOneByteStringResource();
|
2193
|
+
*data = ext->data();
|
2194
|
+
*len = ext->length();
|
2195
|
+
return true;
|
2196
|
+
}
|
2197
|
+
#else
|
2198
|
+
if (str->IsExternalAscii()) {
|
2199
|
+
const v8::String::ExternalAsciiStringResource* ext;
|
2200
|
+
ext = str->GetExternalAsciiStringResource();
|
2201
|
+
*data = ext->data();
|
2202
|
+
*len = ext->length();
|
2203
|
+
return true;
|
2204
|
+
}
|
2205
|
+
#endif
|
2206
|
+
|
2207
|
+
if (str->IsExternal()) {
|
2208
|
+
const v8::String::ExternalStringResource* ext;
|
2209
|
+
ext = str->GetExternalStringResource();
|
2210
|
+
*data = reinterpret_cast<const char*>(ext->data());
|
2211
|
+
*len = ext->length();
|
2212
|
+
return true;
|
2213
|
+
}
|
2214
|
+
|
2215
|
+
return false;
|
2216
|
+
}
|
2217
|
+
|
2218
|
+
namespace Nan {
|
2219
|
+
enum Encoding {ASCII, UTF8, BASE64, UCS2, BINARY, HEX, BUFFER};
|
2220
|
+
}
|
2221
|
+
|
2222
|
+
/* NAN_DEPRECATED */ NAN_INLINE void* _NanRawString(
|
2223
|
+
v8::Handle<v8::Value> from
|
2224
|
+
, enum Nan::Encoding encoding
|
2225
|
+
, size_t *datalen
|
2226
|
+
, void *buf
|
2227
|
+
, size_t buflen
|
2228
|
+
, int flags
|
2229
|
+
) {
|
2230
|
+
NanScope();
|
2231
|
+
|
2232
|
+
size_t sz_;
|
2233
|
+
size_t term_len = !(flags & v8::String::NO_NULL_TERMINATION);
|
2234
|
+
char *data = NULL;
|
2235
|
+
size_t len;
|
2236
|
+
bool is_extern = _NanGetExternalParts(
|
2237
|
+
from
|
2238
|
+
, const_cast<const char**>(&data)
|
2239
|
+
, &len);
|
2240
|
+
|
2241
|
+
if (is_extern && !term_len) {
|
2242
|
+
NanSetPointerSafe(datalen, len);
|
2243
|
+
return data;
|
2244
|
+
}
|
2245
|
+
|
2246
|
+
v8::Local<v8::String> toStr = from->ToString();
|
2247
|
+
|
2248
|
+
char *to = static_cast<char *>(buf);
|
2249
|
+
|
2250
|
+
switch (encoding) {
|
2251
|
+
case Nan::ASCII:
|
2252
|
+
#if NODE_MODULE_VERSION < 0x000C
|
2253
|
+
sz_ = toStr->Length();
|
2254
|
+
if (to == NULL) {
|
2255
|
+
to = new char[sz_ + term_len];
|
2256
|
+
} else {
|
2257
|
+
assert(buflen >= sz_ + term_len && "too small buffer");
|
2258
|
+
}
|
2259
|
+
NanSetPointerSafe<size_t>(
|
2260
|
+
datalen
|
2261
|
+
, toStr->WriteAscii(to, 0, static_cast<int>(sz_ + term_len), flags));
|
2262
|
+
return to;
|
2263
|
+
#endif
|
2264
|
+
case Nan::BINARY:
|
2265
|
+
case Nan::BUFFER:
|
2266
|
+
sz_ = toStr->Length();
|
2267
|
+
if (to == NULL) {
|
2268
|
+
to = new char[sz_ + term_len];
|
2269
|
+
} else {
|
2270
|
+
assert(buflen >= sz_ + term_len && "too small buffer");
|
2271
|
+
}
|
2272
|
+
#if NODE_MODULE_VERSION < 0x000C
|
2273
|
+
{
|
2274
|
+
uint16_t* twobytebuf = new uint16_t[sz_ + term_len];
|
2275
|
+
|
2276
|
+
size_t somelen = toStr->Write(twobytebuf, 0,
|
2277
|
+
static_cast<int>(sz_ + term_len), flags);
|
2278
|
+
|
2279
|
+
for (size_t i = 0; i < sz_ + term_len && i < somelen + term_len; i++) {
|
2280
|
+
unsigned char *b = reinterpret_cast<unsigned char*>(&twobytebuf[i]);
|
2281
|
+
to[i] = *b;
|
2282
|
+
}
|
2283
|
+
|
2284
|
+
NanSetPointerSafe<size_t>(datalen, somelen);
|
2285
|
+
|
2286
|
+
delete[] twobytebuf;
|
2287
|
+
return to;
|
2288
|
+
}
|
2289
|
+
#else
|
2290
|
+
NanSetPointerSafe<size_t>(
|
2291
|
+
datalen,
|
2292
|
+
toStr->WriteOneByte(
|
2293
|
+
reinterpret_cast<uint8_t *>(to)
|
2294
|
+
, 0
|
2295
|
+
, static_cast<int>(sz_ + term_len)
|
2296
|
+
, flags));
|
2297
|
+
return to;
|
2298
|
+
#endif
|
2299
|
+
case Nan::UTF8:
|
2300
|
+
sz_ = toStr->Utf8Length();
|
2301
|
+
if (to == NULL) {
|
2302
|
+
to = new char[sz_ + term_len];
|
2303
|
+
} else {
|
2304
|
+
assert(buflen >= sz_ + term_len && "too small buffer");
|
2305
|
+
}
|
2306
|
+
NanSetPointerSafe<size_t>(
|
2307
|
+
datalen
|
2308
|
+
, toStr->WriteUtf8(to, static_cast<int>(sz_ + term_len)
|
2309
|
+
, NULL, flags)
|
2310
|
+
- term_len);
|
2311
|
+
return to;
|
2312
|
+
case Nan::BASE64:
|
2313
|
+
{
|
2314
|
+
v8::String::Value value(toStr);
|
2315
|
+
sz_ = _nan_base64_decoded_size(*value, value.length());
|
2316
|
+
if (to == NULL) {
|
2317
|
+
to = new char[sz_ + term_len];
|
2318
|
+
} else {
|
2319
|
+
assert(buflen >= sz_ + term_len);
|
2320
|
+
}
|
2321
|
+
NanSetPointerSafe<size_t>(
|
2322
|
+
datalen
|
2323
|
+
, _nan_base64_decode(to, sz_, *value, value.length()));
|
2324
|
+
if (term_len) {
|
2325
|
+
to[sz_] = '\0';
|
2326
|
+
}
|
2327
|
+
return to;
|
2328
|
+
}
|
2329
|
+
case Nan::UCS2:
|
2330
|
+
{
|
2331
|
+
sz_ = toStr->Length();
|
2332
|
+
if (to == NULL) {
|
2333
|
+
to = new char[(sz_ + term_len) * 2];
|
2334
|
+
} else {
|
2335
|
+
assert(buflen >= (sz_ + term_len) * 2 && "too small buffer");
|
2336
|
+
}
|
2337
|
+
|
2338
|
+
int bc = 2 * toStr->Write(
|
2339
|
+
reinterpret_cast<uint16_t *>(to)
|
2340
|
+
, 0
|
2341
|
+
, static_cast<int>(sz_ + term_len)
|
2342
|
+
, flags);
|
2343
|
+
NanSetPointerSafe<size_t>(datalen, bc);
|
2344
|
+
return to;
|
2345
|
+
}
|
2346
|
+
case Nan::HEX:
|
2347
|
+
{
|
2348
|
+
v8::String::Value value(toStr);
|
2349
|
+
sz_ = value.length();
|
2350
|
+
assert(!(sz_ & 1) && "bad hex data");
|
2351
|
+
if (to == NULL) {
|
2352
|
+
to = new char[sz_ / 2 + term_len];
|
2353
|
+
} else {
|
2354
|
+
assert(buflen >= sz_ / 2 + term_len && "too small buffer");
|
2355
|
+
}
|
2356
|
+
NanSetPointerSafe<size_t>(
|
2357
|
+
datalen
|
2358
|
+
, _nan_hex_decode(to, sz_ / 2, *value, value.length()));
|
2359
|
+
}
|
2360
|
+
if (term_len) {
|
2361
|
+
to[sz_ / 2] = '\0';
|
2362
|
+
}
|
2363
|
+
return to;
|
2364
|
+
default:
|
2365
|
+
assert(0 && "unknown encoding");
|
2366
|
+
}
|
2367
|
+
return to;
|
2368
|
+
}
|
2369
|
+
|
2370
|
+
NAN_DEPRECATED NAN_INLINE void* NanRawString(
|
2371
|
+
v8::Handle<v8::Value> from
|
2372
|
+
, enum Nan::Encoding encoding
|
2373
|
+
, size_t *datalen
|
2374
|
+
, void *buf
|
2375
|
+
, size_t buflen
|
2376
|
+
, int flags
|
2377
|
+
) {
|
2378
|
+
return _NanRawString(from, encoding, datalen, buf, buflen, flags);
|
2379
|
+
}
|
2380
|
+
|
2381
|
+
|
2382
|
+
NAN_DEPRECATED NAN_INLINE char* NanCString(
|
2383
|
+
v8::Handle<v8::Value> from
|
2384
|
+
, size_t *datalen
|
2385
|
+
, char *buf = NULL
|
2386
|
+
, size_t buflen = 0
|
2387
|
+
, int flags = v8::String::NO_OPTIONS
|
2388
|
+
) {
|
2389
|
+
return static_cast<char *>(
|
2390
|
+
_NanRawString(from, Nan::UTF8, datalen, buf, buflen, flags)
|
2391
|
+
);
|
2392
|
+
}
|
2393
|
+
|
2394
|
+
NAN_INLINE void NanSetPrototypeTemplate(
|
2395
|
+
v8::Local<v8::FunctionTemplate> templ
|
2396
|
+
, const char *name
|
2397
|
+
, v8::Handle<v8::Data> value
|
2398
|
+
) {
|
2399
|
+
NanSetTemplate(templ->PrototypeTemplate(), name, value);
|
2400
|
+
}
|
2401
|
+
|
2402
|
+
NAN_INLINE void NanSetPrototypeTemplate(
|
2403
|
+
v8::Local<v8::FunctionTemplate> templ
|
2404
|
+
, v8::Handle<v8::String> name
|
2405
|
+
, v8::Handle<v8::Data> value
|
2406
|
+
, v8::PropertyAttribute attributes
|
2407
|
+
) {
|
2408
|
+
NanSetTemplate(templ->PrototypeTemplate(), name, value, attributes);
|
2409
|
+
}
|
2410
|
+
|
2411
|
+
NAN_INLINE void NanSetInstanceTemplate(
|
2412
|
+
v8::Local<v8::FunctionTemplate> templ
|
2413
|
+
, const char *name
|
2414
|
+
, v8::Handle<v8::Data> value
|
2415
|
+
) {
|
2416
|
+
NanSetTemplate(templ->InstanceTemplate(), name, value);
|
2417
|
+
}
|
2418
|
+
|
2419
|
+
NAN_INLINE void NanSetInstanceTemplate(
|
2420
|
+
v8::Local<v8::FunctionTemplate> templ
|
2421
|
+
, v8::Handle<v8::String> name
|
2422
|
+
, v8::Handle<v8::Data> value
|
2423
|
+
, v8::PropertyAttribute attributes
|
2424
|
+
) {
|
2425
|
+
NanSetTemplate(templ->InstanceTemplate(), name, value, attributes);
|
2426
|
+
}
|
2427
|
+
|
2428
|
+
#endif // NAN_H_
|