aboutsummaryrefslogtreecommitdiffstats
path: root/tools/node_modules/expresso/deps/jscoverage/instrument-js.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/expresso/deps/jscoverage/instrument-js.h')
-rw-r--r--tools/node_modules/expresso/deps/jscoverage/instrument-js.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/tools/node_modules/expresso/deps/jscoverage/instrument-js.h b/tools/node_modules/expresso/deps/jscoverage/instrument-js.h
new file mode 100644
index 0000000..07c60ab
--- /dev/null
+++ b/tools/node_modules/expresso/deps/jscoverage/instrument-js.h
@@ -0,0 +1,81 @@
+/*
+ instrument-js.h - JavaScript instrumentation routines
+ Copyright (C) 2007, 2008 siliconforks.com
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#ifndef INSTRUMENT_JS_H_
+#define INSTRUMENT_JS_H_
+
+/* ISO C99 specifies that C++ code must define this to get UINT16_MAX etc. */
+#define __STDC_LIMIT_MACROS
+#include <stdint.h>
+
+#include "stream.h"
+#include "util.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum FileType {
+ FILE_TYPE_JS,
+ FILE_TYPE_HTML,
+ FILE_TYPE_OTHER
+};
+
+extern bool jscoverage_mozilla;
+
+void jscoverage_set_js_version(const char * version);
+
+void jscoverage_init(void);
+
+void jscoverage_cleanup(void);
+
+void jscoverage_instrument_js(const char * id, const uint16_t * characters, size_t num_characters, Stream * output);
+
+void jscoverage_copy_resources(const char * destination_directory);
+
+typedef struct Coverage Coverage;
+
+typedef struct FileCoverage {
+ char * id;
+
+ int * coverage_lines;
+ char ** source_lines;
+
+ /* SpiderMonkey uses uint32 for array lengths */
+ uint32_t num_coverage_lines;
+ uint32_t num_source_lines;
+} FileCoverage;
+
+Coverage * Coverage_new(void);
+
+void Coverage_delete(Coverage * coverage);
+
+typedef void (*CoverageForeachFunction) (const FileCoverage * file_coverage, int i, void * p);
+
+void Coverage_foreach_file(Coverage * coverage, CoverageForeachFunction f, void * p);
+
+int jscoverage_parse_json(Coverage * coverage, const uint8_t * data, size_t length) __attribute__((warn_unused_result));
+
+void jscoverage_write_source(const char * id, const uint16_t * characters, size_t num_characters, Stream * output);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* INSTRUMENT_JS_H_ */