Add a new test to ARES6
https://bugs.webkit.org/show_bug.cgi?id=170077

Rubber stamped by Filip Pizlo.

This patch adds a new test to ARES6. The test is called Babylon. Babylon is
the JavaScript parser that is part of the Babel transpiler. The test runs
the parser on 4 different JS scripts.

* ARES-6/Babylon: Added.
* ARES-6/Babylon/AUTHORS: Added.
* ARES-6/Babylon/air-blob.js: Added.
(Reg):
(Reg.fromReg):
(Reg.prototype.get index):
(Reg.prototype.get type):
(Reg.prototype.get name):
(Reg.prototype.get isCalleeSave):
(Reg.prototype.get isReg):
(Reg.prototype.hash):
(Reg.prototype.toString):
(Reg.extract):
(Reg.forEachFast):
(Reg.forEach):
(newGPR):
(Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
* ARES-6/Babylon/babylon-blob.js: Added.
(export.default.Parser):
(export.default.Parser.prototype.isReservedWord):
(export.default.Parser.prototype.hasPlugin):
(export.default.Parser.prototype.extend):
(export.default.Parser.prototype.loadPlugins):
(export.default.Parser.prototype.parse):
* ARES-6/Babylon/basic-blob.js: Added.
(Basic.NumberApply):
(Basic.Variable):
(Basic.Const):
(Basic.NumberPow):
(Basic.NumberMul):
(Basic.NumberDiv):
(Basic.NumberNeg):
(Basic.NumberAdd):
(Basic.NumberSub):
(Basic.StringVar):
(Basic.Equals):
(Basic.NotEquals):
(Basic.LessThan):
(Basic.GreaterThan):
(Basic.LessEqual):
(Basic.GreaterEqual):
(Basic.GoTo):
(Basic.GoSub):
(Basic.Def):
(Basic.Let):
(Basic.If):
(Basic.Return):
(Basic.Stop):
(Basic.On):
(sideState.shouldStop):
(Basic.For):
(Basic.Next):
(Basic.Print):
(Basic.Input):
(Basic.Read):
(Basic.Restore):
(Basic.Dim):
(Basic.Randomize):
(Basic.End):
(Basic.Program):
* ARES-6/Babylon/benchmark.js: Added.
(this.performance.performance.now.currentTime):
(else.this.preciseTime.currentTime):
(else.currentTime):
(BabylonBenchmark.appendSource):
(BabylonBenchmark):
(BabylonBenchmark.prototype.runIteration.parse):
(BabylonBenchmark.prototype.runIteration.parseExpression):
(BabylonBenchmark.prototype.runIteration):
(runBenchmark):
* ARES-6/Babylon/index.js: Added.
(isIdentifierStart):
(isIdentifierChar):
(isNewLine):
(Position):
(SourceLocation):
(getLineInfo):
(TokenType):
(KeywordTokenType):
(BinopTokenType):
(TokContext):
(tt.parenR.updateContext.tt.braceR.updateContext):
(tt.name.updateContext):
(tt.braceL.updateContext):
(tt.dollarBraceL.updateContext):
(tt.parenL.updateContext):
(tt.incDec.updateContext):
(tt._function.updateContext):
(tt.backQuote.updateContext):
(State.prototype.init):
(State.prototype.curPosition):
(State.prototype.clone):
(State):
(Token):
(codePointToString):
(Tokenizer):
(Tokenizer.prototype.next):
(Tokenizer.prototype.eat):
(Tokenizer.prototype.match):
(Tokenizer.prototype.isKeyword):
(Tokenizer.prototype.lookahead):
(Tokenizer.prototype.setStrict):
(Tokenizer.prototype.curContext):
(Tokenizer.prototype.nextToken):
(Tokenizer.prototype.readToken):
(Tokenizer.prototype.fullCharCodeAtPos):
(Tokenizer.prototype.pushComment):
(Tokenizer.prototype.skipBlockComment):
(Tokenizer.prototype.skipLineComment):
(Tokenizer.prototype.skipSpace):
(Tokenizer.prototype.finishToken):
(Tokenizer.prototype.readToken_dot):
(Tokenizer.prototype.readToken_slash):
(Tokenizer.prototype.readToken_mult_modulo):
(Tokenizer.prototype.readToken_pipe_amp):
(Tokenizer.prototype.readToken_caret):
(Tokenizer.prototype.readToken_plus_min):
(Tokenizer.prototype.readToken_lt_gt):
(Tokenizer.prototype.readToken_eq_excl):
(Tokenizer.prototype.getTokenFromCode):
(Tokenizer.prototype.finishOp):
(Tokenizer.prototype.readRegexp):
(Tokenizer.prototype.readInt):
(Tokenizer.prototype.readRadixNumber):
(Tokenizer.prototype.readNumber):
(Tokenizer.prototype.readCodePoint):
(Tokenizer.prototype.readString):
(Tokenizer.prototype.readTmplToken):
(Tokenizer.prototype.readEscapedChar):
(Tokenizer.prototype.readHexChar):
(Tokenizer.prototype.readWord1):
(Tokenizer.prototype.readWord):
(Tokenizer.prototype.braceIsBlock):
(Tokenizer.prototype.updateContext):
(getOptions):
(prototype.isReservedWord):
(prototype.hasPlugin):
(prototype.extend):
(prototype.loadPlugins):
(prototype.parse):
(last):
(pp.addComment):
(pp.processComment):
(pp.checkPropClash):
(pp.getExpression):
(pp.parseExpression):
(pp.parseMaybeAssign):
(pos.set i):
* ARES-6/Babylon/inspector-blob.js: Added.
(WebInspector.ScriptSyntaxTree):
(WebInspector.ScriptSyntaxTree.prototype.get parsedSuccessfully):
(WebInspector.ScriptSyntaxTree.prototype.forEachNode):
(WebInspector.ScriptSyntaxTree.prototype.filter):
(WebInspector.ScriptSyntaxTree.prototype.containersOfOffset):
(WebInspector.ScriptSyntaxTree.prototype.filterByRange.filterForNodesInRange):
(WebInspector.ScriptSyntaxTree.prototype.filterByRange):
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement.removeFunctionsFilter):
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
(WebInspector.ScriptSyntaxTree.functionReturnDivot):
(WebInspector.ScriptSyntaxTree.prototype.updateTypes):
(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
(WebInspector.ScriptSyntaxTree.prototype._defaultParserState):
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._recurseArray):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
* ARES-6/about.html:
* ARES-6/babylon_benchmark.js: Added.
* ARES-6/cli.js:
* ARES-6/glue.js:
* ARES-6/index.html:
* ARES-6/results.js:
(Results.prototype.reportResult):
(Results.prototype.reportResult.averageAbovePercentile): Deleted.
* ARES-6/styles.css:
(.test):
(@media only screen and (max-width: 784px)):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@214828 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/PerformanceTests/ChangeLog b/PerformanceTests/ChangeLog
index 3002e1b..f884aa8 100644
--- a/PerformanceTests/ChangeLog
+++ b/PerformanceTests/ChangeLog
@@ -1,3 +1,192 @@
+2017-04-03  Saam Barati  <sbarati@apple.com>
+
+        Add a new test to ARES6
+        https://bugs.webkit.org/show_bug.cgi?id=170077
+
+        Rubber stamped by Filip Pizlo.
+
+        This patch adds a new test to ARES6. The test is called Babylon. Babylon is
+        the JavaScript parser that is part of the Babel transpiler. The test runs
+        the parser on 4 different JS scripts.
+
+        * ARES-6/Babylon: Added.
+        * ARES-6/Babylon/AUTHORS: Added.
+        * ARES-6/Babylon/air-blob.js: Added.
+        (Reg):
+        (Reg.fromReg):
+        (Reg.prototype.get index):
+        (Reg.prototype.get type):
+        (Reg.prototype.get name):
+        (Reg.prototype.get isCalleeSave):
+        (Reg.prototype.get isReg):
+        (Reg.prototype.hash):
+        (Reg.prototype.toString):
+        (Reg.extract):
+        (Reg.forEachFast):
+        (Reg.forEach):
+        (newGPR):
+        (Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
+        * ARES-6/Babylon/babylon-blob.js: Added.
+        (export.default.Parser):
+        (export.default.Parser.prototype.isReservedWord):
+        (export.default.Parser.prototype.hasPlugin):
+        (export.default.Parser.prototype.extend):
+        (export.default.Parser.prototype.loadPlugins):
+        (export.default.Parser.prototype.parse):
+        * ARES-6/Babylon/basic-blob.js: Added.
+        (Basic.NumberApply):
+        (Basic.Variable):
+        (Basic.Const):
+        (Basic.NumberPow):
+        (Basic.NumberMul):
+        (Basic.NumberDiv):
+        (Basic.NumberNeg):
+        (Basic.NumberAdd):
+        (Basic.NumberSub):
+        (Basic.StringVar):
+        (Basic.Equals):
+        (Basic.NotEquals):
+        (Basic.LessThan):
+        (Basic.GreaterThan):
+        (Basic.LessEqual):
+        (Basic.GreaterEqual):
+        (Basic.GoTo):
+        (Basic.GoSub):
+        (Basic.Def):
+        (Basic.Let):
+        (Basic.If):
+        (Basic.Return):
+        (Basic.Stop):
+        (Basic.On):
+        (sideState.shouldStop):
+        (Basic.For):
+        (Basic.Next):
+        (Basic.Print):
+        (Basic.Input):
+        (Basic.Read):
+        (Basic.Restore):
+        (Basic.Dim):
+        (Basic.Randomize):
+        (Basic.End):
+        (Basic.Program):
+        * ARES-6/Babylon/benchmark.js: Added.
+        (this.performance.performance.now.currentTime):
+        (else.this.preciseTime.currentTime):
+        (else.currentTime):
+        (BabylonBenchmark.appendSource):
+        (BabylonBenchmark):
+        (BabylonBenchmark.prototype.runIteration.parse):
+        (BabylonBenchmark.prototype.runIteration.parseExpression):
+        (BabylonBenchmark.prototype.runIteration):
+        (runBenchmark):
+        * ARES-6/Babylon/index.js: Added.
+        (isIdentifierStart):
+        (isIdentifierChar):
+        (isNewLine):
+        (Position):
+        (SourceLocation):
+        (getLineInfo):
+        (TokenType):
+        (KeywordTokenType):
+        (BinopTokenType):
+        (TokContext):
+        (tt.parenR.updateContext.tt.braceR.updateContext):
+        (tt.name.updateContext):
+        (tt.braceL.updateContext):
+        (tt.dollarBraceL.updateContext):
+        (tt.parenL.updateContext):
+        (tt.incDec.updateContext):
+        (tt._function.updateContext):
+        (tt.backQuote.updateContext):
+        (State.prototype.init):
+        (State.prototype.curPosition):
+        (State.prototype.clone):
+        (State):
+        (Token):
+        (codePointToString):
+        (Tokenizer):
+        (Tokenizer.prototype.next):
+        (Tokenizer.prototype.eat):
+        (Tokenizer.prototype.match):
+        (Tokenizer.prototype.isKeyword):
+        (Tokenizer.prototype.lookahead):
+        (Tokenizer.prototype.setStrict):
+        (Tokenizer.prototype.curContext):
+        (Tokenizer.prototype.nextToken):
+        (Tokenizer.prototype.readToken):
+        (Tokenizer.prototype.fullCharCodeAtPos):
+        (Tokenizer.prototype.pushComment):
+        (Tokenizer.prototype.skipBlockComment):
+        (Tokenizer.prototype.skipLineComment):
+        (Tokenizer.prototype.skipSpace):
+        (Tokenizer.prototype.finishToken):
+        (Tokenizer.prototype.readToken_dot):
+        (Tokenizer.prototype.readToken_slash):
+        (Tokenizer.prototype.readToken_mult_modulo):
+        (Tokenizer.prototype.readToken_pipe_amp):
+        (Tokenizer.prototype.readToken_caret):
+        (Tokenizer.prototype.readToken_plus_min):
+        (Tokenizer.prototype.readToken_lt_gt):
+        (Tokenizer.prototype.readToken_eq_excl):
+        (Tokenizer.prototype.getTokenFromCode):
+        (Tokenizer.prototype.finishOp):
+        (Tokenizer.prototype.readRegexp):
+        (Tokenizer.prototype.readInt):
+        (Tokenizer.prototype.readRadixNumber):
+        (Tokenizer.prototype.readNumber):
+        (Tokenizer.prototype.readCodePoint):
+        (Tokenizer.prototype.readString):
+        (Tokenizer.prototype.readTmplToken):
+        (Tokenizer.prototype.readEscapedChar):
+        (Tokenizer.prototype.readHexChar):
+        (Tokenizer.prototype.readWord1):
+        (Tokenizer.prototype.readWord):
+        (Tokenizer.prototype.braceIsBlock):
+        (Tokenizer.prototype.updateContext):
+        (getOptions):
+        (prototype.isReservedWord):
+        (prototype.hasPlugin):
+        (prototype.extend):
+        (prototype.loadPlugins):
+        (prototype.parse):
+        (last):
+        (pp.addComment):
+        (pp.processComment):
+        (pp.checkPropClash):
+        (pp.getExpression):
+        (pp.parseExpression):
+        (pp.parseMaybeAssign):
+        (pos.set i):
+        * ARES-6/Babylon/inspector-blob.js: Added.
+        (WebInspector.ScriptSyntaxTree):
+        (WebInspector.ScriptSyntaxTree.prototype.get parsedSuccessfully):
+        (WebInspector.ScriptSyntaxTree.prototype.forEachNode):
+        (WebInspector.ScriptSyntaxTree.prototype.filter):
+        (WebInspector.ScriptSyntaxTree.prototype.containersOfOffset):
+        (WebInspector.ScriptSyntaxTree.prototype.filterByRange.filterForNodesInRange):
+        (WebInspector.ScriptSyntaxTree.prototype.filterByRange):
+        (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement.removeFunctionsFilter):
+        (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
+        (WebInspector.ScriptSyntaxTree.functionReturnDivot):
+        (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
+        (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
+        (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
+        (WebInspector.ScriptSyntaxTree.prototype._defaultParserState):
+        (WebInspector.ScriptSyntaxTree.prototype._recurse):
+        (WebInspector.ScriptSyntaxTree.prototype._recurseArray):
+        (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
+        * ARES-6/about.html:
+        * ARES-6/babylon_benchmark.js: Added.
+        * ARES-6/cli.js:
+        * ARES-6/glue.js:
+        * ARES-6/index.html:
+        * ARES-6/results.js:
+        (Results.prototype.reportResult):
+        (Results.prototype.reportResult.averageAbovePercentile): Deleted.
+        * ARES-6/styles.css:
+        (.test):
+        (@media only screen and (max-width: 784px)):
+
 2017-03-29  Zalan Bujtas <zalan@apple.com>
 
         [Arabic text] Add whitespace preserve/word wrap performance test.