OpenLayers WFS with OpenLayers.StrategyFilter and Filter Logical

HTML

<script src="http://cdnjs.cloudflare.com/ajax/libs/openlayers/2.11/OpenLayers.js"></script>
<body onload="init()">
    <p>OpenLayers WFS with OpenLayers.StrategyFilter and Filter Logical</p>
    <div id="button1">Click to filter layer</div>Features before filtering: 
    <span id="before">xx</span> 
    <br />Features after filtering: <span id="after">xx</span>
    <br />
    <div id="map"></div>
</body>

CSS

#map {
    width: 100%;
    height: 400px;
}
#button1 {
    width:150px;
    background: yellow;
    border:1px solid red;
}

JavaScript

var map;
var layer, wms, filterStrategy;

function init() {
    map = new OpenLayers.Map('map');
    wms = new OpenLayers.Layer.WMS(
        "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0", {
        layers: 'basic'
    });


    filterStrategy = new OpenLayers.Strategy.Filter();
    console.log(filterStrategy);
    layer = new OpenLayers.Layer.Vector("WFS", {
        strategies: [filterStrategy]
    });

    map.addLayers([wms, layer]);
    map.setCenter(new OpenLayers.LonLat(146.7, -41.8), 6);

    OpenLayers.Request.GET({
        url: 'http://demo.opengeo.org/geoserver/wfs',
        params: {
            service: 'WFS',
            version: '1.0.0',
            request: 'GetFeature',
            typeName: 'ne_10m_populated_places',
            featureNS: "http://openstreemap.org",
            bbox: '137.9109375,-54.98359375,155.4890625,-28.61640625'
           
        },
        
        success: function (response) {
            var gmlReader = new OpenLayers.Format.GML({
                extractAttributes: true
            });
            var features = gmlReader.read(response.responseText);
            layer.addFeatures(features);

        }
    });


}





function updateFilter(station_id) {
    document.getElementById("before").innerHTML = map.layers[1].features.length;

    
    var attribute = "MAX_POP50";
    
    var filter_zero = new OpenLayers.Filter.Comparison({
        type: OpenLayers.Filter.Comparison.EQUAL_TO,
        property: attribute,
        value: 0
    });

    var filter_null = new OpenLayers.Filter.Comparison({
        type: OpenLayers.Filter.Comparison.IS_NULL,
        property: attribute
    });

    var parent_filter = new OpenLayers.Filter.Logical({
        type: OpenLayers.Filter.Logical.OR,
        filters: [filter_zero, filter_null]
    });
    filterStrategy.setFilter(parent_filter);
    document.getElementById("after").innerHTML = map.layers[1].features.length;
}

$("#button1").click(function ()...