Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

angular.merge fails with MediaStream objects #14941

Closed
@matthieusieben

Description

@matthieusieben

Do you want to request a feature or report a bug?
Bug

What is the current behavior?
angular.merge transforms MediaStream objects in src into plain JavaScript Objects.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://plnkr.co or similar (template: http://plnkr.co/edit/tpl:yBpEi4).

With the template: https://plnkr.co/edit/4cBUxjdB4kya0s5Wtbxd?p=preview
Simpler: https://plnkr.co/edit/LGUAcCTbYyf4UTxSbvBC?p=preview

navigator.mediaDevices.getUserMedia({ audio: true }).then(function (stream) {
  var dst = angular.merge({}, { stream: stream });
  console.error('Is valid ?', stream === dst.stream); // false
})

What is the expected behavior?
angular.merge (and derived) should not alter MediaStream objects.

What is the motivation / use case for changing the behavior?
Allow writing simpler/cleaner code. The workaround is simply to manually set the stream objects.

Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.

Google Chrome - Version 51.0.2704.106 (64-bit)
Other browsers probably also affected.

Other information (e.g. stacktraces, related issues, suggestions how to fix)
MediaStream objects should be cloned properly (MDN: MediaStream.clone()) in the case of angular.clone, or copied as is in angular.merge and angular.extend.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions