001 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 002 // for details. All rights reserved. Use of this source code is governed by a 003 // BSD-style license that can be found in the LICENSE file. 004 005 package com.google.dart.compiler.backend.js.ast; 006 007 import com.google.dart.compiler.common.Symbol; 008 import org.jetbrains.annotations.NotNull; 009 010 /** 011 * A JavaScript parameter. 012 */ 013 public final class JsParameter extends SourceInfoAwareJsNode implements HasName { 014 @NotNull 015 private final JsName name; 016 017 public JsParameter(@NotNull JsName name) { 018 this.name = name; 019 } 020 021 @Override 022 @NotNull 023 public JsName getName() { 024 return name; 025 } 026 027 @Override 028 @NotNull 029 public Symbol getSymbol() { 030 return name; 031 } 032 033 @Override 034 public void accept(JsVisitor v) { 035 v.visitParameter(this); 036 } 037 038 @Override 039 public void traverse(JsVisitorWithContext v, JsContext ctx) { 040 v.visit(this, ctx); 041 v.endVisit(this, ctx); 042 } 043 044 @NotNull 045 @Override 046 public JsParameter deepCopy() { 047 return new JsParameter(name).withMetadataFrom(this); 048 } 049 }