1
1
// IF YOU CHANGE THIS FILE IT MUST BE CHANGED ON BOTH rust-www and rustup.rs
2
2
3
- var platforms = [ "default" , "unknown" , "win32" , "win64" , "unix" ] ;
3
+ var platforms = [ "default" , "unknown" , "win32" , "win64" , "win-arm64" , " unix"] ;
4
4
var platform_override = null ;
5
5
var rustup_install_command = "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh" ;
6
6
7
- function detect_platform ( ) {
7
+ async function detect_platform ( ) {
8
8
"use strict" ;
9
9
10
10
if ( platform_override !== null ) {
@@ -29,6 +29,10 @@ function detect_platform() {
29
29
if ( navigator . platform == "Win64" ||
30
30
navigator . userAgent . indexOf ( "WOW64" ) != - 1 ||
31
31
navigator . userAgent . indexOf ( "Win64" ) != - 1 ) { os = "win64" ; }
32
+ if ( navigator . userAgentData &&
33
+ navigator . userAgentData . platform == "Windows" &&
34
+ await navigator . userAgentData . getHighEntropyValues ( [ "architecture" , "bitness" ] )
35
+ . then ( ua => ua . architecture == "arm" && ua . bitness == "64" ) ) { os = "win-arm64" ; }
32
36
if ( navigator . platform == "FreeBSD x86_64" ) { os = "unix" ; }
33
37
if ( navigator . platform == "FreeBSD amd64" ) { os = "unix" ; }
34
38
if ( navigator . platform == "NetBSD x86_64" ) { os = "unix" ; }
@@ -68,10 +72,10 @@ function vis(elem, value) {
68
72
}
69
73
}
70
74
71
- function adjust_for_platform ( ) {
75
+ async function adjust_for_platform ( ) {
72
76
"use strict" ;
73
77
74
- var platform = detect_platform ( ) ;
78
+ var platform = await detect_platform ( ) ;
75
79
76
80
platforms . forEach ( function ( platform_elem ) {
77
81
var platform_div = document . getElementById ( "platform-instructions-" + platform_elem ) ;
@@ -94,7 +98,7 @@ function adjust_platform_specific_instrs(platform) {
94
98
if ( el_is_inline ) {
95
99
el_visible_style = "inline" ;
96
100
}
97
- if ( platform == "win64" || platform == "win32" ) {
101
+ if ( platform == "win64" || platform == "win32" || platform == "win-arm64" ) {
98
102
if ( el_is_not_win ) {
99
103
vis ( el , "none" ) ;
100
104
} else {
@@ -110,13 +114,13 @@ function adjust_platform_specific_instrs(platform) {
110
114
}
111
115
}
112
116
113
- function cycle_platform ( ) {
117
+ async function cycle_platform ( ) {
114
118
if ( platform_override == null ) {
115
119
platform_override = 0 ;
116
120
} else {
117
121
platform_override = ( platform_override + 1 ) % platforms . length ;
118
122
}
119
- adjust_for_platform ( ) ;
123
+ await adjust_for_platform ( ) ;
120
124
}
121
125
122
126
function set_up_cycle_button ( ) {
@@ -127,9 +131,9 @@ function set_up_cycle_button() {
127
131
var idx = 0 ;
128
132
var unlocked = false ;
129
133
130
- document . onkeypress = function ( event ) {
134
+ document . onkeypress = async function ( event ) {
131
135
if ( event . key == "n" && unlocked ) {
132
- cycle_platform ( ) ;
136
+ await cycle_platform ( ) ;
133
137
}
134
138
135
139
if ( event . key == key [ idx ] ) {
@@ -138,7 +142,7 @@ function set_up_cycle_button() {
138
142
if ( idx == key . length ) {
139
143
vis ( cycle_button , "block" ) ;
140
144
unlocked = true ;
141
- cycle_platform ( ) ;
145
+ await cycle_platform ( ) ;
142
146
}
143
147
} else if ( event . key == key [ 0 ] ) {
144
148
idx = 1 ;
@@ -148,9 +152,9 @@ function set_up_cycle_button() {
148
152
} ;
149
153
}
150
154
151
- function go_to_default_platform ( ) {
155
+ async function go_to_default_platform ( ) {
152
156
platform_override = 0 ;
153
- adjust_for_platform ( ) ;
157
+ await adjust_for_platform ( ) ;
154
158
}
155
159
156
160
// NB: This has no effect on rust-lang.org/install.html
@@ -190,6 +194,9 @@ function handle_copy_button_click(e) {
190
194
case 'copy-button-win64' :
191
195
process_copy_button_click ( 'copy-status-message-win64' ) ;
192
196
break ;
197
+ case 'copy-button-win-arm64' :
198
+ process_copy_button_click ( 'copy-status-message-win-arm64' ) ;
199
+ break ;
193
200
case 'copy-button-unknown' :
194
201
process_copy_button_click ( 'copy-status-message-unknown' ) ;
195
202
break ;
@@ -208,8 +215,8 @@ function set_up_copy_button_clicks() {
208
215
} )
209
216
}
210
217
211
- ( function ( ) {
212
- adjust_for_platform ( ) ;
218
+ ( async function ( ) {
219
+ await adjust_for_platform ( ) ;
213
220
set_up_cycle_button ( ) ;
214
221
set_up_default_platform_buttons ( ) ;
215
222
set_up_copy_button_clicks ( ) ;
0 commit comments