blob: 113987f44d6b542f575c3de245acdd1ac2caf33e [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// @dart = 2.7
// Test that a closure call on a native field is recognized by the
// type inferrer.
import 'native_testing.dart';
@Native("Node")
class Node {
get parentNode native;
}
makeNode(parent) native;
void setup() {
JS('', r"""
(function(){
// This code is all inside 'setup' and so not accessible from the global scope.
function Node(parent){ this.parentNode = parent; }
self.makeNode = function(p){return new Node(p);};
self.nativeConstructor(Node);
})()""");
applyTestExtensions(['Node']);
}
main() {
nativeTesting();
setup();
var node = makeNode(null);
if (node.parentNode != null) {
node = node.parentNode();
}
}