From 19bf5d0585892561309e482f829c3583f4c840cc Mon Sep 17 00:00:00 2001 From: Sterling Williams Date: Tue, 25 Aug 2015 16:23:17 -0600 Subject: [PATCH] add support for super() --- escodegen.js | 4 ++++ test/harmony.js | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/escodegen.js b/escodegen.js index f706c054..712b4d83 100644 --- a/escodegen.js +++ b/escodegen.js @@ -2227,6 +2227,10 @@ return 'this'; }, + Super: function (expr, precedence, flags) { + return 'super'; + }, + Identifier: function (expr, precedence, flags) { return generateIdentifier(expr); }, diff --git a/test/harmony.js b/test/harmony.js index 8c40ef1b..98cc746c 100644 --- a/test/harmony.js +++ b/test/harmony.js @@ -4381,6 +4381,42 @@ data = { } }, + 'Harmony super': { + 'super.abc();': { + generateFrom: { + type: 'ExpressionStatement', + expression: { + type: 'CallExpression', + callee: { + type: 'MemberExpression', + computed: false, + object: { + type: 'Super' + }, + property: { + type: 'Identifier', + name: 'abc' + } + }, + arguments: [] + } + } + }, + + 'super();': { + generateFrom: { + type: 'ExpressionStatement', + expression: { + type: 'CallExpression', + callee: { + type: 'Super' + }, + arguments: [] + } + } + } + }, + 'Harmony async/await': { 'async function foo(promise) {\n await promise;\n}': { generateFrom: {