| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 (function(global, utils) { | 5 (function(global, utils) { |
| 6 | 6 |
| 7 "use strict"; | 7 "use strict"; |
| 8 | 8 |
| 9 %CheckIsBootstrapping(); | 9 %CheckIsBootstrapping(); |
| 10 | 10 |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 index2 = TO_INTEGER(index2); | 172 index2 = TO_INTEGER(index2); |
| 173 if (index1 < 0 || index1 >= %_TypedArrayGetLength(ia) || | 173 if (index1 < 0 || index1 >= %_TypedArrayGetLength(ia) || |
| 174 index2 < 0 || index2 >= %_TypedArrayGetLength(ia)) { | 174 index2 < 0 || index2 >= %_TypedArrayGetLength(ia)) { |
| 175 return UNDEFINED; | 175 return UNDEFINED; |
| 176 } | 176 } |
| 177 return %AtomicsFutexWakeOrRequeue(ia, index1, count, value, index2); | 177 return %AtomicsFutexWakeOrRequeue(ia, index1, count, value, index2); |
| 178 } | 178 } |
| 179 | 179 |
| 180 // ------------------------------------------------------------------- | 180 // ------------------------------------------------------------------- |
| 181 | 181 |
| 182 function AtomicsConstructor() {} | 182 var Atomics = global.Atomics; |
| 183 | |
| 184 var Atomics = new AtomicsConstructor(); | |
| 185 | |
| 186 %InternalSetPrototype(Atomics, GlobalObject.prototype); | |
| 187 %AddNamedProperty(global, "Atomics", Atomics, DONT_ENUM); | |
| 188 %FunctionSetInstanceClassName(AtomicsConstructor, 'Atomics'); | |
| 189 | 183 |
| 190 %AddNamedProperty(Atomics, toStringTagSymbol, "Atomics", READ_ONLY | DONT_ENUM); | 184 %AddNamedProperty(Atomics, toStringTagSymbol, "Atomics", READ_ONLY | DONT_ENUM); |
| 191 | 185 |
| 192 // These must match the values in src/futex-emulation.h | 186 // These must match the values in src/futex-emulation.h |
| 193 utils.InstallConstants(Atomics, [ | 187 utils.InstallConstants(Atomics, [ |
| 194 "OK", 0, | 188 "OK", 0, |
| 195 "NOTEQUAL", -1, | 189 "NOTEQUAL", -1, |
| 196 "TIMEDOUT", -2, | 190 "TIMEDOUT", -2, |
| 197 ]); | 191 ]); |
| 198 | 192 |
| 199 utils.InstallFunctions(Atomics, DONT_ENUM, [ | 193 utils.InstallFunctions(Atomics, DONT_ENUM, [ |
| 200 "compareExchange", AtomicsCompareExchangeJS, | 194 "compareExchange", AtomicsCompareExchangeJS, |
| 201 "load", AtomicsLoadJS, | 195 // "load", AtomicsLoadJS, |
| 202 "store", AtomicsStoreJS, | 196 "store", AtomicsStoreJS, |
| 203 "add", AtomicsAddJS, | 197 "add", AtomicsAddJS, |
| 204 "sub", AtomicsSubJS, | 198 "sub", AtomicsSubJS, |
| 205 "and", AtomicsAndJS, | 199 "and", AtomicsAndJS, |
| 206 "or", AtomicsOrJS, | 200 "or", AtomicsOrJS, |
| 207 "xor", AtomicsXorJS, | 201 "xor", AtomicsXorJS, |
| 208 "exchange", AtomicsExchangeJS, | 202 "exchange", AtomicsExchangeJS, |
| 209 "isLockFree", AtomicsIsLockFreeJS, | 203 "isLockFree", AtomicsIsLockFreeJS, |
| 210 "futexWait", AtomicsFutexWaitJS, | 204 "futexWait", AtomicsFutexWaitJS, |
| 211 "futexWake", AtomicsFutexWakeJS, | 205 "futexWake", AtomicsFutexWakeJS, |
| 212 "futexWakeOrRequeue", AtomicsFutexWakeOrRequeueJS, | 206 "futexWakeOrRequeue", AtomicsFutexWakeOrRequeueJS, |
| 213 ]); | 207 ]); |
| 214 | 208 |
| 215 }) | 209 }) |
| OLD | NEW |