haikuwebkit/LayoutTests/js/destructuring-assignment-de...

11 lines
277 B
HTML
Raw Permalink Normal View History

[ES6] support default values in deconstruction parameter nodes https://bugs.webkit.org/show_bug.cgi?id=142679 Reviewed by Darin Adler. Source/JavaScriptCore: ES6 destructuring allows destructuring properties to assign default values. A link to the spec: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-destructuring-binding-patterns This patch implements default values for all places where deconstruction is allowed besides function parameters. This is because function parameters are parsed in a separate parser arena than the function body itself and ExpresionNode's which are default values for deconstruction parameters will be deallocated by the time we parse the body of the function. I have opened a bug to address this problem: https://bugs.webkit.org/show_bug.cgi?id=145995 * bytecompiler/NodesCodegen.cpp: (JSC::DeconstructionPatternNode::~DeconstructionPatternNode): (JSC::assignDefaultValueIfUndefined): (JSC::ArrayPatternNode::bindValue): (JSC::ArrayPatternNode::emitDirectBinding): (JSC::ArrayPatternNode::toString): (JSC::ArrayPatternNode::collectBoundIdentifiers): (JSC::ObjectPatternNode::bindValue): * parser/ASTBuilder.h: (JSC::ASTBuilder::appendArrayPatternSkipEntry): (JSC::ASTBuilder::appendArrayPatternEntry): (JSC::ASTBuilder::createObjectPattern): (JSC::ASTBuilder::appendObjectPatternEntry): (JSC::ASTBuilder::createBindingLocation): * parser/Nodes.h: (JSC::ArrayPatternNode::appendIndex): (JSC::ObjectPatternNode::appendEntry): (JSC::ObjectPatternNode::Entry::Entry): Deleted. * parser/Parser.cpp: (JSC::Parser<LexerType>::parseDeconstructionPattern): (JSC::Parser<LexerType>::parseDefaultValueForDeconstructionPattern): (JSC::Parser<LexerType>::parseConstDeclarationList): * parser/Parser.h: * parser/SyntaxChecker.h: (JSC::SyntaxChecker::operatorStackPop): LayoutTests: * js/destructuring-assignment-default-values-expected.txt: Added. * js/destructuring-assignment-default-values.html: Added. * js/script-tests/destructuring-assignment-default-values.js: Added. (assert): (test1): (arr): (test2): (test3): (test4): (test5): (test6): (test7): (test8): (shouldThrow): Canonical link: https://commits.webkit.org/164147@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@185699 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-18 12:35:32 +00:00
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/js-test-pre.js"></script>
</head>
<body>
<script src="script-tests/destructuring-assignment-default-values.js"></script>
<script src="../resources/js-test-post.js"></script>
</body>
</html>