- From: Kit Cambridge <notifications@github.com>
- Date: Wed, 06 Jul 2016 07:19:22 -0700
- To: w3c/push-api <push-api@noreply.github.com>
- Cc:
- Message-ID: <w3c/push-api/issues/198/230785938@github.com>
I was wondering if `[SameObject]` means scripts could mutate the `ArrayBuffer`, and how it behaves with two `PushSubscription` objects for the same scope. For example:
```js
serviceWorkerRegistration.pushManager.getSubscription().then(subscription => {
let applicationServerKey = subscription.options.applicationServerKey;
let keyArray = new Uint8Array(applicationServerKey);
keyArray[0] = 123;
let maybeModifiedKey = subscription.options.applicationServerKey;
// If `applicationServerKey` is `[SameObject]`, does that mean scripts could
// change the contents of the key?
assert(applicationServerKey == modifiedKey);
assert(new Uint8Array(maybeModifiedKey)[0] == 123);
return serviceWorkerRegistration.pushManager.getSubscription().then(newSubscription => {
// `getSubscription` resolves to a new `PushSubscription` instance, so I assume
// these are all true. Is that right?
assert(newSubscription != subscription);
assert(newSubscription.applicationServerKey != applicationServerKey);
assert(new Uint8Array(newSubscription.applicationServerKey)[0] != 123);
});
});
```
("Don't do that" is an acceptable answer for the first, but I'm curious how specs handle this kind of thing).
---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/push-api/issues/198#issuecomment-230785938
Received on Wednesday, 6 July 2016 14:20:18 UTC