babel/test/core/traceur.js
2015-03-28 05:38:12 +11:00

103 lines
2.5 KiB
JavaScript

require("./_helper").assertVendor("traceur");
var fs = require("fs");
var _ = require("lodash");
require("./_transformation-helper")({
name: "traceur",
loc: __dirname + "/../../vendor/traceur/test/feature",
ignoreSuites: [
// weird environmental issue make these hard to test
"Modules",
// these are the responsibility of regenerator
"AsyncFunctions",
"Yield",
// these are the responsibility of core-js
"StringExtras",
"ArrayExtras",
"Collections",
// not supported
"ProperTailCalls",
"AsyncGenerators",
// these are all internal traceur tests or non-standard features
"ObjectMixin",
"Annotations",
"TestRunner",
"Tools",
"TempVarTransformer",
"AtScript",
"FreeVariableChecker",
"TypeAssertions",
"MemberVariables",
"Types"
],
ignoreTasks: [
// TODO
"Syntax/StrictKeywordsInPattern",
// broken test, see google/traceur-compiler#1797
"Classes/NestedClassSuperAnimal",
// TODO: #426
"Classes/SuperUnary",
"Classes/SuperPostfix",
// TODO: investigate
"Classes/SuperSet",
"Classes/PrototypeDescriptor",
"Classes/ExtendStrange",
"Classes/ClassNameBinding",
// these are the responsibility of core-js
"Symbol/GetOwnPropertySymbols",
"Spread/Type",
"Symbol/ObjectModel",
"Symbol/Inherited",
"Symbol/Object",
"Spread/NoIterator",
"Destructuring/Rest",
"Destructuring/Empty",
// traceur uses an old version of regexpu
"RegularExpression/Simple",
// class methods are still enumerable in traceur
"NumericLiteral/Simple",
"Classes/Method",
// Object.mixin didn't make it into ES6
"ObjectMixin",
// traceur doesn't name methods and has an incorrect test asserting that
// they have no names
"PropertyMethodAssignment/PropertyMethodAssignment",
// Babel assumes that all code transformed is a module so this isn't necessary
"Strict",
"Syntax/UseStrictEscapeSequence",
"Syntax/UseStrictLineContinuation",
// experimental es7 - the spec hasn't been finalized yet
// these both fail because of filters between blocks
"ArrayComprehension/Simple",
"GeneratorComprehension/Simple",
// yield has been added as a keyword in ES6
"Yield/YieldIdentifier",
"Syntax/StrictKeywords"
]
}, {
optional: ["es6.symbols"],
experimental: true
}, function (opts, task) {
if (!_.contains(task.exec.loc, "module.js")) {
opts.blacklist = ["strict"];
}
});