diff --git a/lib/get_navigation/src/routes/get_router_delegate.dart b/lib/get_navigation/src/routes/get_router_delegate.dart
index 754688a..b8798cc 100644
--- a/lib/get_navigation/src/routes/get_router_delegate.dart
+++ b/lib/get_navigation/src/routes/get_router_delegate.dart
@@ -612,9 +612,12 @@ class GetDelegate extends RouterDelegate<RouteDecoder>
   }) async {
     // remove history or page entries until you meet route
     var iterator = currentConfiguration;
-    while (_canPop(popMode) &&
-        iterator != null &&
-        iterator.pageSettings?.name != fullRoute) {
+    while (_canPop(popMode) && iterator != null) {
+      //the next line causes wasm compile error if included in the while loop
+      //https://github.com/flutter/flutter/issues/140110
+      if (iterator.pageSettings?.name == fullRoute) {
+        break;
+      }
       await _pop(popMode, null);
       // replace iterator
       iterator = currentConfiguration;
diff --git a/lib/get_navigation/src/routes/page_settings.dart b/lib/get_navigation/src/routes/page_settings.dart
index 80a5ae4..b57beee 100644
--- a/lib/get_navigation/src/routes/page_settings.dart
+++ b/lib/get_navigation/src/routes/page_settings.dart
@@ -40,7 +40,7 @@ extension PageArgExt on BuildContext {
   String get location {
     final parser = router.routeInformationParser;
     final config = delegate.currentConfiguration;
-    return parser?.restoreRouteInformation(config)?.location ?? '/';
+    return parser?.restoreRouteInformation(config)?.uri.toString() ?? '/';
   }
 
   GetDelegate get delegate {
diff --git a/lib/get_utils/src/platform/platform_web.dart b/lib/get_utils/src/platform/platform_web.dart
index a643c20..c5bafe1 100644
--- a/lib/get_utils/src/platform/platform_web.dart
+++ b/lib/get_utils/src/platform/platform_web.dart
@@ -1,5 +1,5 @@
 // ignore: avoid_web_libraries_in_flutter
-import 'dart:html' as html;
+import 'package:web/web.dart' as html;
 
 import '../../get_utils.dart';
 
@@ -25,7 +25,7 @@ class GeneralPlatform {
   static bool get isIOS {
     // maxTouchPoints is needed to separate iPad iOS13 vs new MacOS
     return GetUtils.hasMatch(_navigator.platform, r'/iPad|iPhone|iPod/') ||
-        (_navigator.platform == 'MacIntel' && _navigator.maxTouchPoints! > 1);
+        (_navigator.platform == 'MacIntel' && _navigator.maxTouchPoints > 1);
   }
 
   static bool get isFuchsia => false;
diff --git a/pubspec.yaml b/pubspec.yaml
index 9b447c5..69a5209 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -11,6 +11,7 @@ dependencies:
     sdk: flutter
   flutter_web_plugins:
     sdk: flutter
+  web: any
 
 dev_dependencies:
   flutter_lints: ^2.0.3