From c4d3e3f158b3a1673357d3165b45ce1a61dafe7b Mon Sep 17 00:00:00 2001 From: "vitalyp@chromium.org" Date: Fri, 15 Aug 2014 16:24:26 +0000 Subject: [PATCH] Fix in compiler pass: cr.defineProperty() with 2 arguments means opt_kind == cr.PropertyKind.JS BUG=393873 R=tbreisacher@chromium.org Review URL: https://codereview.chromium.org/473853003 Cr-Commit-Position: refs/heads/master@{#289902} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289902 0039d316-1c4b-4281-b951-d872f2087c98 --- .../runner/src/com/google/javascript/jscomp/ChromePass.java | 6 +++--- .../runner/test/com/google/javascript/jscomp/ChromePassTest.java | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/third_party/closure_compiler/runner/src/com/google/javascript/jscomp/ChromePass.java b/third_party/closure_compiler/runner/src/com/google/javascript/jscomp/ChromePass.java index 9e2ef3f62fde..01b37f972b18 100644 --- a/third_party/closure_compiler/runner/src/com/google/javascript/jscomp/ChromePass.java +++ b/third_party/closure_compiler/runner/src/com/google/javascript/jscomp/ChromePass.java @@ -107,15 +107,15 @@ public class ChromePass extends AbstractPostOrderCallback implements CompilerPas } private Node getTypeByCrPropertyKind(Node propertyKind) { + if (propertyKind == null || propertyKind.matchesQualifiedName("cr.PropertyKind.JS")) { + return new Node(Token.QMARK); + } if (propertyKind.matchesQualifiedName("cr.PropertyKind.ATTR")) { return IR.string("string"); } if (propertyKind.matchesQualifiedName("cr.PropertyKind.BOOL_ATTR")) { return IR.string("boolean"); } - if (propertyKind.matchesQualifiedName("cr.PropertyKind.JS")) { - return new Node(Token.QMARK); - } compiler.report(JSError.make(propertyKind, CR_DEFINE_PROPERTY_INVALID_PROPERTY_KIND, propertyKind.getQualifiedName())); return null; diff --git a/third_party/closure_compiler/runner/test/com/google/javascript/jscomp/ChromePassTest.java b/third_party/closure_compiler/runner/test/com/google/javascript/jscomp/ChromePassTest.java index 8cef6953e450..509ee163b9c0 100644 --- a/third_party/closure_compiler/runner/test/com/google/javascript/jscomp/ChromePassTest.java +++ b/third_party/closure_compiler/runner/test/com/google/javascript/jscomp/ChromePassTest.java @@ -219,6 +219,15 @@ public class ChromePassTest extends CompilerTestCase { "a.prototype.c;"); } + public void testCrDefinePropertyCalledWithouthThirdArgumentMeansCrPropertyKindJs() + throws Exception { + test( + "cr.defineProperty(a.prototype, 'c');", + "cr.defineProperty(a.prototype, 'c');\n" + + "/** @type {?} */\n" + + "a.prototype.c;"); + } + public void testCrDefinePropertyDefinesUnquotedPropertyOnPrototypeWhenFunctionIsPassed() throws Exception { test( -- 2.11.4.GIT