diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json
index ca0bcfc..eee3202 100644
--- a/.dart_tool/package_config.json
+++ b/.dart_tool/package_config.json
@@ -11,7 +11,7 @@
     "constraint, update this by running tools/generate_package_config.dart."
   ],
   "configVersion": 2,
-  "generated": "2021-02-11T15:59:54.232365",
+  "generated": "2021-02-17T14:49:35.996535",
   "generator": "tools/generate_package_config.dart",
   "packages": [
     {
@@ -779,7 +779,7 @@
       "name": "web_socket_channel",
       "rootUri": "../third_party/pkg/web_socket_channel",
       "packageUri": "lib/",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     },
     {
       "name": "webdriver",
diff --git a/DEPS b/DEPS
index 5955ccb..2c42fa1 100644
--- a/DEPS
+++ b/DEPS
@@ -166,7 +166,7 @@
   "watcher_rev": "3924194385fb215cef483193ed2879a618a3d69c",
   "webdriver_rev": "5a8d6805d9cf8a3cbb4fcd64849b538b7491e50e",
   "web_components_rev": "8f57dac273412a7172c8ade6f361b407e2e4ed02",
-  "web_socket_channel_rev": "680358915e331fda823908234f80beba1ed4ec83",
+  "web_socket_channel_rev": "76931ea1b81ba71e8319330c35285d3e88566315",
   "WebCore_rev": "fb11e887f77919450e497344da570d780e078bc8",
   "yaml_rev": "2392d113b0104dd19358f2833a282f19e2d67c01",
   "zlib_rev": "bf44340d1b6be1af8950bbdf664fec0cf5a831cc",
diff --git a/pkg/vm_service/lib/src/dart_io_extensions.dart b/pkg/vm_service/lib/src/dart_io_extensions.dart
index 7ab74eb..22581b3 100644
--- a/pkg/vm_service/lib/src/dart_io_extensions.dart
+++ b/pkg/vm_service/lib/src/dart_io_extensions.dart
@@ -6,8 +6,6 @@
 
 import 'dart:collection';
 
-import 'package:vm_service/vm_service.dart';
-
 import 'vm_service.dart';
 
 extension DartIOExtension on VmService {
diff --git a/pkg/vm_service/test/get_cpu_samples_rpc_test.dart b/pkg/vm_service/test/get_cpu_samples_rpc_test.dart
index d90c2f8..37973bc 100644
--- a/pkg/vm_service/test/get_cpu_samples_rpc_test.dart
+++ b/pkg/vm_service/test/get_cpu_samples_rpc_test.dart
@@ -5,7 +5,6 @@
 import 'package:vm_service/vm_service.dart';
 import 'package:test/test.dart';
 
-import 'common/service_test_common.dart';
 import 'common/test_helper.dart';
 
 fib(n) {
diff --git a/pkg/vm_service/test/heap_snapshot_graph_test.dart b/pkg/vm_service/test/heap_snapshot_graph_test.dart
index f04961a..9a65d32 100644
--- a/pkg/vm_service/test/heap_snapshot_graph_test.dart
+++ b/pkg/vm_service/test/heap_snapshot_graph_test.dart
@@ -5,7 +5,6 @@
 import 'package:vm_service/vm_service.dart';
 import 'package:test/test.dart';
 
-import 'common/service_test_common.dart';
 import 'common/test_helper.dart';
 
 class Foo {
diff --git a/pkg/vm_service/test/http_enable_timeline_logging_service_test.dart b/pkg/vm_service/test/http_enable_timeline_logging_service_test.dart
index 1341f1a..0d6f19f 100644
--- a/pkg/vm_service/test/http_enable_timeline_logging_service_test.dart
+++ b/pkg/vm_service/test/http_enable_timeline_logging_service_test.dart
@@ -5,10 +5,8 @@
 import 'dart:async';
 
 import 'package:test/test.dart';
-import 'package:vm_service/src/dart_io_extensions.dart';
 import 'package:vm_service/vm_service.dart';
 
-import 'common/service_test_common.dart';
 import 'common/test_helper.dart';
 
 const String kSetHttpEnableTimelineLogging =
diff --git a/pkg/vm_service/test/network_profiling_test.dart b/pkg/vm_service/test/network_profiling_test.dart
index 21757ad..6fcb5ce 100644
--- a/pkg/vm_service/test/network_profiling_test.dart
+++ b/pkg/vm_service/test/network_profiling_test.dart
@@ -8,10 +8,8 @@
 import 'dart:io' as io;
 
 import 'package:test/test.dart';
-import 'package:vm_service/src/dart_io_extensions.dart';
 import 'package:vm_service/vm_service.dart';
 
-import 'common/service_test_common.dart';
 import 'common/test_helper.dart';
 
 const String content = 'some random content';
diff --git a/pkg/vm_service/test/object_graph_identity_hash_test.dart b/pkg/vm_service/test/object_graph_identity_hash_test.dart
index 15d59ee..a0e8c7d 100644
--- a/pkg/vm_service/test/object_graph_identity_hash_test.dart
+++ b/pkg/vm_service/test/object_graph_identity_hash_test.dart
@@ -6,7 +6,6 @@
 
 import 'package:vm_service/vm_service.dart';
 import 'package:test/test.dart';
-import 'common/service_test_common.dart';
 import 'common/test_helper.dart';
 
 class Foo {}
diff --git a/sdk/lib/ffi/struct.dart b/sdk/lib/ffi/struct.dart
index 283d04c..37fa93c 100644
--- a/sdk/lib/ffi/struct.dart
+++ b/sdk/lib/ffi/struct.dart
@@ -58,3 +58,10 @@
 
   Struct._fromPointer(this._addressOf);
 }
+
+/// Extension on [Struct] specialized for its subtypes.
+extension StructAddressOf<T extends Struct> on T {
+  /// Returns the address backing the reference.
+  @Deprecated('Hold on to the pointer backing a struct instead.')
+  Pointer<T> get addressOf => _addressOf as Pointer<T>;
+}
diff --git a/tests/ffi/structs_nnbd_workaround_test.dart b/tests/ffi/structs_nnbd_workaround_test.dart
index 635c877..cf8f672 100644
--- a/tests/ffi/structs_nnbd_workaround_test.dart
+++ b/tests/ffi/structs_nnbd_workaround_test.dart
@@ -98,6 +98,8 @@
   final pointer = calloc<Coordinate>();
   Coordinate c = pointer.ref;
   Expect.isTrue(c is Struct);
+  // TODO(https://dartbug.com/40667): Remove support for this.
+  Expect.isTrue(c.addressOf is Pointer<Coordinate>);
   calloc.free(pointer);
 }
 
diff --git a/tests/ffi/structs_test.dart b/tests/ffi/structs_test.dart
index ba90416..77026a4 100644
--- a/tests/ffi/structs_test.dart
+++ b/tests/ffi/structs_test.dart
@@ -128,6 +128,8 @@
   final pointer = calloc<Coordinate>();
   Coordinate c = pointer.ref;
   Expect.isTrue(c is Struct);
+  // TODO(https://dartbug.com/40667): Remove support for this.
+  Expect.isTrue(c.addressOf is Pointer<Coordinate>);
   calloc.free(pointer);
 }
 
diff --git a/tests/ffi_2/structs_test.dart b/tests/ffi_2/structs_test.dart
index ba90416..77026a4 100644
--- a/tests/ffi_2/structs_test.dart
+++ b/tests/ffi_2/structs_test.dart
@@ -128,6 +128,8 @@
   final pointer = calloc<Coordinate>();
   Coordinate c = pointer.ref;
   Expect.isTrue(c is Struct);
+  // TODO(https://dartbug.com/40667): Remove support for this.
+  Expect.isTrue(c.addressOf is Pointer<Coordinate>);
   calloc.free(pointer);
 }
 
diff --git a/tools/VERSION b/tools/VERSION
index 900cdf2..cfed773 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 13
 PATCH 0
-PRERELEASE 47
+PRERELEASE 48
 PRERELEASE_PATCH 0
\ No newline at end of file
