Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Unified Diff: node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/node_modules/esprima/test/compat.js

Issue 800513006: Added vulcanize under third_party/npm_modules (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/node_modules/esprima/test/compat.js
diff --git a/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/node_modules/esprima/test/compat.js b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/node_modules/esprima/test/compat.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee3a6295eba7ae81536b8f57a99b26a43207e7ff
--- /dev/null
+++ b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/node_modules/esprima/test/compat.js
@@ -0,0 +1,239 @@
+/*
+ Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
+ Copyright (C) 2011 Ariya Hidayat <ariya.hidayat@gmail.com>
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*jslint node: true */
+/*global document: true, window:true, esprima: true, testReflect: true */
+
+var runTests;
+
+function getContext(esprima, reportCase, reportFailure) {
+ 'use strict';
+
+ var Reflect, Pattern;
+
+ // Maps Mozilla Reflect object to our Esprima parser.
+ Reflect = {
+ parse: function (code) {
+ var result;
+
+ reportCase(code);
+
+ try {
+ result = esprima.parse(code);
+ } catch (error) {
+ result = error;
+ }
+
+ return result;
+ }
+ };
+
+ // This is used by Reflect test suite to match a syntax tree.
+ Pattern = function (obj) {
+ var pattern;
+
+ // Poor man's deep object cloning.
+ pattern = JSON.parse(JSON.stringify(obj));
+
+ // Special handling for regular expression literal since we need to
+ // convert it to a string literal, otherwise it will be decoded
+ // as object "{}" and the regular expression would be lost.
+ if (obj.type && obj.type === 'Literal') {
+ if (obj.value instanceof RegExp) {
+ pattern = {
+ type: obj.type,
+ value: obj.value.toString()
+ };
+ }
+ }
+
+ // Special handling for branch statement because SpiderMonkey
+ // prefers to put the 'alternate' property before 'consequent'.
+ if (obj.type && obj.type === 'IfStatement') {
+ pattern = {
+ type: pattern.type,
+ test: pattern.test,
+ consequent: pattern.consequent,
+ alternate: pattern.alternate
+ };
+ }
+
+ // Special handling for do while statement because SpiderMonkey
+ // prefers to put the 'test' property before 'body'.
+ if (obj.type && obj.type === 'DoWhileStatement') {
+ pattern = {
+ type: pattern.type,
+ body: pattern.body,
+ test: pattern.test
+ };
+ }
+
+ function adjustRegexLiteralAndRaw(key, value) {
+ if (key === 'value' && value instanceof RegExp) {
+ value = value.toString();
+ } else if (key === 'raw' && typeof value === "string") {
+ // Ignore Esprima-specific 'raw' property.
+ return undefined;
+ }
+ return value;
+ }
+
+ if (obj.type && (obj.type === 'Program')) {
+ pattern.assert = function (tree) {
+ var actual, expected;
+ actual = JSON.stringify(tree, adjustRegexLiteralAndRaw, 4);
+ expected = JSON.stringify(obj, null, 4);
+
+ if (expected !== actual) {
+ reportFailure(expected, actual);
+ }
+ };
+ }
+
+ return pattern;
+ };
+
+ return {
+ Reflect: Reflect,
+ Pattern: Pattern
+ };
+}
+
+if (typeof window !== 'undefined') {
+ // Run all tests in a browser environment.
+ runTests = function () {
+ 'use strict';
+
+ var total = 0,
+ failures = 0;
+
+ function setText(el, str) {
+ if (typeof el.innerText === 'string') {
+ el.innerText = str;
+ } else {
+ el.textContent = str;
+ }
+ }
+
+ function reportCase(code) {
+ var report, e;
+ report = document.getElementById('report');
+ e = document.createElement('pre');
+ e.setAttribute('class', 'code');
+ setText(e, code);
+ report.appendChild(e);
+ total += 1;
+ }
+
+ function reportFailure(expected, actual) {
+ var report, e;
+
+ failures += 1;
+
+ report = document.getElementById('report');
+
+ e = document.createElement('p');
+ setText(e, 'Expected');
+ report.appendChild(e);
+
+ e = document.createElement('pre');
+ e.setAttribute('class', 'expected');
+ setText(e, expected);
+ report.appendChild(e);
+
+ e = document.createElement('p');
+ setText(e, 'Actual');
+ report.appendChild(e);
+
+ e = document.createElement('pre');
+ e.setAttribute('class', 'actual');
+ setText(e, actual);
+ report.appendChild(e);
+ }
+
+ setText(document.getElementById('version'), esprima.version);
+
+ window.setTimeout(function () {
+ var tick, context = getContext(esprima, reportCase, reportFailure);
+
+ tick = new Date();
+ testReflect(context.Reflect, context.Pattern);
+ tick = (new Date()) - tick;
+
+ if (failures > 0) {
+ setText(document.getElementById('status'), total + ' tests. ' +
+ 'Failures: ' + failures + '. ' + tick + ' ms');
+ } else {
+ setText(document.getElementById('status'), total + ' tests. ' +
+ 'No failure. ' + tick + ' ms');
+ }
+ }, 513);
+ };
+} else {
+ (function (global) {
+ 'use strict';
+ var esprima = require('../esprima'),
+ tick,
+ total = 0,
+ failures = [],
+ header,
+ current,
+ context;
+
+ function reportCase(code) {
+ total += 1;
+ current = code;
+ }
+
+ function reportFailure(expected, actual) {
+ failures.push({
+ source: current,
+ expected: expected.toString(),
+ actual: actual.toString()
+ });
+ }
+
+ context = getContext(esprima, reportCase, reportFailure);
+
+ tick = new Date();
+ require('./reflect').testReflect(context.Reflect, context.Pattern);
+ tick = (new Date()) - tick;
+
+ header = total + ' tests. ' + failures.length + ' failures. ' +
+ tick + ' ms';
+ if (failures.length) {
+ console.error(header);
+ failures.forEach(function (failure) {
+ console.error(failure.source + ': Expected\n ' +
+ failure.expected.split('\n').join('\n ') +
+ '\nto match\n ' + failure.actual);
+ });
+ } else {
+ console.log(header);
+ }
+ process.exit(failures.length === 0 ? 0 : 1);
+ }(this));
+}
+/* vim: set sw=4 ts=4 et tw=80 : */

Powered by Google App Engine
This is Rietveld 408576698