title: Attempted to assign to readonly property even though same command works elsewhere?
body: <p>I have a Javascript function (in an Angular 2 NativeScript based mobile app) which is triggered on a button press, it should hide the button and show an activity indicator in its place, carry out a Bluetooth scan, which when completed switches off the activity indicator and shows the original button. </p>
  
  <pre><code>bluetoothAdd() {
      this.isScanning = true;
      var plusIcon = this.page.getViewById("add");
      plusIcon.style.opacity = 0;
      bluetooth.hasCoarseLocationPermission().then(
          function (granted) {
              if (!granted) {
                  bluetooth.requestCoarseLocationPermission();
              } else {
                  bluetooth.startScanning({
                      serviceUUIDs: ["133d"],
                      seconds: 4,
                      onDiscovered: function (peripheral) {
                          console.log("Periperhal found with UUID: " + peripheral.UUID);
                      }
                  }).then(function () {
                      console.log("scanning complete");
                      this.isScanning = false;
                      plusIcon.style.opacity = 1;
                  }, function (err) {
                      console.log("error while scanning: " + err);
                  });
                  this.isScanning = false;
              }
          });
  }
  </code></pre>
  
  <p>Unfortunately, the <code>this.isScanning = false;</code> line throws all of these errors. What have I done wrong?</p>
  
  <pre><code>CONSOLE ERROR file:///app/tns_modules/angular2/src/platform/server/parse5_adapter.js:55:75: EXCEPTION: Error: Uncaught (in promise): TypeError: Attempted to assign to readonly property.
  CONSOLE ERROR file:///app/tns_modules/angular2/src/platform/server/parse5_adapter.js:53:75: STACKTRACE:
  CONSOLE ERROR file:///app/tns_modules/angular2/src/platform/server/parse5_adapter.js:53:75: resolvePromise@file:///app/tns_modules/zone.js/dist/zone-node.js:496:41
  file:///app/tns_modules/zone.js/dist/zone-node.js:532:32
  invokeTask@file:///app/tns_modules/zone.js/dist/zone-node.js:314:43
  onInvokeTask@file:///app/tns_modules/angular2/src/core/zone/ng_zone_impl.js:35:51
  invokeTask@file:///app/tns_modules/zone.js/dist/zone-node.js:313:55
  runTask@file:///app/tns_modules/zone.js/dist/zone-node.js:214:58
  drainMicroTaskQueue@file:///app/tns_modules/zone.js/dist/zone-node.js:432:43
  promiseReactionJob@[native code]
  UIApplicationMain@[native code]
  start@file:///app/tns_modules/application/application.js:233:26
  file:///app/tns_modules/nativescript-angular/application.js:65:26
  ZoneAwarePromise@file:///app/tns_modules/zone.js/dist/zone-node.js:542:38
  nativeScriptBootstrap@file:///app/tns_modules/nativescript-angular/application.js:64:23
  anonymous@file:///app/main.js:5:36
  evaluate@[native code]
  moduleEvaluation@[native code]
  [native code]
  promiseReactionJob@[native code]
  CONSOLE ERROR file:///app/tns_modules/zone.js/dist/zone-node.js:419:27: Unhandled Promise rejection: Attempted to assign to readonly property. ; Zone: angular ; Task: Promise.then ; Value: TypeError: Attempted to assign to readonly property.
  CONSOLE ERROR file:///app/tns_modules/zone.js/dist/zone-node.js:421:23: Error: Uncaught (in promise): TypeError: Attempted to assign to readonly property.
  CONSOLE LOG file:///app/Pages/Home/home.component.js:99:32: scanning complete
  </code></pre>