function
- @Deprecated("Internal Use Only")
Source
@Deprecated("Internal Use Only") void addMemberHelper( mirrors.MethodMirror declaration, String path, StringBuffer sb, {bool isStatic: false, String memberName}) { if (!declaration.isConstructor) { var jsName = _getJsMemberName(declaration); path = (path != null && path.isNotEmpty) ? "${path}.${jsName}" : jsName; } var name = memberName != null ? memberName : _getDeclarationName(declaration); if (declaration.isConstructor) { sb.write("factory"); } else if (isStatic) { sb.write("static"); } else { sb.write("@patch"); } sb.write(" "); if (declaration.isGetter) { sb.write("get $name => ${_accessJsPath(path)};"); } else if (declaration.isSetter) { sb.write("set $name(v) {\n" " ${_JS_LIBRARY_PREFIX}.safeForTypedInterop(v);\n" " return ${_accessJsPathSetter(path)};\n" "}\n"); } else { sb.write("$name("); bool hasOptional = false; int i = 0; var args = <String>[]; for (var p in declaration.parameters) { assert(!p.isNamed); // TODO(jacobr): throw. assert(!p.hasDefaultValue); if (i > 0) { sb.write(", "); } if (p.isOptional && !hasOptional) { sb.write("["); hasOptional = true; } var arg = "p$i"; args.add(arg); sb.write(arg); if (p.isOptional) { sb.write("=${_UNDEFINED_VAR}"); } i++; } if (hasOptional) { sb.write("]"); } // TODO(jacobr): sb.write(") {\n"); for (var arg in args) { sb.write(" ${_JS_LIBRARY_PREFIX}.safeForTypedInterop($arg);\n"); } sb.write(" return "); if (declaration.isConstructor) { sb.write("${_JS_LIBRARY_PREFIX}.JsNative.callConstructor("); sb..write(_accessJsPath(path))..write(","); } else { sb.write(_accessJsPathCallMethodHelper(path)); } sb.write("[${args.join(",")}]"); if (hasOptional) { sb.write(".takeWhile((i) => i != ${_UNDEFINED_VAR}).toList()"); } sb.write(");"); sb.write("}\n"); } sb.write("\n"); }
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-js/addMemberHelper.html