dart-sdk/sdk/lib
Daco Harkes c1467ab5d3 [vm/ffi] Change asFunction and lookFunction to extension methods
This prevents them from being called dynamically.
Moreover, it prevents asFunction from being called on a non-NativeFunction type argument, simplifying the amount of manual checks.

Note that this CL had to change the CFE and analzyer, and their tests (including mock_sdk) as well.

This can potentially be a breaking change, as the extension methods are only visible when `dart:ffi` is imported, while methods on objects are always visible.

Issue: https://github.com/dart-lang/sdk/issues/35903

Change-Id: I1e291f154228d5d9a34b21a022088bf493f6557d
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-abi-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,dart-sdk-linux-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,front-end-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try,vm-kernel-mac-debug-x64-try,analyzer-nnbd-linux-release-try,dart2js-nnbd-linux-x64-chrome-try,ddc-nnbd-linux-release-chrome-try,front-end-nnbd-linux-release-x64-try,vm-kernel-nnbd-linux-debug-x64-try,vm-kernel-nnbd-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135463
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-02-14 15:46:37 +00:00
..
_http [http] loosen status code constraints and rephrase some http exceptions 2020-02-12 22:21:57 +00:00
_internal [vm/ffi] Change asFunction and lookFunction to extension methods 2020-02-14 15:46:37 +00:00
async [SDK] Fixes async* stack unwinding. 2020-01-24 09:04:56 +00:00
cli Hide dart:cli in api docs 2019-11-20 11:32:01 +00:00
collection Make DoubleLinkedQueue.firstEntry/lastEntry nullable again. 2020-02-11 06:59:11 +00:00
convert [sdk] Fix all uses of the view() constructor to always use offsetInBytes. 2019-12-06 10:37:00 +00:00
core [nnbd/corelib] Restore null check in DateTime._withValue constructor 2020-02-11 15:38:51 +00:00
developer [test] Run some service tests in AOT. 2020-01-23 17:52:40 +00:00
ffi [vm/ffi] Change asFunction and lookFunction to extension methods 2020-02-14 15:46:37 +00:00
html Fix nullability for some templates 2020-02-11 20:28:54 +00:00
indexed_db/dart2js Add non-NNBD language version marker to all sdk (non-nnbd) files 2019-11-15 00:22:47 +00:00
internal [cfe] Use correct types and errors in late lowering 2019-12-02 15:00:18 +00:00
io [nnbd] Reland backporting socket option semantics from NNBD dart:io. 2020-02-05 14:26:09 +00:00
isolate Add non-NNBD language version marker to all sdk (non-nnbd) files 2019-11-15 00:22:47 +00:00
js [js] cleanup old dart:js / js_util files 2020-01-21 14:06:32 +00:00
js_util Update doc comments for dart:js_util 2020-02-13 01:41:41 +00:00
math Update math.dart:atan2 in relation to atan comment 2019-12-16 12:45:27 +00:00
mirrors [vm, lib] Teach mirrors about the Never type and member signatures. 2020-02-07 20:57:46 +00:00
svg/dart2js Changing the dart:html generator scripts to generate null-safe/nnbd code 2020-01-29 00:20:42 +00:00
typed_data Update typed-data constructor documentation. 2020-01-24 09:53:26 +00:00
vmservice Reland "[ VM / Service ] Added getClientName, setClientName and requireResumeApproval RPCs" 2020-02-05 18:14:39 +00:00
wasm Add non-NNBD language version marker to all sdk (non-nnbd) files 2019-11-15 00:22:47 +00:00
web_audio/dart2js Add non-NNBD language version marker to all sdk (non-nnbd) files 2019-11-15 00:22:47 +00:00
web_gl/dart2js Add non-NNBD language version marker to all sdk (non-nnbd) files 2019-11-15 00:22:47 +00:00
web_sql/dart2js Change dart:html templates to generate null-safe code 2020-02-06 23:18:24 +00:00
libraries.json Remove dart:mirrors library from dart2js and ddc SDKs 2020-02-07 17:34:54 +00:00
libraries.yaml Remove dart:mirrors library from dart2js and ddc SDKs 2020-02-07 17:34:54 +00:00
vmservice_libraries.json [ VM ] Move vmservice_io code from runtime/bin to dart:_internal/vm/bin 2020-01-14 01:42:14 +00:00
vmservice_libraries.yaml [ VM ] Move vmservice_io code from runtime/bin to dart:_internal/vm/bin 2020-01-14 01:42:14 +00:00