demo/typescript.js
function filterJsxAttributes(symbols, attributes) {
                var seenNames = {};
                for (var _i = 0; _i < attributes.length; _i++) {
                    var attr = attributes[_i];
                    // If this is the current item we are editing right now, do not filter it out
                    if (attr.getStart() <= position && position <= attr.getEnd()) {
                        continue;
                    }
                    if (attr.kind === 238 /* JsxAttribute */) {
                        seenNames[attr.name.text] = true;
                    }
                }
                return ts.filter(symbols, function (a) { return !ts.lookUp(seenNames, a.name); });
            }
function filterJsxAttributes(symbols, attributes) {
                var seenNames = {};
                for (var _i = 0; _i < attributes.length; _i++) {
                    var attr = attributes[_i];
                    // If this is the current item we are editing right now, do not filter it out
                    if (attr.getStart() <= position && position <= attr.getEnd()) {
                        continue;
                    }
                    if (attr.kind === 238 /* JsxAttribute */) {
                        seenNames[attr.name.text] = true;
                    }
                }
                return ts.filter(symbols, function (a) { return !ts.lookUp(seenNames, a.name); });
            }
Filters out completion suggestions from 'symbols' according to existing JSX attributes.

@returns Symbols to be suggested in a JSX element, barring those whose attributes
do not occur at the current position and have not otherwise been typed.